1.6.4 组织块(OB)的实现功能
OB控制用户程序的执行,每个OB的编号必须唯一。CPU中的特定事件将触发组织块的执行。OB无法互相调用或通过FC或FB调用。只有启动事件(例如,诊断中断或时间间隔)可以启动OB的执行。CPU按优先等级处理OB,即先执行优先级较高的OB,然后执行优先级较低的OB。最低优先等级为1(对应主程序循环),最高优先等级为26(对应时间错误中断)。
OB控制以下操作:
1.程序循环
在CPU处于RUN模式时循环执行,主程序块是程序循环OB。用户在其中放置控制程序的指令以及调用其他用户块。允许使用多个程序循环OB,它们按编号顺序执行。OB 1是默认循环OB。
2.启动
在CPU的工作模式从STOP切换到RUN时执行一次,包括处于RUN模式时和执行STOP到RUN切换命令时上电。之后将开始执行主“程序循环”OB。允许有多个启动OB。OB 100是默认启动OB。
3.时间延迟
通过启动中断(SRT_ DINT)指令组态事件后,时间延迟OB将以指定的时间间隔执行。延迟时间在扩展指令SRT_ DINT的输入参数中指定。指定的延迟时间结束时,时间延迟OB将中断正常的循环程序执行。
4.循环中断
循环中断OB将按用户定义的时间间隔(如每隔2s)中断循环程序执行。每个组态的循环中断事件只允许对应一个OB。
5.硬件中断
在发生相关硬件事件时执行,包括内置数字输入端的上升沿和下降沿事件以及HSC(高速脉冲计数器)事件。硬件中断OB将中断正常的循环程序执行来响应硬件事件信号。可以在硬件配置的属性中定义事件。每个组态的硬件事件只允许对应一个OB。
6.时间错误中断
在检测到时间错误时执行。如果超出最大循环时间,时间错误中断OB将中断正常的循环程序执行。最大循环时间在PLC的属性中定义。OB 80是唯一支持时间错误事件的OB。
7.诊断错误中断
在检测到和报告诊断错误时执行。如果具有诊断功能的模块发现错误(如果模块已启用诊断错误中断),诊断OB将中断正常的循环程序执行。