FOR 循环用于执行一定重复次数的指令。
语法
FOR <counter> := <start value> TO <end value> {BY <increment> } DO
<instructions>
END_FOR;
大括号 {} 内的部分是可选的。
CODESYS 只要 <counter> 不大于 <end value>,或者在负增量的情况下不小于它,就会执行 <instructions>。在执行<instructions> 之前会进行检查。
每执行一次指令<instructions> ,计数器<counter> 就会自动增加一个增量<increment> 。增量<increment> 可以有任意积分值。如果没有指定增量,标准增量为1 。
示例
FOR iCounter := 1 TO 5 BY 1 DO iVar1 := iVar1*2; END_FOR; Erg := iVar1;
如果iVar1 已预先配置为1 ,则iVar1 在 FOR 循环后的值为32 。




小心

端值 <端值> 可能与计数器数据类型的上限不一致。
如果计数器的终值等于计数器数据类型的上限,就会产生无穷循环。例如,在上例中,如果iCounter 的数据类型为SINT ,而<end value> 等于127 ,则会出现无尽循环,因为数据类型SINT 的上限为127 。
作为 IEC 61131-3 标准的扩展,您可以在FOR 循环中使用 CONTINUE 指令。