[西门子] 西门子SCL高级语言

[复制链接]
查看113 | 回复0 | 2024-5-28 10:35:02 | 显示全部楼层 |阅读模式
FOR:在计数循环中执行
说明:使用"在计数循环中执行"指令,重复执行程序循环,直至运行变量不在指定的取值范围内。

也可以嵌套程序循环。在程序循环内,可以编写包含其它运行变量的其它程序循环。
通过指令"复查循环条件"(Continue),可以终止当前正在运行的程序循环。通过指令"立即退出循环"(Exit)终止整个循环的执行。


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


按如下方式声明此指令:

FOR <运行变量> := <起始值> TO <结束值> BY <增量> DO
<语句>;
END_FOR;
如果增量为1,可以简写为:
FOR <运行变量> := <起始值> TO <结束值> DO
<语句>;
END_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开始支持无符号整数类型的变量


示例



FOR示例
Tag_Value 操作数乘以b_array 数组变量的元素 (2, 4, 6, 8)。并将计算结果读入到a_array 数组变量的元素 (2, 4, 6, 8) 中。
下表展示了给定 Tag_Value 与 b_array 的值得到 a_array 的结果:
设定
Tag_Value

5
设定
b_array[2]
b_array[4]
b_array[6]
b_array[8]

3
5
7
9
结果
a_array[2]
a_array[4]
a_array[6]
a_array[8]

15
25
35
45
学会了吗?转发收藏慢慢看!





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则