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