WinCC中使用VBS批量對變量進行讀寫操作
在WinCC中,如果遇到需要大批量對變量進行讀寫的時候,一般有兩種方式,這里只是講使用VBS腳本的時候。一種是所有變量命名都有規(guī)律,比如:
變量命名如下所示:
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腳本,看似沒有任何問題,然而這雖然能夠達到我們的目的,對變量進行批量讀寫,但是并不是最優(yōu)方案。效率較低,作為一個強迫癥工控人,能壓榨點性能是一點吧,下面給出最優(yōu)方案:
'批量讀取 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
浙公網(wǎng)安備 33010602011771號