在現場控制中,經常需要將一個控制位的狀態轉移到下一個狀態或者后N個狀態,在這里使用移位指令是非常方便的,但是移位指令的位移位數的范圍是存在局限性的。
以永宏PLC左位移指令51DP.SHFL]為例,當指令為16位時,位移的位數是1-16;指令為32位時,位移的位數是1-32;超過范圍指令將無法執行,那么怎樣滿足實際應用中數十甚至上百位移位數的要求呢?本文以永宏PLC[左位移指令51DP.SHFL]為例,介紹筆者對上述問題的處理方法。
首先,利用多個移位指令進行狀態轉移,如下圖:

圖1 多個移位指令轉移
由上圖可以看出,僅僅只是將前一個移位指令的最后一位作為后一個移位指令的移入位元使用,但是如果依次使用各個狀態位,就會發現程序并不是按我們的需要去動作的,原因如下

由上圖會發現圖中的黃色部分即前一個移位指令的最后一位與后一個移位指令的第一位狀態相同,因此在實際應用中應當將兩個狀態位視為同一個狀態位,在程序中使用完前一個移位指令的最后一位緊接著使用后一個移位指令的第二位就可以達到依次移位的效果了。
|