FOR-NEXT循環(huán)指令
循環(huán)指令的引入為解決重復執(zhí)行相同功能的程序段提供了極大的方便,并且優(yōu)化了程序結構,特別是在進行大量相同功能計算和邏輯處理時,循環(huán)指令非常有用。
循環(huán)指令由FOR和NEXT兩條指令構成,使用時必須成對出現(xiàn),F(xiàn)OR…NEXT指令中間的程序稱為循環(huán)體,就是PLC每次掃描到此處時需要循環(huán)執(zhí)行的程序。
INDX:記錄循環(huán)次數(shù),每執(zhí)行一次循環(huán),數(shù)值會加1,該值在FOR指令重新使能時會自動清零。
INIT、FINAL:循環(huán)的起始值和循環(huán)的結束值。
FOR NEXT之間的程序,稱為循環(huán)體,是用來實現(xiàn)循環(huán)的。
每循環(huán)一次INDX的值會加1,并且用它跟終止進行比較,如果大于終終止值,循環(huán)結束。
注:循環(huán)次數(shù)若是太多可能出現(xiàn)看門狗錯誤的報警。
FOR NEXT示例應用
循環(huán)指令使用注意事項:
1、FOR、NEXT指令使用時必須成對出現(xiàn)。
2、FOR、NEXT指令可以循環(huán)嵌套,最多8層,因此使用時若嵌套使用需注意嵌套層數(shù)。
3、每次重新使能改指令時,PLC自動復位各參數(shù),因此使用時可以不需要對參數(shù)進行清零。
4、初始值大于終止值時,循環(huán)指令不執(zhí)行,設置結束次數(shù)時需注意,不要設置的比結束值大。
例程1:計算0+1+2+3+...+100的結果?
例程1
例程2:通過 FOR-NEXT 指令,對 5 個變量:VW100、VW102、VW104、VW106、VW108 進行求和,求和結果放到 VW200 中,計算的平均值存放在 VD210 中 。
例程2
補充說明:
FOR-NEXT指令的循環(huán)次數(shù)如何計算?
答:FOR-NEXT工作過程:啟用FOR-NEXT指令,首先將 INIT( 初始值) 復制到 INDX(當前循環(huán)次數(shù));每執(zhí)行一次,INDX (當前循環(huán)次數(shù)) 加1; 如 果 INDX 大于 FINAL (終止循環(huán)次數(shù)),終止循環(huán)。
比如: INIT=1 FINAL=10,則循環(huán)體被執(zhí)行10次,然后退出循環(huán), 退出循環(huán)后INDX=11;
INIT=0,FINAL=10, 則循環(huán)體被執(zhí)行11次,然后退出循環(huán),退出循環(huán)后INDX=11。
FOR-NEXT指令執(zhí)行時,主程序是否執(zhí)行,對掃描周期的影響?
答:程序自上而下循環(huán)掃描,當FOR-NEXT指令啟用后,則循環(huán)體被循環(huán)執(zhí)行,直至循環(huán)次數(shù)到達,循環(huán)結束,程序繼續(xù)向下執(zhí)行。即在一個掃描周期內(nèi)執(zhí)行循環(huán)完畢后才會向下執(zhí)行,循環(huán)次數(shù)越多,會導致掃描周期時間延長越多。如果循環(huán)次數(shù)過多或者出現(xiàn)死循環(huán),會導致掃描周期時間超過看門狗時間,報出看門狗超時的致命錯誤,CPU停機并且SF/DIAG燈紅燈常亮。
如何在FOR-NEXT執(zhí)行循環(huán)過程中,退出循環(huán)?
答:您可以在FOR/NEXT 指令處于循環(huán)過程中時,在循環(huán)體中修改FINAL (終止循環(huán)次數(shù))數(shù)值。