恭喜,你发布的帖子
发布于 2017-04-04 00:38:54
14楼
我上面的程序没完善,今天有时间完善了。做成是顺序轮换启停。
I1:开关泵开关输入
I2~I5:泵故障输入
Q1~Q4:泵启停接触器控制
增加文本显示功能
控制逻辑:
1、I1输入闭合,I2~I5输入开路则根据设定的泵数量,泵没开够则每2秒增开一个泵。当泵开太多了则则每2秒减少一个泵。
2、开泵信号每设定轮换周期则触发一次增泵先开一个最早关掉的泵,然后再由减泵逻辑减少一个泵,避免只用一个泵时导致水路断流。
3、延时增加泵是为了压力波动引起的频繁投切泵和避免一开机全部投入泵引起电源冲击、延时切断泵是为了避免压力波动引起的频繁投切泵避免水锤冲击、关机时延时切出泵同样是避免电源冲击避免水锤冲击。
4、程序没有专门做故障轮换,是因为没必要做。因为当某一台泵故障时,会自动判断为泵投入数量不足然后2秒后自动增加一台,所以没必要把逻辑搞得太复杂。
5、顺序启停的原则是用一个中间变量来计数所有泵依次启动的顺序,把顺序只绑定到对应启动的泵上。顺序轮换可以有效的避免用运行时间判断中某个泵运行时间太小一直长时间开那个泵的逻辑bug。
6、关于优先开泵的判断原则是泵无故障、泵每开、泵的启停顺序是最小值,有故障或者开了就用32767代替顺序值设为刚停的泵不优先考虑开它。
7、关于优先关泵的判断原则是判断当前运行的泵中启停顺序最小的泵。那些没开的泵都用32767代替人为定义为这是刚开的泵先别关。
请填写推广理由:
分享
只看
楼主