ST中的指令.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ST中的指令

ST中的指令 赋值 ? 赋值把表达式的结果赋给一个变量。. 举例: VAR a: INT; b: arrey[0..5] OF INT; c: REAL; e: INT; END_VAR a := 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; 例如: VAR number : INT:= 10; amount : INT :=2; END_VAR CASE number OF 10: amount := amount +1; 11: amount := amount -1; ELSE amount := 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; 例如: VAR Field : arrey[1..5] OF INT :=[2,14,8,12,5]; Index : INT; MaxIndex : INT :=5; Maximum : INT :=0;? END_VAR FOR 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: VAR a: INT :=12; b: INT :=5; maximum: INT; END_VAR IF ab THEN ma

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档