我想用vb实时读取wincc的数据,用的方法是formsize = wincc.getvalue("resize")
在vb中用的timer控件,但是运行起来感觉反应很慢,请问,除了timer控件外,用什么方法可以实时读取wincc的数据呢?谢谢
另外,我在vb中用了
formsize = wincc.getvalue("resize")
其中formsize是vb中的变量,resize是wincc中的变量。
在vb中用一个timer控件控制读取wincc数据,时间间隔为4秒钟。另外设置了个标志位,当标准位置1时,开始读取resize的值。当标志位置1时,resize的值开始变化,变化周期为5秒钟。5s后,标志位置0,vb停止读取resize的值。这样的话,vb应该每一个读取周期都能至少读取到一次resize的值才对。可是事实上,只能读取到大部分的resize的值,有很多resize值都遗漏掉,没有读取到。我把时间间隔改为3秒,还是会遗漏数据,并且还会读取到2到3个数据。为什么呢?我现在1个周期内只需要读取一个数值,应该怎么做到呢?请高手帮下忙,谢谢!
最佳答案
你的问题和Timer控件没什么关系
试试用这个方法来读取WinCC变量,注意对象的创建和释放放在程序的初始化和退出的事件里比较好
Dim WRT as object
Dim Tag as Object
Set WRT=CreateObject("CCHMIRuntime.HMIRuntime")
Set Tag=WRT.Tags("resize")
formsize = Tag.Read
Set Tag=Nothing
Set WRT=Nothing
提问者对于答案的评价:
谢谢,回去试验下!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271743.html