Skip to main content

ST 声明:FOR

FOR 循环用于执行具有一定重复次数的语句。

句法:

FOR <counter> := <start value> TO <end value> {BY <increment> } DO
  <instructions>
END_FOR;

花括号 {} 内的部分是可选的。

CODESYS 执行 <instructions> 只要 <counter> 不大于 - 或在负数的情况下 increment 步小于 - 的 <end value>.这是在执行之前检查的 <instructions>.

每次 <instructions> 语句已执行,计数器 <counter> 按增量自动增加 <increment>.增量 <increment> 可以有任何整数值。如果不指定增量,则标准增量为 1.

71. 例子
FOR iCounter := 1 TO 5 BY 1 DO
  iVar1 := iVar1*2;
END_FOR;
Erg := iVar1;

如果您已预先配置 iVar11, iVar1 有价值 32 在 FOR 循环之后。



小心

结束值 <end value> 不得与计数器的数据类型上限相同。

如果计数器的结束值等于计数器的数据类型的上限,则导致无限循环。例如,一个无限循环会导致上面的例子,如果 iCounter 属于数据类型 SINT<end value> 等于 127, 因为数据类型 SINT 有上限 127.

作为 IEC 61131-3 标准的扩展,您可以使用 继续 内的声明 FOR 环形。