一、S7-1200/1500 程序循环组织块
(1)功能说明
1.程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。
2.可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环OB 。
3.操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
4.S7-1200 允许使用多个程序循环 OB ,按 OB 的编号顺序执行。OB1 是默认设置,其它程序循环 OB 的编号必须大于或等于 123。
5.程序循环 OB 的优先级为 1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。最长循环时间缺省设置为 150ms。如果您的程序超过了最长循环时间,操作系统将调用 OB80(时间故障 OB );如果 OB80 不存在,则 CPU 停机。
6.PLC 循环时间包含中断程序的时间。
操作系统的执行过程,请参见上图6-3:
1、操作系统启动扫描循环监视时间;
2、操作系统将输出过程映像区的值写到输出模块;
3、操作系统读取输入模块的输入状态,并更新输入过程映像区;
4、操作系统处理用户程序并执行程序中包含的运算;
5、当循环结束时,操作系统执行所有未决的任务,例如调用其他循环 OB ;
6、最后,CPU 返回循环起点,并重新启动扫描循环监视时间。
(2)举例说明
二、S7-1200/1500 诊断中断组织块
(1)什么是中断
1.中断的含义解释:
中断是 PLC 控制中一个非常重要的应用。可以举一个日常生活中的 例子来说明: 假如你正在给朋友写信,电话铃响了。这时,你放下手中的笔,去接电话,通话完毕,再继续写信。这个例子就表现了中断及其处理过程:电话铃声使你暂时中止当前的工作,而去处理 更为急需处理的事情(接电话),把急需处理的事情处理完毕之后,再回头来继续原来的事情。在这个例子中,电话铃声称为“中断请求”,你暂停写信去接电话叫 作“中断响应”,接电话的过程就是“中断处理”,相应地,在 PLC 执行程序的过程中,由于出现某个特殊情况(或称为“事件”),使得暂时中止现行程序,而 转去执行处理这一事件的处理程序,处理完毕之后再回到原来程序的中断点继续向下执行,这个过程就是中断。
2.中断的意义解释:在需要执行某些程序的时候,才中断正常循环程序去执行一些特殊控制要求,这样既不影响主程序的运行与工作负担,也能够保证中断程序的实时性。
(2)诊断错误 OB82 的说明
S7-1200 支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。OB82 是唯一支持诊断错误事件的 OB ,出现故障(进入事件),故障解除(离开事件)均会触发诊断中断 OB82 。当模块检测到故障并且在软件中使能了诊断错误中断时,操作系统将启动诊断错误中断, OB82 将中断正常的循环程序优先执行。此时无论程序中有没有诊断中断 OB82,CPU 都会保持 RUN 模式,同时 CPU 的 ERROR 指示灯闪烁。如果希望 CPU 在接收到该类型的错误时进入 STOP 模式,可以在 OB82 中加入 STP 指令使 CPU 进入 STOP 模式。
(3)与诊断错误 OB82 相关的信息
当触发诊断错误中断时,通过 OB82 的接口变量可以读取相应的启动信息,可以帮助确定事件发生的设备、通道和错误原因。OB82 的接口变量及启动信息参考下。
(4)实际编程应用
1.在硬件组态窗口中,选中模拟量输出模块,选择模拟量输出通道 1 的“启用短路诊断”功能,如果不勾的话,即使短路也不会报错。模拟量输出-短路诊断
2.只有在硬件组态中有的故障诊断才会起作用,不让 PLC 是不会有任何报错信息的。程序下载后,在监控表中给“channel1”设置输出值 2000,输出短路故障,则将立即触发诊断错误功能。
说明:
1.MW260=2#0000_0000_0001_0000第4位=1,代表模块输出有短路(AO)或断线故障(AI);
2. MW280=257,代表模块的硬件标识符=257;
3. MW286=1代表通道 1 的故障。