Wincc水泵启动队列问题。

有个项目有4台水泵,想每30分钟把他们排一次对列,要求是启动的水泵不参与排队,排队的依据是水泵的累计运行时间(PLC里有计时),运行时间少的排前面。排玩对还要设置水泵投入运行。我懵逼了,完全不知道怎么下手,求大侠们帮帮忙。

问题补充:
我是用Wincc脚本来做的,可以提供脚本参考一下就更好了。

最佳答案

1、给水泵编号1~4,
2、全局脚本编程:
vbs,周期30min:
dim run(4),pump(4),runtime(4),max
run(0)=hmiruntime.tags("pump1.run").read
run(1)=hmiruntime.tags("pump2.run").read
run(2)=hmiruntime.tags("pump3.run").read
run(3)=hmiruntime.tags("pump4.run").read

pump(0)=1
pump(1)=2
pump(2)=3
pump(3)=4

if (run(0)) then
   runtime(0)=无穷大
else
  runtime(0)=hmiruntime.tags("pump1.runtime").read
end if
 if (run(1)) then
   runtime(1)=无穷大
else
  runtime(1)=hmiruntime.tags("pump2.runtime").read
end if
if (run(2)) then
   runtime(2)=无穷大
else
  runtime(2)=hmiruntime.tags("pump3.runtime").read
end if
if (run(3)) then
   runtime(3)=无穷大
else
  runtime(3)=hmiruntime.tags("pump4.runtime").read
end if
''以上如果当前泵在运行,则runtime赋值无穷大,否则就是当前实际运行时间
for i=0 to 3
     for j=i to 3
         if runtime(i)>runtime(j) then
            max=runtime(i)
            runtime(i)=runitme(j)
            runtime(j)=max’运行时间交换
            max=pump(i)
            pump(i)=pump(j)
            pump(j)=max''泵需要交换
         end if
     next
next
交换完成后pump()数组保存的就是应该启动泵的顺序,所以只要启动pump(0)的数值对应的泵就行了。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月10日 下午9:05
下一篇 2017年6月10日

相关推荐