关于wincc全局脚本中vbs实现延时

有没有类似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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月15日 上午12:28
下一篇 2017年8月15日

相关推荐