跳到主要内容

ST语句:FOR

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

功能描述

FOR语句将FOREND_FOR关键字之间的语句序列循环执行。循环次数由起始值、结束值和步进表达式决定。

FOR语句将控制变量从起始值向上或向下增加至结束值,其增量由步进表达式决定,如果省略BY结构,则增量默认为1.

示例:FOR i := 3 TO 1 BY -1 DO ...; //当变量i的值为0时终止。

终止条件在每次循环前进行检查,当控制变量超过结束值(当步进为正时控制变量大于结束值,步进为负时控制变量小于结束值),结束循环,否则执行一次循环体语句序列。

ST用法

FOR <控制变量> := <起始值> TO <结束值> {BY <增量> } DO // 花括号 {} 内的部分是可选的
<指令>
END_FOR;

执行 <指令> 只要 <控制变量> 不大于 - 或在负数的情况下 增量 步小于 - 的 <结束值>.这是在执行之前检查的 <指令>.

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

示例

FOR iCounter := 1 TO 5 BY 1 DO
iVar1 := iVar1*2; //预先配置iVar1为1
END_FOR;
Erg := iVar1;//iVar1在FOR循环后的值为32。
注意

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

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