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
指令。