在现场控制中,经常需要将一个控制位的状态转移到下一个状态或者后N个状态,在这里使用移位指令是非常方便的,但是移位指令的位移位数的范围是存在局限性的。
以永宏PLC左位移指令51DP.SHFL]为例,当指令为16位时,位移的位数是1-16;指令为32位时,位移的位数是1-32;超过范围指令将无法执行,那么怎样满足实际应用中数十甚至上百位移位数的要求呢?本文以永宏PLC[左位移指令51DP.SHFL]为例,介绍笔者对上述问题的处理方法。
首先,利用多个移位指令进行状态转移,如下图:
图1 多个移位指令转移
由上图可以看出,仅仅只是将前一个移位指令的最后一位作为后一个移位指令的移入位元使用,但是如果依次使用各个状态位,就会发现程序并不是按我们的需要去动作的,原因如下
由上图会发现图中的黄色部分即前一个移位指令的最后一位与后一个移位指令的第一位状态相同,因此在实际应用中应当将两个状态位视为同一个状态位,在程序中使用完前一个移位指令的最后一位紧接着使用后一个移位指令的第二位就可以达到依次移位的效果了。
|