我从梯形图编程开始,英语不是我的第一语言。我的一位教授曾经说我不能在同一个梯子上放一个以上的输出,这是正确的吗?如果是这样,是否最好将输出放在其他梯级或同一个梯级上以节省内存空间和处理时间?
答案 0 :(得分:3)
这完全取决于提供梯形逻辑实现的供应商。
Rockwell(我相信其他一些供应商)RLL允许OTE和其他任何行动。输出由其输入的逻辑条件控制;它也(至少是OTE)在梯级中进一步传递该值,以便由更多的梯级处理。
每个梯级只有一个输出,这是一个很好的风格。因为输出可以共享梯级条件,所以每个梯级具有多个输出在代码方面(和时间方面)更有效。
答案 1 :(得分:2)
我还没有看到一个PLC无法在同一个梯级上处理多个输出。
就像@ franji1所说,他可能会说不而不是你不能。我永远不会建议在梯级上有多个输出,但有时可能是必要的。
他也可能告诉你在多个梯级中没有相同的输出,因为PLC总是读取最后一个梯级。
所以,让我们说你在梯级1中激活O:1.0,但是在梯级20中O:1.0没有激活,那么这个输出永远不会打开,因为PLC在每次完整扫描后都会输出。
AlwaysON O:0.0
---[]-------------()
AlwaysOFF O:0.0
---[]-------------()
和她一样,最后一个梯级永远不会是真的所以O:0.0总是 false 甚至认为它在早期的梯级中是活跃的。
如果然后交换梯级,那么AlwaysON状态在O:0.0的最后一个梯级上,那么它将始终处于活动状态,AlwaysOFF梯级将是 多余的。
希望这可以帮助你。
答案 2 :(得分:1)
如果你使用阶梯(LAD),就像T.Nesset所说的那样 -
AlwaysON O:0.0
---[]-------------()
AlwaysOFF O:0.0
---[]-------------()
Q0.0将转为" OFF"因为PLC正在从上到下扫描程序。如果你改变了一点就像这样:
AlwaysOFF O:0.0
---[]-------------()
AlwaysON O:0.0
---[]-------------()
Q0.0的结果将是" ON"。 在像GXWorks2这样的三菱编程软件中,当您使用此样式创建梯形图程序时,您将在编译后收到警告。在日语中,这种风格的名称是" double coil"。
如果您想以这种方式使用,请插入一个跳转指令,将这些网络/独立块分开,并确保每次只运行一个块。
抱歉我的英语不好。
答案 3 :(得分:0)
我经常在一个梯级中看到两个并行输出。如果两个输出共享除了一个输入条件以外的所有输入条件,这将是合乎逻辑的,例如,不同的输入条件导致两个不同的输出。
I:0.00 I:0.01 I:0.02 O:1.00
---[/]-----[ ]-----[ ]-----O---
|
| I:0.03 O:1.01
---[ ]-----O---
如果两个输出条件具有完全不同的逻辑分支,则将它们放在同一个梯级中是没有意义的。实际上,一些供应商(例如,Omron CX-One)不允许将断开连接的分支放置在同一个梯级中。
也许,正如@ franji1在他的评论中提到的那样,你的教授指的是将相同的输出放在一个以上的行中。