WHILE
循环与FOR
循环一样,用于多次执行指令,直到出现中止条件。WHILE
循环的中止条件是一个布尔表达式。
语法
WHILE <boolean expression> DO <instructions> END_WHILE;
CODESYS 只要<boolean expression>
返回TRUE
,就会重复执行<instructions>
。如果布尔表达式在第一次求值时已经是FALSE
,那么CODESYS 永远不会执行这些指令。如果布尔表达式从未采用FALSE
值,那么指令将无休止地重复,结果会导致运行时错误。
示例
WHILE iCounter <> 0 DO Var1 := Var1*2 iCounter := iCounter-1; END_WHILE;




注意

您必须通过编程手段确保不会产生无休止的循环。
从某种意义上说,WHILE
和REPEAT
循环比 FOR 循环功能更强大,因为在执行循环之前不需要知道循环的执行次数。因此,在某些情况下,只能使用这两种回路。但是,如果循环的执行次数是明确的,则最好使用FOR
循环,以避免无休止的循环。
作为 IEC 61131-3 标准的扩展,您可以在 WHILE 循环中使用 CONTINUE 指令。