《第6章S7300的组织块及中断处理课件.ppt》由会员分享,可在线阅读,更多相关《第6章S7300的组织块及中断处理课件.ppt(53页珍藏版)》请在三一办公上搜索。
1、第6章 S7-300的组织块及中断处理,教学内容和要求,内容:组织块的组成及分类、 循环执行的组织块OB1定期执行的组织块及中断处理、事件驱动的组织块和中断处理启动组织块和中断处理、背景组织块要求:了解组织块的组成和分类。掌握块的使用及其中断组织块的功能及系统功能块的使用,2022/12/5,2,2022/12/5,3,6.1 组织块概述6.2 循环执行的组织块6.3 定期执行的组织块和中断6.4 事件驱动的组织块和中断处理6.5 启动组织块和中断处理6.6 背景组织块( OB90 ),6.1 组织块概述,组织块概述组织块的组成 组织块的分类和优先级,2022/12/5,4,2022/12/5
2、,5,一、组织块的概述,块类型 组织块的定义 组织块与程序结构 组织块的特点和功能,2022/12/5,6,1. 块类型,2022/12/5,7,组织块(OB)是CPU操作系统与用户程序间的接口,2. 组织块的定义,2022/12/5,8,3. 组织块与程序结构,操作系统,用户程序,系统上电,循环执行,主程序 运行,操作系统与主程序的关系,2022/12/5,9,操作系统,用户程序,系统上电,循环执行,主程序 运行,操作系统与中断程序的关系,启动初始化,中断,事件中断程序,故障中断程序,中断,事件中断,故障中断,2022/12/5,10,OB 1,电机1,FB1,阀,FB2,控制器,FB10,
3、FC 5,限制 阀,复制,SFC,. . .,.CALL FB1, DB2 Start:=I 0.0 Stop:=I 0.1 Motor_on:=Q12.0 Speed:=QW14.,FB 1,地址声明名称类型0.0inStartBOOL0.1inStopBOOL2.0outMotor_onBOOL4.0outSpeedINT6.0statSpeed_oldINT0.0tempCalc_1INT.A #StartAN #Stop=#Motor_on.,DB 2,OB 1,(1).组织块的好处用于结构化编程,2022/12/5,11,(2).PLC运行时程序执行方式,2022/12/5,12,O
4、B1连续执行,. 直到被其它OB中断,(3).PLC中断循环程序,2022/12/5,13,被中断的 OB 块的数据保存,系统调用新的 OB,在执行新的 OB 前, 保存被中断块的寄存器,2022/12/5,14,组织块由操作系统自动调用 组织块不能互相调用基本功能是调用用户程序。组织块代表着系统功能。,4.PLC组织块的特点和功能,2022/12/5,15,二、组织块的组成,变量声明表和用户程序组成,每个OB提供20个字节的启动信息,2022/12/5,16,三、组织块的分类和优先级,循环执行的组织块启动组织块定期执行的组织块事件驱动的组织块背景组织块,每个组织块均具有优先级,通常情况下组织
5、号码越大,优先级越高,6.2 循环执行的组织块,2022/12/5,17,OB1优先级为1OB1默认的扫描监控时间为150ms,OB1,2022/12/5,18,OB1的变量声明表,6.3 定期执行的组织块和中断,2022/12/5,19,日期时间中断组织块(OB10OB17)循环中断组织块(OB30OB38),2022/12/5,20,一、日期时间中断组织块 (OB10OB17),设置触发的日期、执行模式,使其在某一特定日期或特定间隔,产生中断。8个日期时间中断具有相同的优先级,执行模式:Once(一次): 只在特定日期和时间执行一次。Every minute(每分钟): 从某一特定日期和时
6、间开始,每分钟执行一次。Hourly(每小时): 从某一特定日期和时间开始,每小时执行一次。Daily(每天): 从某一特定日期和时间开始,每天执行一次。Weekly(每周): 从某一特定日期和时间开始,每周执行一次。Monthly(每月): 从某一特定日期和时间开始,每月执行一次。Annually(每年): 从某一特定日期和时间开始,每年执行一次。,2022/12/5,21,1. 设置和启动日期时间中断,(1) SFC28“SET_TINI”设置参数,SFC30 “ACT_TINI”激活中断。(2)在STEP 7的HW-config中,对CPU属性进行中断设置 并激活。(3)在STEP 7的
7、HW-config中,对CPU属性进行中断设置 ,不激活,用SFC30“ACT_TINI”激活中断。,2022/12/5,22,【例1】 : 设置日时钟中断,2022/12/5,23,配置日时钟中断 使用硬件组态工具来配置日时钟中断。选择菜单功能CPU - Object Properties -“Time-of-Day Interrupts”,可以定义何时、以何方式执行OB10。激活如果点中“激活”( Active) 选项框,在CPU每次全启动后将执行日期时间中断OB。说明日时钟中断可以在程序运行时由系统功能块来控制。可使用下列系统功能块:SFC 28 “SET_TINT”设置启动日期、时刻和
8、周期SFC 29 “CAN_TINT” 取消日期时间中断SFC 30 “ACT_TINT”激活日期时间中断 SFC 31 “QRY_TINT” 查询日期时间 断S7-400在S7-400 PLC 中有8个不同的日期时间中断OB (OB 10 to 17) 。,2022/12/5,24,2查询日期时间中断,调用系统功能SFC31“QRY_TINI”,3禁止日期时间中断,调用系统功能SFC29“CAN_TINI”,2022/12/5,25,【例2】 : 设置系统时间,2022/12/5,26,二、循环中断组织块(OB30OB38),循环中断的时间间隔在CPU的属性中设置,每个OB默认时间间隔不同,
9、系统功能SFC39SFC42,可以禁止、延迟、使能循环中断,循环中断 循环中断(看门狗)用于在一定的间隔执行程序块。在S7-300中,循环中断组织块为 OB 35,它的缺省调用时间为100ms,其允许的设定范围为1ms至1分钟。启动时刻 当一个时间控制中断被激活后,应以“启动时刻”为参考点设定中断的时间间隔.每次CPU从STOP切换为RUN的时刻为启动时刻。时间间隔 必须保证所定义的时间间隔大于组织块中程序的执行时间。操作系统在设定的间隔后调用OB35时,如果上一次执行的OB35仍未结束,则操作系统将调用OB80(循环中断错误)。 说明在程序运行时,循环中断无法用系统功能来控制。S7-400在
10、S7-400 PLC 中有9种不同的循环中断组织块 (OB30 至 38)。,2022/12/5,27,RUN,OB35,OB35,OB35,O,OB1,B1,OB1,OB1,OB1,OB1,OB1,O,B1,【例3】 :设置循环中断,2022/12/5,28,【例4】:循环中断的使用,在I0.0的上升沿启动OB35对应的循环中断,在I0.1的上升沿禁止OB35对应的循环中断。在OB35中使MW4加1。(设中断间隔为1s),2022/12/5,29,/先将OB35的循环周期由默认的100ms改为1000ms,下装到CPU中。OB1: Network1: /在I0.0的上升沿激活循环中断 A I
11、0.0 FP M1.1 /在I0.0的上升沿,M1.1为1 JNB m001 /否则跳转 CALL SFC40 /激活OB35对应的循环中断 MODE :=B#16#2 /用OB号指定中断 OB_NR :=35 /组织块编号 RET_VAL :=MW100 /保存错误代码 m001: NOP 0Network2:/在I0.1的上升沿禁止循环中断 A I0.1 FP M1.2 /在I0.1的上升沿,M1.2为1 JNB m002 /否则跳转 CALL SFC39 /禁止OB35对应的循环中断 MODE :=B#16#2 /用OB号指定中断 OB_NR :=35 /组织块编号 RET_VAL :=
12、MW104 /保存错误代码 m002: NOP 0 OB35:Network1: L MW4 1 T MW4,6.4 事件驱动的组织块和中断处理,2022/12/5,30,延时中断(OB20OB23)硬件中断(OB40OB47)异步故障中断(OB80OB87)同步故障中断(OB121和OB122),2022/12/5,31,一、延时中断组织块(OB20OB23)和中断处理,延时时间为160000ms,精度为1ms 优先级及更新过程映像区的参数在CPU的属性中设置SFC32 “SRT_DINT”设置OB号与延时时间,触发中断,SFC33“CAN_DINT”取消延时中断SFC34“QRY_DINT
13、”查询延时中断的状态,SFC 32 OB_NR = 延时中断组织块的号码DTIME = 延时时间 (1 到 60000ms)SIGN = 启动延时中断组织块时用户自定义的信号RET_VAL = 错误代码,如果执行延时中断组织块时出现错误则返回一个错误代码,2022/12/5,32,【例5】:设置延时中断 (OB20),2022/12/5,33,二、硬件中断组织块(OB40OB47)和中断处理,由外部设备产生也称为过程中断SFC39SFC42可以禁止、延迟、使能硬件中断,例如:功能模块FM、通信处理模块CP、数字量输入模块。通常使用具有硬件中断的数字量输入模块来产生中断,为每一个模块配置相应的中
14、断OB(一个模块只能触发一个中断OB),S7-300只能触发硬件中断OB40通过调用SFC39SFC42系统功能可以禁止、延迟、使能硬件中断的应用,2022/12/5,34,模拟输入模块,上限值,下限值,+27648,0,【例6】:硬件中断的使用,2022/12/5,35,三、异步故障中断组织块(OB80OB87),错误类型,例 子,OB,时间错误,超出最大循环扫描时间,OB80,2022/12/5,36,实际的循环扫描时间超过设置的循环扫描时间。由于向前修改时间而跳过日期时间中断。 在处理优先级时延时太多。,2. 电源故障处理组织块(OB81),1. 时间错误中断处理组织块(OB80),未安
15、装后备电池或者电池失效机架上的直流24V电源故障。,2022/12/5,37,3. 诊断中断处理组织块(OB82),有诊断功能的模板,用HW Config定义了诊断报警,当故障模块发生及消失时,启动诊断中断处理程序,4. 模板热插拔中断处理组织块(OB83),S7-400系列的PLC,2022/12/5,38,6. CPU硬件故障处理组织块(OB84),MPI网络的接口故障通信总线的接口故障分布式I/O的接口故障,6. 优先级错误处理组织块(OB85),操作系统访问模块故障更新过程映像区I/O访问故障正被更新时出现了I/O存取故障事件触发时,相应的OB没有下载到CPU中,2022/12/5,3
16、9,7. 机架故障组织块(OB86),扩展机架故障产生和消失DP主站系统和DP从站的故障产生和消失,8. 通信故障处理组织块(OB87),接收全局数据时,检测到不正确的帧标识符(ID)。全局数据通信时的状态信息数据块不存在或太短。 接收到非法的全局数据包编号。,2022/12/5,40,模拟输入模块,断线,【例7】:设置异步故障诊断中断,2022/12/5,41,在CPU机架直流24V电压故障发生时,将Q4.0置位,当故障消失时,将Q4.0复位,OB1:Network1:/24V电压故障发生 L B#16#23 L #OB81_ FLT_ID = =I = M0.1 L OB81_EV_CLA
17、SS L B#16#39 = =I = M0.2 A M0.1 A M0.2 S Q4.0Network2:/24V电压故障消失 L OB81_EV_CLASS L B#16#38 = =I = M0.3 A M0.1 A M0.3 R Q4.0,【例8】:异步故障诊断中断的使用,2022/12/5,42,四、同步故障中断(OB121和OB122),与执行用户程序有关的故障,错误类型,例子,OB,编程错误,在程序中调用一个CPU中并不存在的块,OB121,2022/12/5,43,S7中可能产生的各种故障,2022/12/5,44,为避免发生某故障时CPU进入停机状态,在CPU中建立一个相应的
18、空故障组织块。 在故障OB块中编程实现所希望的响应,也可以在执行完规定指令后,调用SFC 46申请停机。故障组织块的启动信息中包含有故障的特征,可在程序中使用。故障组织块的详细描述参见在线帮助或系统和标准功能手册。,使用故障组织块,2022/12/5,45,故障处理OB块中的附加信息,OB 122 (访问故障)中的附加信息,变量类型描述OB122_EV_CLASSBYTE事件类别, IDs = B#16#29OB122_SW_FLTBYTE错误代码: (可能的值为: B#16#42, B#16#43, B#16#44, B#16#45) OB122_PRIORITYBYTE发生错误的OB块的优
19、先级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_TIME OB块被调用的日期和时刻,6.5 启动组织块和中断处理,2022/12/5,46
20、,启动类型 启动方式,2022/12/5,47,完全再启动,自动,手动,S7-300 / 400,Power ON,清除过程映像,非保持的M, T, C,允许输出,执行 OB 101,循环,循环,一、启动类型,2022/12/5,48,二、启动方式,暖启动(Warm restart) 冷启动(Cold restart) 热启动(Hot restart),2022/12/5,49,将CPU的模式选择开关扳到STOP位置,“STOP” LED 指示灯亮, 然后再扳到RUN或者RUN-P位置。,(1). 手动暖启动,(2). 自动暖启动,启动时将复位过程映像寄存器及非保持的存储器位,复位定时器和计数
21、器。保留CPU的属性中设置具有保持功能器件的数据。重新开始运行程序,执行OB100或OB1。,1:暖启动,2022/12/5,50,如PLC在运行期间突然停电,又重新上电,CPU将执行一个初始化程序OB101,自动完成热启动启动后从上次RUN模式下中断处继续执行,不对计数器等复位。,2:热启动,2022/12/5,51,将CPU的模式选择开关扳到STOP位置再扳到MRES 位置最后将模式开关再扳到RUN或者RUN-P位置。,(2). 自动冷启动,过程映像区的所有过程映像数据、存储器位、定时器、计数器、数据块以及有保持功能的器件的数据,都被复位到“0”,(1). 手动冷启动,3:冷启动,6.6
22、背景组织块( OB90 ),2022/12/5,52,在OB1中所有的嵌套中断和系统功能的执行时间,小于所设置的最小扫描循环时间,CPU可执行OB90。对运行时间要求不高的操作,放在OB90中执行,避免出现等待时间。OB90的优先级最低,其运行时间不受CPU操作系统的监视,在OB90中编写的程序长度不受限制。,保证CPU的最短扫描时间,小节,2022/12/5,53,1. 组织块(OB)是CPU操作系统与用户程序间的接口2 组织块由变量声明表和用户程序组成,在OB1中的用户程序是循环执行的主程序。3 各个组织块(除了OB1)实质上是用于各种中断处理的中断服务程序。4 对于中断处理组织块的调用是由操作系统根据中断事件自动调用的,而不能由其它程序块调用。6. 编写中断处理组织块的程序时要尽量地短。6不同的CPU具有的组织块的数量是不同的。,