PLC文档(欧姆龙)显示了条件标志的正确和不正确使用(见图)。但是我看不出这两者之间有什么区别:如果指令A是开的,那么指令B和未标记的指令都将被执行。对我来说,这两个梯形图都意味着实现相同的事情。为什么一个是错误的,另一个是正确的?

发布于 2012-02-21 20:46:54
这类似于差分指令问题。同样,条件标志(CF)是全局的,并且每次都会改变,在这种情况下,执行比较操作。
在不正确的示例中,指令A将执行比较,并且等于(=)的CF将为true或false。隐含的所需操作流程是,如果指令A对于等于返回true,则执行指令B,否则继续到最后一级。
然而,在指令A为等于返回true的情况下,那么指令B将执行,并且在这种情况下,暗示它也在执行比较操作(假设在下一个梯级中被拾取)。然而,如果B返回false作为equals,那么当前梯级的最终分支仍将执行,因为它发生在B的比较之后-即使其意图是仅在A返回false而不是B的情况下执行最终分支!
第二个例子(正确)展示了如何避免将B的结果泄漏到A的逻辑中。
https://stackoverflow.com/questions/9377104
复制相似问题