- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ST中的指令
ST中的指令
赋值
?
赋值把表达式的结果赋给一个变量。.
举例:
VARa: INT;
b: arrey[0..5] OF INT;
c: REAL;
e: INT;
END_VARa := 5;?(* 赋a为5 *)
b[1]:= a*2; e := a; (*两个赋值 *)
e:= REAL_TO_INT( c );
(* 函数调用赋值*)
赋值指令将评估表达式右边的值并把结果赋给左边.
注解:
这个关键字仅ST语言中有用
这是由IEC61131-3定义
CASE
尽管IF指令可以是嵌套的,但是每次检查一个条件使用IF看起来会很复杂。CASE指令可以使用一个指令检查多个值。CASE指令的表达式是INT类型,只有与这个的INT值相应的指令才被执行。之后,执行END_CASE后面的第一条指令。
如果IF表达式不适合任一种case值,则执行ELSE后面的第一条指令。这条指令是可选的。
?CASE expression OF
case_value1: { instructions; }
case_value2: { instructions; }
...case_valueN: { instructions; }
[ ELSE instructions; ]
END_CASE;
例如:
VARnumber : INT:= 10;
amount : INT :=2;
END_VARCASE number OF
10: amount := amount +1;
11: amount := amount -1;
ELSEamount := number;
END_CASE;
在这个例子中,“number”的值将被确定,如果它是10,“amount”将增加,如果它等于11,“amount”将减少。其它情况“amount”将等于“number”。
EXIT
接到循环指令前,任何循环将跳出程序控制。EXIT指令跳到循环内部之后的第一条指令处。
例如:
VAR
start: INT :=0;?
summe: INT :=0;?
ende : INT := 10;?
END_VAR
FOR Start := 1 TO Ende BY 2 DO
Summe := Summe + 1;
IF Summe 4 THEN?
EXIT; END_IF;END_FOR; (* 在这里继续 *)
如果′Summe′ 大于 4, 跳出 FOR 循环.
注解:
这仅是 ST语言使用的关键字
这是IEC61131-3定义的
FOR
使用FOR循环,循环控制变量将被设置为一个特定的起始值,然后增加(或减少)该变量,当循环遇到给定的值时终止。
语法:
FOR assignment TO Endvalue BY Increment DO
Instructions; END_FOR;
例如:
VARField : arrey[1..5] OF INT :=[2,14,8,12,5];
Index : INT;
MaxIndex : INT :=5;
Maximum : INT :=0;?
END_VARFOR Index :=1 TO MaxIndex BY 1 DO
IF Field[Index] Maximum THEN
Maximum := Field[Index];?
END_IF;END_FOR;
?控制变量的索引“Index”初始化为1,每执行一个循环后,索引的增量为1。当最大索引值为5时,终止循环。
注解: BY部分是可选项,可以省略。1是默认的增量。
执行FOR循环:
初始化控制变量
如果有必要,则检查结束标准和停止循环的执行
执行语句块
增加控制变量
转到第二步
?注解:
这是仅ST语言用关键字
这是 IEC61131-3定义的
IF
?IF指令有以下句法:
?IF 表达式 THEN 块 ?{ ELSIF表达式THEN块}
[ ELSE块]
END_IF;
?如果IF后面的表达式值为“ture”,则执行THEN后面的指令。如果IF后面的表达式值为“false”,将执行ELSE后面的指令或者检查ELSEIF条件句。无论如何将在END_IF后面继续实行下一个命令。
?下面的IF指令将计算两个数的最大值:
IF ab THEN???maximum := a;ELSE maximum := b;
END_IF;
IF指令可以是嵌套的,即THEN部分或ELSE部分可以包括其他IF指令。
例如:
下面的程序将再次计算两个数的最大值,但是如果最大值是“a”且“a”大于10,则它将减1:
VARa: INT :=12;
b: INT :=5;
maximum: INT;
END_VARIF ab THEN
ma
文档评论(0)