抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望
FOR循环案例分享
   计算1到100的数字和结果。这是个非常经典的案例,在很多编程语言中都会出现,在西门子SCL编程中FOR循环语句同样可以得到完美体现。练习FOR循环的绝佳案例,下面就一起来看一下具体如何编写程序吧。
   以S7-1200系列PLC为例,新建一个项目,在此处为了方便观察,设定一个启动按键,当按下启动后开始计算。然后设定一个整数型的数据寄存器,一个变量就可以实现。新建一个DB数据块,数据类型如下所示:
下面就可以编写一个FOR循环来执行1到100的连加命令,如下所示:
FOR "数据块_1".D_1 := 0 TO 100 DO
       "数据块_1".D_2 := "数据块_1".D_2 + "数据块_1".D_1;
END_FOR;
上面我们也提到了,为了方便观察,所以引入了启动按键,否则程序下载后,直接运行,再监视时只能看到结果。所以我们需要加入一个判断条件,当监视状态下再按下启动按键,加入逻辑控制如下:
如上所示,加入IF判断语句后,就可以实现我们想看到的运行了。下面是运行监视后的运算结果,如下图所示:
看运算结果程序有正常运行。视频过程感兴趣的小伙伴可自行模拟观看,此处就不再展示了。

下面再来看一个案例,在PLC编程中经常会用到的一个功能---批量传送数据。
控制要求:当程序启动,比如自动运行或初始化时,先将一批数据进行批量赋值。像这种重复性的动作也可以使用FOR循环来实现。
同样,以S7-1200系列PLC为例新建一个项目,然后建立数据,此处需要一个数组型Array[]数据,比如数据个数为10个。然后编写程序。
然后编写程序,程序如下:
此时就可以利用FOR循环进[数据块1中D_4的值]全部批量赋值给数组[static_1]中的10个数据中。
通过以上两个案例的练习,我们发现对于重复性的动作,FOR循环可以很好的完成,以上两个案例中BY<增量>D0都默认为1所以就没看到,也可以同样以,上两个案例把增量设为2,这样就可以计算1到100中偶数的和,或跳位赋值。
先来看一下1到100的偶数和:
程序稍加修改,模拟仿真效果如下图所示:
如果我们将变量数据初始值赋值为1,同样的上面程序就变为1-100的奇数和。这里就不再演示,感兴趣的小伙伴可自行模拟。
以上程序旨在练习循环语句用法,不用太在意是否最合适。当然也欢迎留言说出一些你认为好的练习例子,供大家一起探讨学习。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?获取邀请码

x
您需要登录后才可以回帖 登录 | 获取邀请码

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

Copyright 2010-2015. All rights reserved. 

微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码