使用“在计数循环中执行”指令,重复执行程序循环,直至运行变量不在指定的取值范围内。
也可以嵌套程序循环。在程序循环内,可以编写包含其它运行变量的其它程序循环。
通过指令“复查循环条件”(CONTINUE),可以终止当前连续运行的程序循环。通过指令“立即退出循环”(EXIT) 终止整个循环的执行。有关本主题的更多信息,请参见“另请参见”。
说明 有关运行次数和运行变量的信息 程序运行时无法更改运行次数。 出于性能原因,应在块接口的“Temp”部分中声明运行变量。此外,程序运行时不得更改运行变量。否则,该指令可能根据实施情况返回未定义结果。 |
FOR 语句的限制
编写不会导致死循环的“安全”FOR 语句时,请遵循以下规则和限制:
FOR <Run_tag> := <Start_value> TO <End_value> BY <Increment> DO <Instructions>;
END_FOR;
起始值 < 结束值 | 结束值 <(PMAX 增量) | 运行变量在正方向上运行 |
起始值 > 结束值 AND 增量 < O | 结束值 >(NMAX 增量) | 运行变量在负方向上运行 |
限制
各种数据类型的限制不同:
SINT 类型的运行变量 | 127 | -128 |
INT 类型的运行变量 | 32767 | -32768 |
DINT 类型的运行变量 | 2147483647 | -2147483648 |
LINT 类型的运行变量 | 9223372036854775807 | -9223372036854775808 |
参数
下表列出了该指令的参数:
<执行变量> | SINT、INT、DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 执行循环时会计算其值的操作数。执行变量的数据类型将确定其它参数的数据类型。 |
<起始值> | SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 表达式,在执行变量首次执行循环时,将分配表达式的值。 |
<结束值> | SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 表达式,在运行程序最后一次循环时会定义表达式的值。在每个循环后都会检查运行变量的值: 未达到结束值: 达到结束值: 超出结束值: 执行该指令期间,不允许更改结束值。 |
<Increment> | SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 执行变量在每次循环后都会递增(正增量)或递减(负增量)其值的表达式。可以选择指定增量的大小。如果未指定增量,则在每次循环后执行变量的值加 1。 执行该指令期间,不允许更改增量。 |
<指令> | - | - | 只有运行变量的值在取值范围内,每次循环都就会执行的指令。取值范围由起始值和结束值定义。 |
有关有效数据类型的更多信息,请参见“另请参见”。
示例
以下示例说明了该指令的工作原理:
FOR i := 2 TO 8 BY 2 DO "a_array[i] := "Tag_Value"*"b_array[i]"; END_FOR; |
“Tag_Value”操作数乘以“b_array”ARRAY 变量的元素 (2, 4, 6, 8)。并将计算结果读入到“a_array”ARRAY 变量的元素 (2, 4, 6, 8) 中。
- Profinet的S7常见问题 2024-11-25
- 西门子博途SCL:GOTO:跳转 2024-11-25
- 西门子博途:STL 步进顺序程序的示例 2024-11-25
- 博途:"为 PROFINET 设备分配地址和名称" 2024-11-25
- CPU-1200在线为 PROFINET IO 设备分配名称-w 2024-11-25
- 通过 PROFINET 进行在线访问 2024-11-25
- 博途:设置 PG/ PC 接口 2024-11-25
- TIA Portal中S7-1500F和S7-1200F实现安全相关控制器与智能设备通讯的配置例程 2024-11-25
- PLC现场安装全流程!新手必看 2024-11-25
- 假如PLC出现问题,怎么查找原因?90%电气老师傅都不会! 2024-11-25