PLC 梯形图逻辑 - 内存和处理管理

PLC Ladder Logic - memory and processing management

我刚开始学习梯形图编程,英语不是我的母语。我的一位教授曾经说过,我不能在同一个阶梯梯级上放置多个输出,对吗?如果是这样,最好将输出放在其他梯级上还是放在同一梯级上以节省内存 space 和处理时间?

这完全取决于提供梯形图逻辑实现的供应商。

罗克韦尔(我相信还有一些其他供应商)RLL 允许在梯级中的任何位置执行 OTE 和其他操作。输出由输入的逻辑条件控制;它还(至少,OTE)将该值在梯级中进一步传递,不变,以供更多梯级处理。

每个梯级只有一个输出是一种不错的风格。每个梯级有多个输出在代码方面(和时间方面)效率更高,因为输出可以共享梯级条件。

我经常在一个梯级中看到两个并行输出。如果两个输出共享除一个输入条件外的所有输出,这将是合乎逻辑的,例如,不同的输入条件导致两个不同的输出。

  I:0.00  I:0.01  I:0.02  O:1.00
---[/]-----[ ]-----[ ]-----O---
               |           
               |  I:0.03  O:1.01     
                ---[ ]-----O---

但是,如果两个输出条件具有完全不同的逻辑分支,则将它们放在同一梯级中是没有意义的。事实上,一些供应商(例如 Omron CX-One)不允许将断开连接的分支放置在同一梯级中。

也许,正如@franji1 在他的评论中提到的,您的教授指的是将 相同的 输出放在多个梯级中。

我还没有见过不能在同一梯级上处理多个输出的 PLC。

就像@franji1 说的,他可能会说不要而不是你不能。我绝不会建议在梯级上有多个输出,但有时这是必要的。

他还可以告诉您不要在多个梯级中使用相同的输出,因为 PLC 将始终读取最后一个梯级。

假设您在梯级 1 中激活 O:1.0,但在梯级 20 中 O:1.0 未激活,则此输出将永远不会打开,因为 PLC handels 输出之后每次全扫描。

 AlwaysON       O:0.0
---[]-------------()

AlwaysOFF         O:0.0
---[]-------------()

像她一样,最后一个梯级永远不会为真,因此 O:0.0 将永远为 false,即使它在较早的梯级中处于活动状态。

如果您随后交换梯级,使 AlwaysON 状态位于最后一个梯级 O:0.0,那么它将始终处于活动状态并且 AlwaysOFF 梯级将是 多余的。

希望对您有所帮助。

如果你用的是梯子(LAD),就像T.Nesset说的-

AlwaysON       O:0.0
---[]-------------()

AlwaysOFF      O:0.0
---[]-------------()

Q0.0 会变成"OFF" 因为PLC 正在扫描程序从上面到end.if 你稍微改一下就这样:

AlwaysOFF       O:0.0
---[]-------------()

AlwaysON        O:0.0
---[]-------------()

Q0.0 的结果将是"ON"。 在GXWorks2之类的三菱编程软件中,用这种方式创建梯形图程序时,编译后会有警告提示。这种风格在日语中的名称是 "double coil".

如果你想使用这种风格,请插入一个跳转指令来分隔这些网络/分隔不同的块,并确保每次只有一个块是运行。

抱歉我的英语不好。