【发布时间】:2012-02-22 00:19:49
【问题描述】:
PLC 文档 (Omron) 显示了条件标志的正确和错误使用(见图)。但是我看不出两者之间有什么区别:如果指令 A 为 ON,那么指令 B 和未标记的指令都将被执行。两个梯形图对我来说都意味着实现同样的事情。为什么一个是错误的,另一个是正确的?
【问题讨论】:
PLC 文档 (Omron) 显示了条件标志的正确和错误使用(见图)。但是我看不出两者之间有什么区别:如果指令 A 为 ON,那么指令 B 和未标记的指令都将被执行。两个梯形图对我来说都意味着实现同样的事情。为什么一个是错误的,另一个是正确的?
【问题讨论】:
这类似于微分指令问题。同样,条件标志 (CF) 是全局的,并且每次都会更改,在这种情况下,会执行比较操作。
在不正确的示例中,指令 A 将执行比较,并且等于 (=) 的 CF 将为真或假。隐含的期望操作流程是,如果指令 A 对等于返回 true,则执行指令 B,否则继续执行最后一个梯级。
但是,如果指令 A 对等于返回 true,那么指令 B 将执行,在这种情况下,暗示它也在执行比较操作(可能会在下一个梯级中执行)。但是,如果 B 为等于返回 false,则当前梯级的最终分支仍将执行,因为它发生在 B 的比较之后 - 即使目的是仅在 A 返回 false 时执行最终分支 - 而不是 B!
第二个例子(正确)展示了如何避免将 B 的结果泄漏到 A 的逻辑中。
【讨论】: