OB 优先级和运行时特性
S7-1200-CPU 支持优先级 1(最低)到 27(最高)。为 OB 分配其启动事件的优先级。中断 OB 只能由时间错误中断进行中断。 此规则也适用于优先级高于当前激活 OB 的事件。即,除时间错误中断 OB 外,只能激活一个中断 OB。
正在执行中断 OB 时,生成的任何其它事件都会按照其优先级添加到队列中。稍后按照其发生的时间顺序来处理队列中的启动事件。
CPU 上的程序执行:
循环 OB 由中断 OB 进行中断。
中断 OB 只能由时间错误中断 OB 进行中断。
下图显示了基本顺序:
① and ②某个事件(如硬件中断)调用其相关联的 OB。
不中断地执行已调用的 OB 及其所有嵌套块。如果队列不包含任何可触发 OB启动的事件,则在完成中断处理时会继续执行循环 OB。
③ 中断 OB 只能由时间错误中断 OB (OB 80) 进行中断。
④ 中断处理期间会发生新的报警触发事件。这个新事件会添加到队列中。排队的事件只能在完成执行当前中断 OB 后按照以下规则连续调用其相应的 OB:
● 事件按照其优先级顺序进行处理(从最高优先级开始)
● 优先级相同的事件按照时间顺序进行处理
⑤ 循环 OB 相继进行处理。
过程事件及其优先级
过程事件由 I/O(例如通过数字量输入)触发并在 S7-1200 CPU 中启动对已分配 OB 的调用。 分配给硬件中断事件的 OB 就是所谓的硬件中断 OB。
过程事件及其优先级的示例:
● 中断触发模块中的过程事件“上升沿”或“下降沿”:由此事件启动的硬件中断 OB 总是分配为优先级 5。
● 来自高速计数器的过程事件
– 计数值对应于参考值
– 更改计数方向
– 高速计数器的外部复位
由此事件启动的硬件中断 OB 总是分配为优先级 6。
下图显示了硬件中断执行的顺序。
硬件中断执行
① 硬件中断触发事件(如输入端的上升沿)调用它所属的 OB。
② 如果执行 OB 时发生触发硬件中断的新事件,则将该事件输入到队列中。
③ 触发硬件中断的新事件会启动分配给此事件的硬件中断 OB。
分配中断触发事件在设备视图的输入属性中,将中断触发事件分配给 OB。
● 只能将中断触发事件分配给单个 OB。
● 但是,可将 OB 分配给多个中断触发事件。
即,可将上升沿事件和下降沿事件分配给同一个中断 OB,以便对任何输入信号的切换触发相同的响应。
● 每条指令中,已启动的 OB 都可以中断循环 OB。一致的数据访问由最多双字大小来保证。
● 可参数化模块特定的中断触发事件,如输入端的上升沿和下降沿。
● 在中断触发模块的组态中分配中断触发事件和要启动的 OB。但是,在已启动的硬件中断 OB 中,可通过 DETACH 指令覆盖此分配,或者通过 ATTACH 指令将相同的事件分配给不同的 OB。使用该功能可对外部过程信号进行灵活的响应。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !