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