网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

西门子SCL语言for循环事例简析

时间:2023-08-30 09:13

人气:

作者:admin

标签:

导读:FOR语句在控制变量处于指定的值范围内时用来重复语句序列。控制变量必须是INT或DINT类型的本地变量的标识符。...

FOR语句在控制变量处于指定的值范围内时用来重复语句序列。控制变量必须是INT或DINT类型的本地变量的标识符。FOR循环的定义包括一个初始值和一个终止值的说明。两个值必须与控制变量是同类型。

aabedec0-467f-11ee-a2ef-92fbcf53809c.png

FOR语句如下执行:

在循环的开始。控制变量设置为初始值(初始化赋值),每次循环重复,其增加(正增量)或减少(负增量)一个增量,直到达到终止值。

接着循环的每次运行,检查条件(终止值达到)证实是否满足。如果条件满足,语句序列被执行,否则跳过循环及其语句序列。

规则(Rules)

FOR语句的规则:

控制变量只能是INT或DINT数据类型。

能够省去语句BY [增量]。如果不指定增量,则自动指定为+1。

初始赋值(Initial Assignment)

控制变量的初始值有下列语法。在赋值左边的简单变量必须是数据类型INT或DINT。

有效的初始赋值的例子:

FOR I := 1 TO 20
FOR I := 1 TO (START + J)

终止值和增量(Final Value and Increment)

能够为终止值和所要求的增量写一个基本表达式。此基本表达式有下列语法:

ab03f708-467f-11ee-a2ef-92fbcf53809c.png

能够省去语句BY [increment]。如果没指定增量,则自动指定为+1。

初始值、终止值和增量是表达式(见"表达式、运算符和地址")。当FOR语句执行时,起先对他们进行求值。

循环执行后,不允许对终止值和增量值进行更改。

例子(Example)

FUNCTION_BLOCK FOR_EXA
VAR
INDEX : INT ;
IDWORD : ARRAY [1..50] OF STRING;
END_VAR
BEGIN
FOR INDEX := 1 TO 50 BY 2 DO
IF IDWORD [INDEX] = 'KEY' THEN
EXIT;
END_IF;
END_FOR;

实例: VASS标准中用确认类型合格的语句:

ab2d1f66-467f-11ee-a2ef-92fbcf53809c.png

iTypAnz := WORD_TO_INT(pDB_STyp.Anz) / 12; 108/12=9

ab583a34-467f-11ee-a2ef-92fbcf53809c.png

iRBSAnz := WORD_TO_INT(pDB_RBS.Anz) / 1666;6664/1666=4

IF (HAND OR Auto) AND NOT xUebern AND NOT FM_Reset AND xRBS_PZ_IO THEN

---如果在手动或者自动模式时没有完成信号复位,有传递车型号正确时--

FOR iLauf := 1 TO iTypAnz BY 1 DO ---开始循环查9次找已有类型-

FOR i := 1 TO iRBSAnz BY 1 DO循环检查给入数4位

IF tempDB_STyp.Typ[iLauf].arrText[i] = arrRBS[i]

OR tempDB_STyp.Typ[iLauf].arrText[i] = 'X' AND NOT cfg.X2

OR tempDB_STyp.Typ[iLauf].arrText[i] = '~' AND cfg.X2

THEN

如果在比较时有相等的,或者在比较位中有'X'或'~'时可以不比较,但是必须在cfg.X2上进行设置.那么车型号码位合格被激活.

ab8048da-467f-11ee-a2ef-92fbcf53809c.png

arrSTyp_IO[i] := True;有一位车型号码合格

ELSE 如果没有相同的,或是满足条件的就退出循环

EXIT; 退出循环

END_IF; 结束IF

END_FOR;

IF arrSTyp_IO[iRBSAnz] THEN如果有一位车型号码合格,就转存

_wData := tempDB_STyp.Typ[iLauf].Data;

EXIT;退出循环

END_IF;

END_FOR;结束循环

xSTyp_IO := arrSTyp_IO[iRBSAnz]; 发出车型号码合格

xSTyp_NIO := NOT xSTyp_IO;发出车型号码不合格

END_IF;






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信