工控编程吧

标题: TIA Portal V12博图做脚本如何加定时器功能 [打印本页]

作者: baikhgmv    时间: 2016-9-5 12:40
标题: TIA Portal V12博图做脚本如何加定时器功能
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 肯定不能自动加啦。







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4