REPEAT
循环的使用方法与WHILE
循环相同,不同之处在于CODESYS 只在循环执行后检查终止条件。这种行为的结果是,无论中止条件如何,REPEAT
循环都会至少执行一次。
语法
REPEAT <instructions> UNTIL <boolean expression> END_REPEAT;
CODESYS 执行<instructions>
,直到<boolean expression>
返回TRUE
。
如果布尔表达式在第一次求值时已经返回TRUE
,CODESYS 就会精确执行一次指令。如果布尔表达式从未采用TRUE
值,那么指令将无休止地重复,结果会导致运行时错误。
示例
REPEAT Var1 := Var1*2; iCounter := iCounter-1; UNTIL iCounter = 0 END_REPEAT;
从某种意义上说,WHILE
和REPEAT
循环比FOR
循环更强大,因为在执行循环之前不需要知道循环的执行次数。在某些情况下,您只能使用这两种回路。但是,如果循环的执行次数是明确的,则最好使用FOR
循环,以避免无休止的循环。
作为 IEC 61131-3 标准的扩展,您可以在WHILE
循环中使用 CONTINUE 指令。