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

 

posted on 2025-04-26 21:01  老迈克  阅读(607)  评论(0)    收藏  举报

导航