西門子PLC梯形圖編程時,當一個或者多個指令(程序)需要重復執行多次(次數可知)時,可使用FOR循環指令,從而提高編程效率。
FOR指令表示循環的開始。
EN為循環控制輸入端;
INDX為設置指針或當前循環次數的計數器;
INIT為計數初始值;
FINAL為循環計數終值。
NEXT指令表示循環的結束。FOR和NEXT必須成對出現。
在循環控制輸入端有效且邏輯條件INIT小于FINAL時,系統反復執行FOR和NEXT之間的循環體程序,每執行一次循環體,INDX自增1,直至當前循環計數值大于終值時,退出循環。
如下圖所示程序為將VW0~VW18按照從大到小的順序排列。
按下I0.0循環開始,循環體中的程序將執行9次。
這里用的是間接尋址,建立兩個指針,分別指向vw0和vw2的地址。
嵌套內循環開始。
相鄰的兩個數比較,如果前面的數比后面的數小則兩個數交換。在第一輪比較的是VW0和VW2中的數值。
指針偏移,下一輪比較的就是VW2和VW4中的數值。
內循環結束。
外循環第一輪結束,比較出了最小的數,并且存放在VW18中,所以外循環第二輪只需比較八次就可以了。同理下一輪比較都要比前一輪少比較一次。
在項目中我們需打開數據塊給VW1006賦初始值9。
外循環結束。