TIA Portal V12博图做脚本如何加定时器功能您好zhangli0 ,非常感谢您的帮助。脚本如下
test1 数据类型Bool HMI内部变量
test2数据类型Int HMI内部变量
HMI画面做按钮,按下时置位test1 并调用脚本。test2数据变化里调用脚本。
If SmartTags("test1")=True Then
test2=test2+1
If test2>=50 Then
ResetBit "test1"
test2=0
End If
End If
另作一个弹框提示,显示关联test1,test1为ON时显示,为OFF时关闭弹框显示。
test1 和test2设置为HMI内部变量时,按下按钮弹框可弹出,但50之后不会自动关闭弹框。不能实现功能。
test1 和test2设置为PLC变量时,按下按钮弹框可弹出,50之后会自动关闭弹框,功能正常实现。
为什么用HMI内部变量时不能正常关闭弹框呢??
---------我用的是wincc,smart没有用过,不过过程 是一样的。
那你的test1,经过50个周期后值是0还是1?弹出窗口的显示属性连接test1,为1显示,为0不显示,如果你的没有隐藏,说明你的test1没有被复位。 你用两个io域分别显示test和test2看看他们的当前值是多少?
-------您好zhangli0 ,用IO域检测了test和test2的当前值(test和test2为HMI内部变量)。按钮按下时调用脚本,但test2没有预期的自动加。按一次按钮加1,我按了50次按钮,test2累积到50清零并且test1被复位,弹框显示关闭。我感觉这与test2的变量类型有关系,现在做的时INT数据。用PLC的变量就可以,用HMI内部变量就不行。想不出变量类型错误在那,望您帮助。谢谢
--------test2=test2+1后,你要把test2的值写到hmi内部变量或者plc变量中才行。然后下一个周期再读取出来。 如wincc中vbs可以用: dim mytag'定义脚本内的变量 mytag=hmiruntime.tags("test2").read'读取hmi变量的值到脚本内变量中 mytag=mytag+1'变量值自加 hmiruntime.tags("test2").write mytag'写脚本内变量的值到hmi变量中。
--------zhangli0您好,当test1和test2设为HMI内部变量时,经测试还是不能自动执行累加。能不能用博图做测试呢?非常感谢您的帮助。脚本如下 Dim tag tag=HmiRuntime.SmartTags("test2") If SmartTags("test1")=True Then tag=tag+1 If tag>=50 Then ResetBit "test1" tag=0 test2=0 End If HmiRuntime.SmartTags("test2")=tag End If
---------每一次触发都 dim tag 肯定不能自动加啦。
|