前面讲了:什么是沿指令及 沿指令梯形图的解析。沿指令由于其产生的信号时间极短:一个PLC的扫描周期,所以在对程序进行监控时,是观察不到其导通逻辑的。这就使程序调试带来一定难度,所以使用上升沿指令时,往往配合置位S和复位R指令。下面我们分析几个有趣的小程序。
首先是一个没有沿指令,使用置复位控制灯泡1的亮、熄灭的程序。
当按钮1 = 1 ,按钮2 = 0 时,灯泡1 = 1。
这个很简单好接受,那么我们加点难度:保持按钮1 = 1,同时命令按钮2 = 1,那么灯泡1是亮还是不亮?(有点烧脑了奥)
置位线圈(s)导通令灯泡1Q0.1点亮。复位线圈(R)导通令灯泡1Q0.1熄灭。那他们同时点亮灯泡1Q0.1听谁的呢?答案是:按照扫描周期,扫描灯泡1Q0.1的最后一个状态,
所以,保持按钮1 = 1,同时命令按钮2 = 1,灯泡1Q0.1是熄灭的。改变按钮1和按钮2导通的顺序最终的结果依旧不会改变。
好的,那么我们对这个程序进行一下改造,加上升沿指令。
程序没有发生改变,只是对按钮1和按钮2加了沿指令。那么我们再重复上面的操作,先导通按钮1,灯泡1点亮。
然后我们保持按钮1 = 1,同时命令按钮2 = 1,灯泡1熄灭。
上面结果和之前没有用沿指令的效果一样的啊?呵呵,别着急我们继续操作。
这次,我们改变按钮1和按钮2的操作顺序。先导通按钮2,再导通按钮1。疑惑出现了,灯泡1点竟然亮了。这个是为啥呢?不应该根据PLC扫描原理,Q0.1的状态应该是最后一个按钮2操作的结果灯泡1熄灭啊,为啥亮了呢?
我们分析一下,先不管对两个按钮的操作顺序,当按钮1和按钮2全部导通,Q0.1出现不一样的控制结果,其原因就在于我们对按钮1和按钮2使用了上升沿指令。只取了两个按钮由0-1的状态时的一个扫描周期,而对除了这个扫描周期以外的时间,其操作结果都无效。这就是为什么从监控状态来看,按钮1和按钮2虽然导通了,但其后面的能流线为虚线的原因。
当先按按钮1,再按按钮2时,灯泡1熄灭状态。
当先按按钮2,再按按钮1时,灯泡2点亮状态。
,