请教关于启动停止的问题

想了好几天,愣是没想到怎么用程序写出来,发出来请教大家
能描述出来,就是写不出来(笑哭)
1.现场有八个电机,都计时运行时间,
想实现
启动第一台的信号,在八个电机里找运行时间最短的启动
启动第二台的信号,在剩下七个电机里找运行时间最短的启动
。。。
给停止一台的信号时,在已经运行的电机里找运行时间最长的停掉
。。。

钻石用户推荐最佳答案

1、数据定义
      定义泵号数据区,             VW0-VW14  共8个字,每个字中装的是泵号,依次为 1-8
      定义泵运行时间数据区,VW20-VW34  共8个字,对应的是1-8号泵的运行时间,与泵号依依对应;
      定义8个定时器,对应8个泵的计时
      定义查找泵号的数据区     VW40-VW54  共8个字,每个字中装的是泵号,它没有顺序,只是在排完序后,VW40中 记录的是运行时间最短的泵的编号,VW54中记录的是运行时间最长的泵号
      定义查找时长的数据区     VW60-VW74  共8个字,每个字中装的是运行时间,它没有顺序,只是在排序完序后,VW60中 记录的是运行时间最短的泵的运行时间,VW74中记录的是运行时间最长的泵运行时间
2、主要算法
      2.1
      当有一个启动信号来时,则将 VW0-VW14 共8个字复制到 VW40-VW54,同时将VW20-VW34复制到VW60-VW74;
      此时,将VW60-VW74从小到大排序,如顺序不符则交换,同时对VW40-VW54中的泵号进行交换。这样得到的VW40中的泵号就是要启动的泵
      2.2
      当有一个停止信号来时,则将 VW0-VW14 共8个字复制到 VW40-VW54,同时将VW20-VW34复制到VW60-VW74;
      此时,将VW60-VW74从小到大排序,如顺序不符则交换,同时对VW40-VW54中的泵号进行交换。这样得到的VW54中的泵号就是要停止的泵
      2.3
      当某泵处于运行状态时,其对应的定时器会计时,计时器每计时半小时,根据计时器号与泵号的对应关系,则将对应泵的运行时间值自加1,实面对泵运行时间的计时。
3、本算法得用间接寻址的方式进行,会减少代码,且处理起来方便一些,建议在理解间接寻址的基础上做,效果会好。
S7-200 SMART 间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/indirect_addressing.html

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc344626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:25
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论