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