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