西门子SCL—for...to...do的应用例子.docxVIP

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

微信公众号:自动化系统QQ群哔哩哔哩:自动化电气系统

西门子SCL

case...of

关于case...of的解释

执行CASE指令时,会将变量的值与多个常数(局部常量或全局常量)的值进行比较。如果变量的值等于某个常数(局部常量或全局常量)的值,则满足条件且将执行紧跟在该常数(局部常量或全局常量)后编写的指令。如果比较都不成立,则执行else后面的语句。

举例:

CASE#numberOF

??1:

????#out:=10;

??10,13,15:

????#out:=20;

???20...25:

????#out:=30;

??30,33,35...38:

????#out:=40;

??#data:

????#out:=50;

??ELSE

????#out:=999;

END_CASE;

声明一个input变量number,数据类型为int。声明一个output变量out,数据类型为int声明一个constant变量data,数据类型为int,默认值50根据case...of的解释,得出以下表格。

当number输入一个1,因为程序中有1这个常数,则比较成功,执行1后面的语句,out=10。接下来就执行END_CASE后面的语句。

当number输入一个10、13或者15这三个中的任意一个数值,因为程序中有这三个常数,则比较成功,执行10、13、15后面的语句,out=20。接下来就执行END_CASE后面的语句。当number输入一个20到25之间的任意一个数值,因为程序中有20到25这个范围,则比较成功,执行这个20...25后面的语句,out=30。接下来就执行END_CASE后面的语句。当number输入一个30、33、35到38之间的任意一个数值,因为程序中有30、33、38到38这个范围,则比较成功,执行这个30、33、35到38后面的语句,out=40。接下来就执行END_CASE后面的语句。当number输入一个50,因为程序中有常量,刚好这个常量的默认值是50,则比较成功,执行该常量后面的语句,out=50。接下来执行END_CASE后面的语句。当number输入的值不等于上面任何一个常数或者常量,则比较不成功,执行else后面的语句,out=999。到此case...of结束,其实不是很难,多练习即可,也可以搭配很多的指令一起使用。有3个注意事项CASE?#number?OF里面的这个number和常量的数据类型需要注意,只能为整数(int、Dint、Lint)或者位序列(byte、word,Dword,Lword)的类型。如果使用别的,则会报错。如果有常量的话,那么CASE?#number?OF里面的number的数据类型必须和常量的数据类型要相同,不能number的数据类型是int,常量的数据类型是word这种情况。如果有常量的话,那么CASE?#number?OF里面的number的数据类型的取值范围必须大于等于常量的数据类型的取值范围,比如number是int,常量就只能是int、Sint、Uint、USint。不能是Dint、Lint

for...to...do语句的解释

for循环是可以指定循环次数的一个循环,在使用时,首先需要定义一个整型的循环计数变量(博途更新V16之后,支持了无符号的整型数据类型),然后指定它的循环范围,for循环会根据你的语句自动递增或者递减这个循环计数变量,直到循环次数超出你的循环范围然后结束循环。循环计数变量可以是全局的,也可以是临时或者静态的

举例:递增循环+1(一步一步走)

定义一个temp=i=int

定义一个output=DATA=ARRAY[0..4]OFINT

FOR?#i:=0TO4?DO

??????#DATA[i]:=?i+?1;

END_FOR;

这是一个最基本的for循环程序,就是给DATA数组里面赋值的。for循环在执行前首先将i初始化为起始值0,然后以1个单位递增,直到i=4。该循环体内语句一共被执行了5次。

根据解释,上面这段程序最终的结果就是

DATA[0]:

文档评论(0)

186****2377 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档