(7)如何在腳本里顯示或隱藏各個層級?使用層是 WinCC (TIA Portal) 開發系統的一個功能。層只能在這里組態及顯示隱藏。這個功能在操作面板或 PC 的運行系統中不可用。所以不能用腳本顯示或隱藏“層”。解決辦法在 “ 屬性>動畫>可見性 ” 組態變量,根據變量值控制相關對象的顯示或隱藏。 (8)如何在腳本中合并字符串?可以使用 “ & ” 來合并字符串:例如 將 "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) 將相應的表達式轉換為“字符串”類型。 這樣在連接字符串轉換之前可以避免運行時出現錯誤。 (9)在腳本中如何在單獨的字符串之間插入一個通配符(空格)?為了在兩個文本之間插入任意數量的空格,可以使用兩個引號 " "?!翱崭瘛钡臄盗咳Q于兩個引號間的距離" "。連接下一個字符需要再次使用連接操作 "&"。例如 將字符串 "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(10)如何組態帶返回值和參數的腳本?腳本類型必須是 “ Function ” 才可以有返回值。所以,請在TIA Portal 中添加新 VB 函數的 "Properties > General > Settings" 類型的下拉列表框中選擇 “Function” 。在 “ Parameter ” 表格中您以創建腳本變量用來將內部變量或控制器變量傳入在腳本需要的時候。組態函數返回值,在腳本中為腳本的名稱分配表達式。例如組態函數類型,。按下面所示,在TIA Portal 組態名稱為 “ VBFunction_1 ” 腳本函數的參數和返回值: 圖. 01例如,腳本在按鈕的 “ Click ” 的事件中被使用。圖. 02在腳本中使用 "HMI_Tag_1" 的值賦給"Parameter_1" ,"HMI_Tag_2" 的值賦給"Parameter_2" ,必須有一行腳本定義了返回值。下面的例子的返回值是兩個傳入參數的乘積:VB_Function_1= Parameter_1 * Parameter_2"VB_Function_1" 是這個函數的名字,在執行這個腳本后,"HMI_Tag_3" 獲得這個函數的返回值是 "HMI_Tag_1" * "HMI_Tag_2" 。注意定義一個 "by reference" 的參數 ,這意味著作為 "By_Ref " 參數,僅對腳本中定義的和引用的變量產生影響,對 HMI 內部變量或者控制器變量不起作用。 (11)如何在運行時改變對象的屬性(顏色,長度等)?以下手冊中提供了對象的屬性和使用的信息:SIMATIC WinCC WinCC Engineering V15 - 編程參考下 "VB腳本編寫 > VBS 對象模型 > 屬性"。(沒有該手冊的可以聯系主編)(12)什么能導致“Zui大嵌套深度到達”消息被觸發?如果太多的腳本在結束前調用自己或者調用其他腳本,會引起到達Zui大嵌套深度消息。解決方法檢查腳本過程的處理,如有必要,減少腳本的嵌套。(13)如何確定當前畫面的編號和畫面名稱?通過預定義 VB 函數 “HmiRuntime.BaseScreenName ” 的返回值提供了當前畫面的名字。注意不能使用腳本通過相關畫面的“屬性”直接讀取畫面名稱/編號。也可以使用“畫面編號”區域指針。(14)如何在腳本中使用多路復用變量?多路復用變量不能用在腳本中。 (15)如何在腳本里使用 HMI UDT 變量?可以使用“SmartTags” 訪問數據類型是HMI UDT的變量元素(用戶定義的數據類型)。例如 訪問 UDT 變量 " Recipe " 的元素 "x"SmartTags("Recipe.x")注意這適用于在項目中已創建庫類型 HMI UDT的實例。不能直接訪問庫類型。(16)如何在腳本中保存變量值當他們在兩個腳本之間調用?在兩個腳本間相互傳遞數據需要使用全局變量。全局變量可以是 HMI 或者 PLC 變量。腳本中定義的變量總是在腳本結束時刪除。 (17)如何通過腳本修改文本域的內容?文本域的文本在運行時可以通過修改相應的對象屬性而改變。例如 在畫面 "MachineData" 中,將文本 "NewText" 分配給 文本域 "Text_Field_01" :Dim objSet obj = HmiRuntime.Screens("MachineData").ScreenItems("Text_Field_01")obj.Text = "NewText"注意文本的變化只是“暫時”的。當屏幕更改后這個被修改后的文本將被組態的文本覆蓋。 (18)如何在腳本中從密碼列表或用戶視圖中讀取用戶密碼?由于安全原因這個功能在 WinCC (TIA Portal) 中不能實現。(19)如何通過腳本關閉 WinCC 運行系統和關閉PC和面板?通過系統函數 “StopRuntime” 可以關閉 WinCC 運行系統和操作系統 ??梢酝ㄟ^修改 "StopRuntime" 函數的參數方式選擇僅關閉運行系統或者將運行系統和操作系統都關閉。 ParameterMeaning0 = hmiStopRuntimeEnds on the Runtime1 = hmiStopRuntimeAndOperationSystemEnds both the Runtime and the OS例如StopRuntime hmiStopRuntimeStopRuntime 1注意 Windows-based 面板的操作系統不能通過這種方式關閉。 (20)如何在腳本中訪問一個畫面或者模板的對象?組態 “Runtime” 對象的屬性 “ ActiveScreen ”,可以找到畫面上組態對象的名字和修改相關的屬性。例如 把激活屏幕中的對象 "Circle_01" 設置為不顯示 HmiRuntime.ActiveScreen.ScreenItems("Circle_01").Visible=False注意在畫面中被組態對象必須有唯一的名字。對象的屬性修改僅是暫時的,當屏幕更改后視圖使用組態時的配置。如何在運行時選擇一個畫面對象(例如輸入輸出域)?獲得一個對象的焦點通過 "Activate" 功能,文本輸入會直接自動指向那個對象。例如 獲得屏幕 "Screen_1" 的 輸入/輸出域 "IOField_1" 的焦點 HMIRuntime.Screens("Screen_1").ScreenItems("IOField_1").Activate
- 西門子博途中WinCC 腳本使用技巧匯總 2024-11-23
- 如何又快又好的入門西門子PLC 2024-11-23
- 大型的西門子PLC程序,是如何規范編寫的 2024-11-23
- 看看高手是怎么從零基礎學習西門子PLC 2024-11-23
- 西門子plc程序怎么模擬運行 2024-11-23
- 西門子PLC怎么實現實時曲線 2024-11-23
- 什么是PID?西門子S7-1200PID功能如何應用 2024-11-23
- 為何給西門子高速計數器賦初始值和預置值時不起作用,或效果出乎意料 2024-11-23
- 西門子高速計數器如何復位到0 2024-11-23
- 西門子高速計數器如何尋址? 為什么從SMDx中讀不出當前的計數值 2024-11-23
- 為什么西門子高速計數器不能正常工作 2024-11-23
- 西門子高速計數器怎樣占用輸出點 2024-11-23
- NPN和PNP傳感器混接進西門子S7-200 PLC的方法 2024-11-23
- NPN/PNP輸出的旋轉編碼器(和其他傳感器),能否接到西門子S7-200 CPU上 2024-11-23
- 西門子S7-200支持的通訊協議哪些是公開的,哪些是不公開的 2024-11-23
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415