FOR:在计数循环中执行

说明:使用"在计数循环中执行"指令,重复执行程序循环,直至运行变量不在指定的取值范围内。

也可以嵌套程序循环。在程序循环内,可以编写包含其它运行变量的其它程序循环。

通过指令"复查循环条件"(Continue),可以终止当前正在运行的程序循环。通过指令"立即退出循环"(Exit)终止整个循环的执行。

注意:

有关运行次数和运行变量的信息:

程序运行时无法更改运行次数。出于性能原因,应在块接口的"Temp"部分中声明运行变量。在循环中,该运行变量无法更改。

按如下方式声明此指令:

FOR <运行变量> := <起始值> TO <结束值> BY <增量> DO

<语句>;

END_FOR;

如果增量为1,可以简写为:

FOR <运行变量> := <起始值> TO <结束值> DO

<语句>;

END_FOR;

图10 FOR语句

下表列出了该指令的参数:

参数

数据类型

存储区

说明

<运行变量>

有符号整数、无符号整数*

I、Q、M、D、L

执行循环时会计算其值的操作数。执行变量的数据类型将确定其它参数的数据类型。

<起始值>

I、Q、M、D、L

表达式,在运行变量首次执行循环时,将为运行变量分配该表达式的值。

<结束值>

I、Q、M、D、L

表达式,在运行程序最后一次循环时会为运行变量分配该表达式的值。在每个循环后都会检查运行变量的值:

  • 未达到结束值:
    执行符合 DO 的语句

  • 达到结束值:
    最后执行一次 FOR 语句

  • 超出结束值:
    完成 FOR 循环

执行该指令期间,不允许更改结束值。

<增量>

I、Q、M、D、L

表达式,根据增量表达式的值,执行变量在每次循环后都会递增(正增量)或递减(负增量)自身变量值。

如果未指定增量,则在每次循环后执行变量的值加 1。

执行该指令期间,不允许更改增量。

<语句>

-


只要运行变量的值在取值范围内,每次循环都就会执行的语句。取值范围由起始值和结束值定义。

*TIA PORTAL V16开始支持无符号整数类型的变量

示例

图11 FOR示例

Tag_Value 操作数乘以b_array 数组变量的元素 (2, 4, 6, 8)。并将计算结果读入到a_array 数组变量的元素 (2, 4, 6, 8) 中。

下表展示了给定 Tag_Value 与 b_array[i] 的值得到 a_array[i] 的结果:

设定Tag_Value
5
设定b_array[2]b_array[4]b_array[6]b_array[8]
3579
结果a_array[2]a_array[4]a_array[6]a_array[8]
15253545