可编程控制器 S7-300 400系列PLC编程语言与用户结构_第1页
可编程控制器 S7-300 400系列PLC编程语言与用户结构_第2页
可编程控制器 S7-300 400系列PLC编程语言与用户结构_第3页
可编程控制器 S7-300 400系列PLC编程语言与用户结构_第4页
可编程控制器 S7-300 400系列PLC编程语言与用户结构_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可编程控制器西门子S7-300/400PLC实践与应用主要内容S7-300/400的编程语言二、用户程序基本结构三、数据块四、组织块A I0.0A I0.1= Q8.0STLI0.0I0.1Q8.0LAD&Q8.0=I0.0I0.1FBD二、用户程序基本结构1.用户程序中的块STEP7将用户编写的程序和程序所需的数据放置在块中,使单个的程序部件标准化。通过在块内或块之间类似子程序的调用,使用户程序结构化,可以简化程序组织,使程序易于修改、查错和调试。块结构显著地增加了PLC程序的组织透明性、可理解性和易维护性。块功能描述组织块(OB)操作系统与用户程序接口,决定用于程序的结构系统功能块(SFB)集成在CPU模块中,通过SFB调用一些重要的系统功能,有存储区系统功能(SFC)集成在CPU模块中,通过SFC调用一些重要的系统功能,无存储区功能块(FB)用户编写的包含经常使用功能的子程序,有存储区功能(FC)用户编写的包含经常使用功能的子程序,无存储区背景数据块(DI)调用FB和SFB时用于传递参数的数据块,在编译过程中自动生成数据共享数据块(DB)存储用户数据的数据区域,供所有的块共享三、数据块基本数据类型(到32位)复杂数据类型(长于32位)用户定义数据类型(长于32位)•位数据类型(BOOL,BYTE,WORD,DWORD,CHAR)•数学数据类型(INT,DINT,REAL)•定时器类型(S5TIME,TIME,DATE,TIME_OF_DAY)•时间(DATE_AND_TIME)•矩阵(ARRAY)•结构(STRUCT)•字符串(STRING) 数据类型

UDT(用户定义数据类型)1.块中的数据类型BOOL 1 True或False(1或0)BYTE 8 B#16#A9WORD 16 W#16#12AFDWORD 32 DW#16#ADAC1EF5CHAR 8 'w'S5TIME 16 S5T#5s_200ms INT 16 123DINT 32 L#65539REAL 32 1.2或

34.5E-12TIME 32 T#2D_1H_3M_45S_12MSDATE 16 D#1993-01-20TIME_OF_DAY 32 TOD#12:23:45.12关键字长度(位)该类型的常数举例关键字 长度(位) 举例

DATE_AND_TIME 64 DT#97-09-24-12:14:55.0

STRING 8*(字符个数+2) ´Thisisastring´

(最多254个字符的字符串) ´SIEMENS´

ARRAY

用户定义

测量值:

ARRAY[1..20]

(相同数据类型的元素组) INT

STRUCT

用户定义

Motor:STRUCT

(不同数据类型的元素组)

Speed:INT

Current:REAL

END_STRUCTUDT UDTas

blockUDTas

arrayelement

(用户定义数据类型= 用户定义

基本或复杂数据类型组成的

STRUCT Drive:ARRAY[1..4]

模板)

Speed:INT UDT1

Current:REAL

END_STRUCT 2.数据块的生成与使用(1)生成数据块(2)输入、保存、下载和监视数据块078位数据字节0DBB0数据字节1DBW0数据字节8191DBD8188DBW8190DBB8191数据字节2DBD0数据字节3DBX4.1(3)寻找数据单元0123456789DB19

(符号名:Values)带有元素名字“Start”的数据位0.0或ADB19.DBX0.0或A“Values”.Start或LDB19.DBW2或L“Values”.Number或LDB19.DBB5或L“Values”.Loop传统访问方法符号寻址完全表示访问1)OPNDB19LDBW2NumberOPNDB19ADBX0.01)OPNDB19LDBB5Loop绝对寻址(4)访问数据单元四、组织块

组织块是操作系统与用户程序之间的接口。S7提供了各种不同的组织块(OB),用组织块可以创建在特定的时间执行的程序和响应特定事件的程序,例如延时中断OB、外部硬件中断OB和错误处理OB等。操作系统OB1FCFBSFCSFB其它OBsFCFBOB10...17(日期时间中断)OB80...87(异步错误)OB20...23(延时中断)定期的程序执行OB30...38(循环中断)事件驱动的程序执行OB40...47(硬件中断)启动OB102OB100OB101循环的程序执行OB1OB121,122(同步错误)中断

OB错误

OB读入

PII执行OB1输出

PIQ完全再启动自动手动S7-300/400PowerONS7-300STOP->RUNS7-400STOP->RUN+CRST清除过程映像,非保持的M,T,C执行

OB100允许输出读入

PII允许输出STOP是否超过重启动的监视时间?清除

PIQ(可设置)完成剩余的循环执行

OB101执行

OB1再启动(手动)•仅指

S7-400(根据硬件组态的设置):

STOP->RUN+WRST启动组织块输出

PIQ循环循环4/56/78/910/11局部变量字节8,9,10,11的数据格式附加信息

1 (例如,中断模块的起始地址)附加信息2 (例如,中断状态)附加信息3 (例如,通道号码)局部变量字节0/12/3启动事件优先级序列号OB号12/1314/1516/1718/19年日分钟1/10秒,1/100秒月小时秒1/1000秒,星期管理信息启动信息启动时间组织块的启动信息例如:OB82(优先级26)=错误处理程序。当模拟输入PIW352断线时执行。例如OB10(优先级2)=日期时间中断。从9:30开始每分钟执行一次。OB1连续执行

OB13日期时间中断循环中断116错误处理循环程序延时中断硬件中断21226/28OB20OB40OB10OB35OB82OB号OB类型优先级例如

OB20(优先级3)=延时中断。检测到一个信号后

延迟3.25s执行。中断循环程序......直到被其它OB中断被中断的OB块的数据保存系统调用新的

OB在执行新的

OB前,保存被中断块的寄存器中断堆栈(I堆栈)块堆栈(B堆栈)ACCU1,ACCU2累加器的内容AR1,AR2地址寄存器的内容DB,DI数据块寄存器的内容局部数据堆栈的地址指针状态字,MCR寄存器,B堆栈指针DB和

DI寄存器临时数据

(L堆栈)的指针块的号码返回地址日期时间中断OB10(1)

日时钟OB(OB10在S7-314)允许你在某一特定日期或特定间隔,中断正在循环的OB而去执行中断程序。你可以对此OB编程使其按下列间隔运行:Once(一次):只在特定日期和时间执行一次。Everyminute(每分钟):从某一特定日期和时间开始,每分钟执行1次。Hourly(每小时):从某一特定日期和时间开始,每小时执行一次。Daily(每天):从某一特定日期和时间开始,每天执行一次。Weekly(每周):从某一特定日期和时间开始,每周执行一次。Monthly(每月):从某一特定日期和时间开始,每月执行一次。Annually(每年):从某一特定日期和时间开始,每年执行一次。日期时间中断OB10(2)循环中断(OB35)RUNOB35OB35OB35IntervalOOB1B1OB1OB1OB1OB1OB1OB1IntervalInterval(P)()I0.0M0.1

SFC32(SRT_DINT)ENENOOB_NRDTIMESIGNRET_VAL20T#500msW#16#01MW10M2.0延时中断(OB20)模拟输入模块

上限值下限值+276480硬件中断(OB40) 硬件组态:

模拟输入模块的属性

如果在处理硬件中断的同时,又出现了其他硬件中断事件,新的中断按以下方法识别和处理:

(1)如果正在处理某一中断事件,又出现了同一模块同一通道产生的完全相同的中断事件,新的中断事件将丢失,即不处理它;

(2)如果正在处理某一中断信号时同一模块中其他通道产生了中断事件,新的中断不会被立即触发,但是不会丢失。在当前已激活的硬件中断执行完后,冉处理被暂存的中断;

(3)如果硬件中断被触发,并且它的OB被其他模块中的硬件中断激活,新的请求将被记录,空闲后再执行该中断。模拟输入模块断线+276480诊断中断,异步错误中断(OB81...87)

硬件组态:

模拟模块的属性

CPU的属性异步错误组织块

错误类型例子OB时间错误超出最大循环扫描时间OB8026/28优先级26电源故障后备电池失效OB81诊断中断有诊断能力模块的输入断线OB82插入/移除

中断在运行时移除S7-400的信号模块OB83CPU硬件故障MPI接口上出现错误的信号电平OB84程序执行错误更新映像区错误(模块有缺陷)OB85机架错误扩展设备或DP从站故障OB86通讯错误读取信息格式错误OB87同步错误错误类型例子OB优先级与被中断的错误OB优先级相同编程错误在程序中调用一个CPU中并不存在的块OB121访问错误访问一个模块有故障或不存在的模块(例如,直接访问一个不存在的I/O模块)OB122错误类型使用错误组织块为避免发生某错误时CPU进入停机状态,可以在CPU中建立一个相应的空错误组织块。

可以在错误OB块中编程实现所希望的响应,如果需要,在执行完规定指令后,调用系统功能SFC46申请停机。在错误组织块的启动信息中包含有错误的特征,可以在程序中使用。关于错误组织块的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论