浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
SIEMENSPLC模块6ES7511-1FL03-0AB0

SIEMENSPLC模块6ES7511-1FL03-0AB0西门子CPU模块代理商

CPU通信模块代理商       连接模块代理商        ET200MP有源背板模块代理商

ET 200MP接口模块代理商       接口模块代理商              电源管理模块代理商    模拟量输出模块代理商

程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间,从小到大,每个2s依次启动电机的运行。

我想对于这个程序的控制要求来讲,他的难点在于如何对这些电机运行时间进行排列,排列好了后,如何根据排列的顺序去起动电机的运行,从这个控制要求中我们可以看出,这主要是分为两个部分来完成这个程序的设计的:

部分、用于对电机的运行时间进行从小到大顺序的排列

第二部分、根据排列好的数据,如何判断需要起动那一台电机

这里我们以西门子S7-200SMART系列PLC为例,先说说,如何编写一个数据排列的带参数的子程序。

数据排列带参数子程序设计思路:

西门子S7-200系列的PLC中不像三菱的FX系列PLC具有数据排列的指令,因此我们要实现这个数据的排列功能,必须自己去搭建一个这样的功能块,在搭建这个功能块的时候,会使用到间接寻址和循环指令,同时还需要应用到带参数的子程序。那么如何编写一个数据排列的子程序呢?


假设有5个数据需要把他们的数据的大小按照顺序从小到大排列,那么我们可以先在这五个数中找到大的数放在后面。然后在剩下的四个数中找到大的数放到倒数第二个的位置,接着在剩下的三个数中找到大的值放到倒数第三的位置,依次下去,这样当全部比较完后,我们的数据就按照从小到大的顺序排列好了。那么很明显,我们需要用两个循环指令进行嵌套。外层的循环指令需要循环4次,而内层的循环指令的循环次数是会变化的,因为次从5个数据中找出大值,循环4次,第二次的时候从4个数据中找出大值,循环3次,依次下去,每次需要改变循环的次数。

如何找出大值呢?我们可以进行比较,首先用第二个数跟个数比较,如果第二个数比个数大,那么指针往下移动变成第二个数跟第三个数比较,如果第二个数比第三个数大,那么对第二个数和第三个数进行交换,依次下去,当比较完成后,大的数就放到后的地址里面去了。

程序设计:

(1)建立变量表

(2)根据变量表,编写数据排列子程序

电机启动部分程序,后续更新...

分布型CPU通信模块代理商

ETET 200pro CPU连接模块代理商

CPU存储卡代理商

CPU通信模块代理商

连接模块代理商

ET200MP有源背板模块代理商

ET 200MP接口模块代理商

接口模块代理商    

SIEMENSPLC模块6ES7511-1FL03-0AB0西门子CPU模块代理商

SIEMENSPLC模块6ES7511-1FL03-0AB0西门子CPU模块代理商西门子电机代理商西门子交换机代理商西门子变频器代理商西门子PLC模块代理商西门子电缆代理商西门子电机代理商西门子触摸屏代理商西门子授权模块代理商

展开全文
优质商家推荐 拨打电话