廣東省茂名市西門子代理商-伺服電機驅動變頻器代理
| 更新時間 2024-12-02 08:00:00 價格 請來電詢價 西門子變頻器 西門子觸摸屏 西門子伺服電機 西門子PLC 西門子直流調速器 西門子電纜 聯系電話 13922889745 聯系手機 18475208684 聯系人 向小姐 立即詢價 |
VBS 腳本可以用在 WinCC Comfort/Advanced Runtime。下面就是一些很實用技巧,希望對大家有所幫助!
1、為什么一個由內部變量的 “數值改變” 事件觸發的腳本不被執行?如果使用一個內部變量調用另外一個內部變量,以此,例如被調用的變量又去執行一個腳本(比如,根據變量變化),此時一個安全機制會阻止這個功能被執行。
此安全功能是為了阻止連續的執行。
例如
在內部變量 “HMI_Tag_01” 屬性下,“更改數值”事件去置位內部變量 “HMI_Tag_02” 中的某一位。
同時內部變量 “HMI_Tag_02” 的“更改數值”事件下又調用一個腳本。
結果:這個腳本不會被執行。
解決辦法
使用和控制器通訊的外部變量。請注意,通過使用外部變量可以規避上述安全機制。在項目運行時可能會產生問題。
對數組元素的訪問是通過數組的名稱和數組中由括號分隔的數組索引來實現的:“SmartTags("Array Name")(array index) ”
例如
訪問數組 "DB10_HMI_Data" 的第二個元素 :
Dim Tag_01 'Internal script tag
Tag_01 = SmartTags("DB10_HMI_Data")(2)
注意
使用下面語法訪問字符串類型數組中的元素:
Dim Tag_01 'Internal script tag
Tag_01 = SmartTags("DB10_HMI_Data[2]")
例如
通過一個循環描述數組 "DM10_HMI_Data" 的第一個元素至第十一個元素
Dim Tag_01
For Tag_01=0 to 10
SmartTags("DB10_HMI_Data")(Tag_01) = 5
Next
局部腳本的數組(該數組僅在此腳本中可用)可以使用同樣的方式查詢,對于多維數組,各個維度通過一個逗號分隔開。
例如
訪問二維數組變量 "HMI_Data" 沒有連接控制器。
Dim HMI_Data(10,10)
Dim Tag_01
Tag_01 = HMI_Data(0, 5)
注意
當使用控制器連接的數組元素時,推薦在腳本開始前將他們賦值給腳本內部變量,然后再使用內部變量進行其他工作。結束腳本前,將內部變量賦值給數組元素。
從控制器到一個腳本賦值,過程變量數組需要在一個循環中將數組元素一個一個賦值,參考示例。然而,也可以通過一個簡單的指令把局部腳本的數組的值賦給過程變量數組。
例如
把控制器的數組 "CPU_Array" 的值賦給內部數組 "local_array" 和 把內部數組 "local_array" 的值賦給控制器的數組 "CPU_Array"
Dim local_array(10)
Dim i
...
' Copy from the CPU to the script:
For i = 0 To 9
local_array(i) = SmartTags("CPU_Array")(i)
Next
...
' Copy back to the CPU:
SmartTags("CPU_Array") = local_array
注意
使用數組可能導致較高的通信負載和數據不一致。
WinCC Comfort 和 Advanced 不能訪問 DLLs。
WinCC Professional在用戶定義的C函數里可以調用DLL函數 (DLL = Dynamic Link Library) 。
為了讀取當前鼠標的位置,需要訪問操作系統的 API (Application Programming Interface) 。
VBS 不支持通過 DLLs 訪問操作系統的 API 。
“MsgBox” 命令不能用于 WinCC Comfort 和 WinCC Advanced 版本是由于安全的原因。 “MsgBox”的彈出顯示可能會覆蓋掉元素操作,比如:阻止設備的快速操作。此外,消息框可能會阻止腳本的進一步執行。
解決辦法
可以使用系統函數 ShowSystemAlarm。
在腳本編輯器中把字符組合 "&h" 作為個十六進制常數的標識。
例如
Dim Tag_01
Tag_01 = &h45E ' Corresponds to the decimal value "1118"
8、如何在腳本里顯示或隱藏各個層級?
使用層是 WinCC (TIA Portal) 開發系統的一個功能。層只能在這里組態及顯示隱藏。
這個功能在操作面板或 PC 的運行系統中不可用。所以不能用腳本顯示或隱藏“層”。
解決辦法
在 “ 屬性>動畫>可見性 ” 組態變量,根據變量值控制相關對象的顯示或隱藏。
可以使用 “ & ” 來合并字符串:
例如
將 "Tag_Text_01", "Tag_Text_02" 和 "Tag_Text_03" 合并成新字符串 "Tag_01"
Dim Tag_01, Tag_Text_01, Tag_Text_02, Tag_Text_03
Tag_01 = Tag_Text_01 & Tag_Text_02 & Tag_Text_03
注意
VB函數 CStr (Expression) 將相應的表達式轉換為“字符串”類型。 這樣在連接字符串轉換之前可以避免運行時出現錯誤。
10、在腳本中如何在單獨的字符串之間插入一個通配符(空格)?
為了在兩個文本之間插入任意數量的空格,可以使用兩個引號 " "。“空格”的數量取決于兩個引號間的距離 " "。
連接下一個字符需要再次使用連接操作 "&"。
例如
將字符串 "Tag_Text_01", "Tag_Text_02" 和 "Tag_Text_03" 還有空格組合成一個新的字符串 "Tag_01"
Dim Tag_01, Tag_Text_01, Tag_Text_02, Tag_Text_03
Tag_01 = Tag_Text_01 & " " & Tag_Text_02 & " " & Tag_Text_03
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684