当前位置:首页 > 新型工业化 >西门子plc循环程序处理的各个阶段数据(西门子plc循环程序处理的各个阶段指令)

西门子plc循环程序处理的各个阶段数据(西门子plc循环程序处理的各个阶段指令)

用于循环程序处理的组织块(OB1)

可编程控制器上的循环程序处理是“正常”类型的程序执行。操作系统循环调用OB1来启动用户程序的循环执行。

西门子plc循环程序处理的各个阶段数据(西门子plc循环程序处理的各个阶段指令)

循环程序的执行顺序

下表显示了循环程序处理的各个阶段:

1.操作系统启动周期监控时间

2. CPU将输出过程映像表中的值写入输出模板。

3. CPU 读取输入模板的输入状态并刷新输入过程映像表。

4、CPU处理用户程序并执行程序中包含的指令

5. 循环结束时,操作系统执行所有挂起的任务,例如下载和删除块、接收和发送全局数据

6. 最后,CPU 返回循环开始处并重新开始循环监控时间。

OB1_EV_CLASS BYTE 事件级别和标识符:B#16#11:OB1 已激活

OB1_SCAN_1 BYTE B#16#01:热重启完成,B#16#04:冷重启完成,B#16#03:主循环完成

B#16#02:热重启完成

B#16#02:热重启完成

OB1_PRIORITY BYTE 优先级1

OB1_OB_NUMBR BYTE OB 编号(01)

OB1_PREV_CYCLE INT 上次扫描运行时间(毫秒)

OB1_MIN_CYCLE INT 自上次启动以来的最小周期(ms)

OB1_MAX_CYCLE INT 自上次启动以来的最大周期(毫秒)

OB1_DATE_TIME DATE_AND_TIME 调用OB 时的DATE_AND_TIME

过程图像

因此,在循环程序处理过程中,CPU的过程信号图像是一致的。 CPU并不直接访问I/O模板上的输入(I)和输出(Q)地址区域,而是访问CPU内部包含输入和输出图像的存储区域。

编程循环处理

您可以使用STEP 7 对循环程序处理进行编程,将用户程序写入OB1 以及OB1 调用的块中。

一旦启动程序无错误地执行,循环程序处理就开始。

打断

循环程序处理可以被以下事件中断:

? 中断

? STOP 命令(模式选择开关、编程器上的菜单选项、SFC46 STP、SFB20 STOP)

? 电源(检测)失败

? 发生故障或编程错误

扫描周期时间

扫描周期时间是操作系统运行循环程序和中断周期的所有程序部分(例如,执行其他组织块)以及系统操作(例如,刷新过程映像)所需的时间。这个时间是可以监控的。

每个周期的周期扫描时间(TC) 并不相同。下图显示了现有CPU 和新CPU 之间的不同扫描周期时间(TC1 TC2):

循环监测时间

使用STEP 7,您可以修改默认的最大循环监视时间。如果该时间到期,CPU 会切换到STOP 模式或调用OB80。在OB80 中,您可以指定CPU 如何响应此故障。

最短循环时间

使用STEP 7,可以设置S7-400 CPU 和CPU318 的最小循环时间。此功能在以下情况下很有用:

? 当OB1(主程序扫描)执行程序的起始间隔必须一致时,或

? 如果循环时间太短,则无需过于频繁地刷新过程映像表。

下图显示了现有CPU 和新CPU 中程序处理期间的循环监视时间功能。

刷新过程图像

在CPU 的循环程序处理过程中,过程映像区会自动刷新。

如果您想执行以下操作,也可以不刷新过程映像:

? 直接访问I/O 或

? 使用系统功能SFC26 UPDAT_PI 和SFC27 UPDAT_PO 在程序中的不同点刷新一个或多个过程映像的输入或输出部分。

通讯负载

您可以使用CPU 参数“来自通信的扫描周期负载”来控制给定帧内通信过程的持续时间,因为通信过程通常会增加扫描周期时间。例如,通信过程包括以MPI模式向其他CPU传输数据,或者使用编程设备加载的通信功能块。

该参数很少影响程序员测试功能。当然,您可以显着增加扫描时间。在处理模式下,您可以限制测试功能的时间(仅适用于S7-300)。

参数如何工作

CPU 操作系统持续为所配置的通信提供用户配置的整个CPU 处理能力的百分比(时间片技术)。但如果不需要处理通信,可以用于其他处理。

设置扫描周期时间

在不需要其他异步事件的情况下,OB1 扫描周期时间可以根据以下公式延长一个因子:

责任编辑:lq

最新资讯

推荐资讯