PLC程序设计思路分享(1)
卢思敏
发布于2017-04-26 11:05
22
0
标签:PLC程序设计
马上注册,免费学习超过100课时视频教程,免费下载海量学习资料
前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间,从小到大,每个2s依次启动电机的运行。
我想对于这个程序的控制要求来讲,他的难点在于如何对这些电机运行时间进行排列,排列好了后,如何根据排列的顺序去起动电机的运行,从这个控制要求中我们可以看出,这主要是分为两个部分来完成这个程序的设计的:
部分、用于对电机的运行时间进行从小到大顺序的排列
第二部分、根据排列好的数据,如何判断需要起动那一台电机
这里我们以西门子S7-200SMART系列PLC为例,先说说,如何编写一个数据排列的带参数的子程序。
数据排列带参数子程序设计思路:
西门子S7-200系列的PLC中不像三菱的FX系列PLC具有数据排列的指令,因此我们要实现这个数据的排列功能,必须自己去搭建一个这样的功能块,在搭建这个功能块的时候,会使用到间接寻址和循环指令,同时还需要应用到带参数的子程序。那么如何编写一个数据排列的子程序呢?
假设有5个数据需要把他们的数据的大小按照顺序从小到大排列,那么我们可以先在这五个数中找到大的数放在后面。然后在剩下的四个数中找到大的数放到倒数第二个的位置,接着在剩下的三个数中找到大的值放到倒数第三的位置,依次下去,这样当全部比较完后,我们的数据就按照从小到大的顺序排列好了。那么很明显,我们需要用两个循环指令进行嵌套。外层的循环指令需要循环4次,而内层的循环指令的循环次数是会变化的,因为次从5个数据中找出大值,循环4次,第二次的时候从4个数据中找出大值,循环3次,依次下去,每次需要改变循环的次数。
如何找出大值呢?我们可以进行比较,首先用第二个数跟个数比较,如果第二个数比个数大,那么指针往下移动变成第二个数跟第三个数比较,如果第二个数比第三个数大,那么对第二个数和第三个数进行交换,依次下去,当比较完成后,大的数就放到后的地址里面去了。
程序设计:
(1)建立变量表
(2)根据变量表,编写数据排列子程序
电机启动部分程序,后续更新...
作者:技成培训网(曾鑫)
本文版权为技成所有,未经同意,盗取必究!
推荐学习相关课程:
西门子S7-200PLC 从入门到精通
西门子S7-200SMART PLC 编程应用入门
西门子S7-300使用指南
西门子S7-300PLC 初级