有没有类似wscript.sleep的语句,今天写脚本的时候,发现wincc竟然不支持wscript功能,先谢过大家了,或者有其他的办法,类似计时器什么的,都可以分享一下,再三感谢。
最佳答案
wincc不要做sleep的功能,否则就会造成假死。你可以用一个内部变量保存触发变量的状态,然后脚本中用wincc内部变量做计数,计数达到一定值执行你的动作:
dim tag(3)
tag(0)=hmiruntime.tags("start").read''触发变量
tag(1)=hmiruntime.tags("start_sav").read''保存值
tag(2)=hmiruntime.tags("count").read''计数
if tag(0) and not tag(1) then''触发变量第一次为1,计数清零
hmiruntime.tags("count").write 0
endif
tag(1)=hmiruntime.tags("start_sav").write tag(0)''保存触发变量的状态
tag(2)=tag(2)+1
if tag(2)>10 then''脚本运行10个周期后
需要延时执行的脚本内容
tag(2)=10‘防止计数溢出
end if
hmiruntime.tags("count").write tag(2)''保存计数值。
以上脚本放到全局脚本中执行,触发周期为1s,则相当于延时10s。
提问者对于答案的评价:
感谢您的热心回答,受益良多,我最后的做法是用外部脚本触发wincc内部变量,也达到了这个效果,您的方法貌似更合理一些,再三感谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc192686.html