刚入行的时候,我最喜欢的就是置位与复位这两个指令,可以说没有之一。不管是气缸控制,还是灯的控制,使用置位和复位两个指令就可以轻松搞定。但是随着编程时间越长,慢慢发现了它们的一些弊端,所以我越来越不喜欢用置位与复位指令编程了。这是为什么呢?一条条讲给你听。
1.执行效率不高
我们以最典型的电机启停控制程序进行举例,置位复位方式编程如图所示:
为什么说这个程序执行效率不高,因为这个程序如果条件满足时,一个扫描周期内会对Q0.0进行二次写入操作,一次是置1操作,一次是置0操作。
2.编程容易遗漏
置位与复位指令,通常是成对使用的,在编程的时候,如果遗漏了,则可能让程序处于一个状态。如果遗漏掉了置位指令,则会导致处于0的状态;如果遗漏掉了复位指令,则会导致处于1的状态。
3.设备未全扫描
置位复位指令,本质上是一种条件判断。在一个扫描周期内,如果启动和停止按钮都没有按下的状态,则会跳过对Q0.0的写入操作,即不写入0,也不写入1。如果处于这种状态,可能会导致不可预知的情况发生。
4.程序逻辑不严密
当置位操作与复位操作之间,存在多条程序时,会占用一定的扫描时间。如果这个时间存在时间足够长,可能存在一个极短的过渡阶段。当两个条件都满足时,可能在一个扫描周期内,电机先启动了,又停止了。
最后简单总结一下。虽然置位复位指令非常的简单,但是由于存在一些问题,所以对于逻辑控制的程序,不采用这种方法编程。那么采用什么方法实现呢?可以采用程序自锁的方式来进行逻辑控制。如图所示: