当前位置: 主页 > PLC控制

Wincc水泵启动队列问题。

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

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

最佳答案

1、给水泵编号1~4,
2、全局脚本编程:
VBS,周期30min:
dimRUN(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
endif
if(run(1))then
runtime(1)=无穷大
else
runtime(1)=hmiruntime.tags("pump2.runtime").read
endif
if(run(2))then
runtime(2)=无穷大
else
runtime(2)=hmiruntime.tags("pump3.runtime").read
endif
if(run(3))then
runtime(3)=无穷大
else
runtime(3)=hmiruntime.tags("pump4.runtime").read
endif
”以上如果当前泵在运行,则runtime赋值无穷大,否则就是当前实际运行时间
fori=0to3
forj=ito3
ifruntime(i)>runtime(j)then
max=runtime(i)
runtime(i)=runitme(j)
runtime(j)=max’运行时间交换
max=pump(i)
pump(i)=pump(j)
pump(j)=max”泵需要交换
endif
next
next
交换完成后pump()数组保存的就是应该启动泵的顺序,所以只要启动pump(0)的数值对应的泵就行了。

提问者对于答案的评价:

  • 关注微信

猜你喜欢

微信公众号