WinCC中使用VBS批量对变量进行读写操作
在WinCC中,如果遇到需要大批量对变量进行读写的时候,一般有两种方式,这里只是讲使用VBS脚本的时候。一种是所有变量命名都有规律,比如:
变量命名如下所示:
Tag1_Bool,二进制变量
Tag2_Bool,二进制变量
Tag3_Bool,二进制变量
。。。
Tag99_Bool,二进制变量
Tag100_Bool,二进制变量
如果有个项目需要对以上100个bool变量进行读写操作,使用VBS脚本方法一如下:
dim i dim Tag_Read(100),Tag_Write(100) '批量读取 for i=1 to 100 Tag_Read(i)=hmiruntime.tags("Tag"+cstr(i)+"_Bool").read next '批量写入 for i=1 to 100 hmiruntime.tags("Tag"+cstr(i)+"_Bool").write Tag_Write(i) next
以上VBS脚本,看似没有任何问题,然而这虽然能够达到我们的目的,对变量进行批量读写,但是并不是最优方案。效率较低,作为一个强迫症工控人,能压榨点性能是一点吧,下面给出最优方案:
'批量读取 dim TAGR dim i dim Tag_Read(100),Tag_Write(100) set TAGR=hmiruntime.tags.createTagSet for i=1 to 100 TAGR.Add "Tag"+cstr(i)+"_Bool" next TAGR.Read for i=1 to 100 Tag_Read(i)=TAGR("Tag"+cstr(i)+"_Bool") .value next set TAGR=nothing '批量写入 dim TAGR dim i dim Tag_Read(100),Tag_Write(100) set TAGR=hmiruntime.tags.createTagSet for i=1 to 100 TAGR.Add "Tag"+cstr(i)+"_Bool" next for i=1 to 100 TAGR("Tag"+cstr(i)+"_Bool") .value=Tag_Read(i) next TAGR.write set TAGR=nothing
浙公网安备 33010602011771号