>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。使用该功能可对外部过程信号进行灵活的响应。
---------END----------
每天进步一点点
Make small but daily progress
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |