要在wincc画面中实现外部变量数值的实时更新,由于外部变量较多,我打算用listbox控件把变量以及它的值显示出来,
我先把从数据库读出来的变量名存在一个静态文本中,在listbox中用split函数把他们分开,存放在一个数组中,然后根据变量名,使用hmiruntime.tags()得到变量的值。然后用listbox.additem添加这些值
但是现在我用split函数,然后放在一个数组中,再调用时,老出问题,代码无法执行下去,请各位给我看看代码有什么问题,
还有就是vbs中声明数组是用dim ary(10)还是用dim ary,怎么调用?
写在listbox的value属性下:
function value_trigger(byval item)
dim tagname(1),ary '这两个都是数组,该用那种声明方式?
dim tagN1
dim i
dim lstT,objtxt '分别是listbox和静态文本控件
set objtxt=screenitems("txt")
set lstT=screenitems("lstbox1")
ary=split(objtxt.text," ",-1,1)
tagname(i)=ary(i) '好像就是这句不对,如过换成:
' tagname(0)=ary(0)
' tagname(1)=ary(1)
' ....
'就可以了。
for i=0 to ubound(tagname)
tagn1=tagname(i)
tagn1=tagn1 & hmiruntime.tags(tagn1).read
lstT.additem tagn1
next
end function
这段里我使用默认的触发器,2秒一次,如果不直接给tagname数组赋值,wincc就会死掉,
各位看是什么问题。