程序循环 OB

● 程序循环 OB 的功能

程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB 。操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。

S7-1500 允许使用多个程序循环 OB ,按 OB 的编号顺序执行。OB1 是默认设置,其它程序循环 OB 的编号必须大于或等于123。程序循环 OB 的优先级为1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。最长循环时间缺省设置为150ms。如果您的程序超过了最长循环时间,操作系统将调用 OB80(时间故障OB );如果 OB80 不存在,则 CPU 停机。

操作系统的执行过程,请参见下图1:

1、操作系统启动扫描循环监视时间;

2、操作系统将输出过程映像区的值写到输出模块;

3、操作系统读取输入模块的输入状态,并更新输入过程映像区;

4、操作系统处理用户程序并执行程序中包含的运算;

5、当循环结束时,操作系统执行所有未决的任务,例如加载和删除块,或调用其他循环 OB ;

6、最后,CPU 返回循环起点,并重新启动扫描循环监视时间。

图1. 程序循环图例

● 程序循环 OB 的使用示例:

例如:在循环组织块 OB123 中调用 FC1 。具体实现过程如下:

1、按如下步骤创建循环组织块 OB123 。如图2。

图2. 创建循环组织块

2、通过上述类似方法创建功能 FC1 。如图3。

图3. 创建 FC1

3、在循环组织块 OB123 中调用 FC1 。如图4。

图4. 调用 FC1