S7-300-PLC课件数据块中的数据存储-组织快-结构化编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

组织块操作系统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(每分钟):从某一特定日期和时间开始,每分钟执行一次。Hourly(每小时):从某一特定日期和时间开始,每小时执行一次。Daily(每天):从某一特定日期和时间开始,每天执行一次。Weekly(每周):从某一特定日期和时间开始,每周执行一次。Monthly(每月):从某一特定日期和时间开始,每月执行一次。Annually(每年):从某一特定日期和时间开始,每年执行一次。日期时间中断OB10(2)练习2:设置系统时间练习3:编写日期时间中断程序设置CPU的参数,使得在课程结束时执行日期时间中断。序号步骤结果1根据要求生成、保存、下装OB10。23测试程序的功能在课程结束时,蜂鸣器发出声音。禁止日期时间中断,并将修改的配置下装。4练习4:利用时间中断实现定时检测模拟输入模块+14000=温度上限+13000=温度下限Q4.7加热器PIW304令CPU调用一个OB以检测和控制罐的温度,从一个特定日期和时间开始每分钟执行一次。循环中断(OB35)RUNOB35OB35OB35IntervalOOB1B1OB1OB1OB1OB1OB1OB1IntervalInterval练习5:利用循环中断产生闪烁信号根据要求设置OB35的调用间隔序号步骤结果1生成、保存并下装OB3523测试程序的功能M35.0以3Hz频率闪烁(P)()I0.0M0.1SFC32(SRT_DINT)ENENOOB_NRDTIMESIGNRET_VAL20T#500msW#16#01MW10M2.0延时中断(OB20)模拟输入模块上限值下限值+276480硬件中断(OB40)硬件组态:模拟输入模块的属性CPU的属性模拟输入模块断线+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的反应外部错误模拟模块输入断线停机,如果相应的错误OB块不存在且模块诊断功能被激活内部错误AD转换器的转换错误停机,如果相应的错误OB块不存在且模块诊断功能被激活系统错误MPI接口的硬件错误停机用户程序错误调用一个不存在的块停机,如果相应的错误OB块不存在在S7-400中移动和连接模块在运行状态下移动模块停机,如果相应的错误OB块不存在使用错误组织块•为避免发生某错误时CPU进入停机状态,可以在CPU中建立一个相应的空错误组织块。•可以在错误OB块中编程实现所希望的响应,如果需要,在执行完规定指令后,调用系统功能SFC46申请停机。•在错误组织块的启动信息中包含有错误的特征,可以在程序中使用。•关于错误组织块的详细描述参见在线帮助或系统和标准功能手册。•当CPU不支持某些错误OB时,相关的错误信息就不会记录在OB块中。错误组织块应用举例错误处理OB块中的附加信息OB122(访问错误)中的附加信息变量类型描述OB122_EV_CLASSBYTE事件类别,IDs=B#16#29OB122_SW_FLTBYTE错误代码:(可能的值为:B#16#42,B#16#43,B#16#44,B#16#45)OB122_PRIORITYBYTE发生错误的OB块的优先级OB122_OB_NUMBRBYTEOB块的号码(122)OB122_BLK_TYPEBYTE发生错误的块的类型:B#16#88:OB?B#16#8A:DB?B#16#8C:FC?B#16#8E:FB?OB122_MEM_AREABYTE内存区域和访问类型OB122_MEM_ADDRWORD发生错误处的内存地址OB122_BLK_NUMWORD导致错误的MC7指令所在块的地址OB122_PRG_ADDRWORD导致错误的MC7指令的相对地址OB122_DATE_TIMEDATE_AND_TIMEOB块被调用的日期和时刻控制中断组织块的系统功能块组织块功能代号在S7-300中的优先级用于控制OB的SFC备注日期时间中断OB10...172SFC28...31或通过硬件组态来设置延时中断OB20...233SFC32...34必须使用硬件中断OB40...4716无诊断中断OB81...8726无循环中断OB30...38无12练习6:模拟量模块的诊断中断模拟量输入模块当模块通道上的测量值超限时,OB82被调用,当测量值回到允许范围内时,又将调用一次。额定范围超上界超上限任务:只要有一个转换后的数值超限,输出Q5.1就一直闪烁。.数据块(DB)中的数据存储位存储器PIQPII数据存储区数据块DBxDByDBz...I/O区L堆栈数据块(DB)功能FC10功能FC20功能块FB1OB1全局数据DB20所有块可以访问背景数据DB5FB1的背景DBSTEP7数据类型概述基本数据类型(到32位)复杂数据类型(长于32位)用户定义数据类型(长于32位)•位数据类型(BOOL,BYTE,WORD,DWORD,CHAR)•数学数据类型(INT,DINT,REAL)•定时器类型(S5TIME,TIME,DATE,TIME_OF_DAY)•时间(DATE_AND_TIME)•矩阵(ARRAY)•结构(STRUCT)•字符串(STRING)数据类型UDT(用户定义数据类型)STEP7基本数据类型BOOL1True或False(1或0)BYTE8B#16#A9WORD16W#16#12AFDWORD32DW#16#ADAC1EF5CHAR8'w'S5TIME16S5T#5s_200msINT16123DINT32L#65539REAL321.2或34.5E-12TIME32T#2D_1H_3M_45S_12MSDATE16D#1993-01-20TIME_OF_DAY32TOD#12:23:45.12关键字长度(位)该类型的常数举例复杂数据类型关键字长度(位)举例DATE_AND_TIME64DT#97-09-24-12:14:55.0STRING8*(字符个数+2)´Thisisastring´(最多254个字符的字符串)´SIEMENS´ARRAY用户定义测量值:ARRAY[1..20](相同数据类型的元素组)INTSTRUCT用户定义Motor:STRUCT(不同数据类型的元素组)Speed:INTCurrent:REALEND_STRUCTUDTUDTasblockUDTasarrayelement(用户定义数据类型=用户定义基本或复杂数据类型组成的STRUCTDrive:ARRAY[1..4]模板)Speed:INTUDT1Current:REALEND_STRUCT结构举例程序编辑器中的显示(数据块DB1):OperatingSpeed,datatypeIntegerRatedCurrent,datatypeRealStartupCurrent,datatypeRealTurningDirection,datatypeBool带有名字“Motor_data”的结构(不同数据类型的几个元素)Motor_data矩阵举例1.Measuring_point,datatypeReal2.Measuring_point,datatypeReal3.Measuring_point,datatypeReal10.Measuring_point,datatypeReal带有名字“Measuring_point”的矩阵(相同数据类型的几个元素)•••程序编辑器中的显示(数据块DB2):Measuring_point建立新数据块输入、保存、下载和监视数据块寻址数据单元078位数据字节0DBB0数据字节1DBW0数据字节8191DBD8188DBW8190DBB8191数据字节2DBD0数据字节3DBX4.1访问数据单元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绝对寻址全局DB(例如)UDT块作为模板用户定义数据类型(UDT)FlourMilkEggsYeastSugar配方2FlourMilkEggsYeastSugar配方3FlourMilkEggsYeastSugarFlourMilkEggsYeastSugar根据UDT建立的DB配方1FlourMilkEggsYeastSugar带有三个UDT类型的元素输入UDT块根据数据类型建立数据块举例:UDT中矩阵声明查看数据查看练习1:数据块和数据格式IB1DB10.DBW2DB11.DBW8+=BINBCDQW6DB11.DBW10BINBCDQW6IB2MW2BCDB

1 / 92
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功