WinCC-Vbs中文手冊_第1頁
WinCC-Vbs中文手冊_第2頁
WinCC-Vbs中文手冊_第3頁
WinCC-Vbs中文手冊_第4頁
WinCC-Vbs中文手冊_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1. 實例: 訪問圖形編輯器中的對象可以使用 VBS WinCC 對所有圖形編輯器對象進行訪問,以使圖形運行環(huán)境動態(tài)化。 根據(jù)變量或周期性(例如閃爍)情況,可在執(zhí)行操作(例如在按鈕上單擊鼠標(biāo))時使圖形對象動態(tài)化。以下示例說明如何在鼠標(biāo)單擊后更改圖形對象。步驟在以下示例中,每次單擊鼠標(biāo)時運行系統(tǒng)中圓的半徑都會設(shè)置為 20:Dim objCircleSet objCircle= ScreenItems("Circle1")objCircle.Radius = 202. 實例: 定義對象的顏圖形對象的顏色通過 RGB 值(紅/綠/藍)定義。 可以設(shè)置或讀出圖形對象的顏色值。 步驟

2、以下示例將“ScreenWindow1”的填充顏色定義為藍色:Dim objScreenSet objScreen = HMIRuntime.Screens("ScreenWindow1")objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3. 例:如何組態(tài)語言切換可使用 VBS 切換 WinCC 的運行系統(tǒng)語言。 最常用的是包含相應(yīng)語言代碼的按鈕,這些按鈕位于項目的起始頁上。在 VBS 中通過使用國家代碼(例如,1031 表示德語 - 默認(rèn),1033 表示英語 - 美國等)指定運行系統(tǒng)語言。有關(guān)

3、所有國家代碼的匯總,請參見標(biāo)題為“區(qū)域方案 ID (LCID) 圖”的主題下的 VBScript 基本知識。步驟:使用按鈕上的“Mouse click”事件創(chuàng)建 VBS 動作,輸入以下動作代碼將運行系統(tǒng)語言切換為德語:HMIRuntime.Language = 10314. 實例: 禁用運行系統(tǒng)簡介可以使用 VBS 終止 WinCC 運行系統(tǒng),例如,通過鼠標(biāo)單擊,依靠變量值或其它事件(例如,啟動運行系統(tǒng)時密碼的多次錯誤輸入)。要執(zhí)行的操作以下示例會終止 WinCC 運行系統(tǒng):HMIRuntime.Stop5. 實例: 全局組態(tài)畫面更改簡介VBS 可用于啟動全局畫面更改,因而會在分布式系統(tǒng)的客戶

4、機上顯示服務(wù)器中的畫面。 為此,服務(wù)器的服務(wù)器前綴必須位于目標(biāo)畫面之前。要執(zhí)行的操作為按鈕組態(tài)以下畫面更改代碼,例如:HMIRuntime.BaseScreenName = "Serverprefix:New screen"6. 實例: 通過屬性組態(tài)畫面更改簡介如果在組態(tài)中使用分區(qū)畫面(例如,在用戶界面的基本畫面標(biāo)題和操作欄中和用于實際畫面顯示的嵌入畫面窗口中),應(yīng)使用畫面窗口的屬性組態(tài)畫面更改。為了顯示其它畫面,必須更改“ScreenName”畫面窗口的屬性。 必須在同一畫面中對動作和畫面窗口進行組態(tài)。要執(zhí)行的操作在以下示例中,執(zhí)行動作時“ScreenWindow”畫面窗

5、口中會顯示“test.pdl”畫面:Dim objScrWindowSet objScrWindow = ScreenItems("ScreenWindow")objScrWindow.ScreenName = "test"7. 實例: 通過 Trace 組態(tài)診斷輸出簡介如果已將 GSC 診斷窗口插入畫面中,則可以使用 Trace 命令在運行系統(tǒng)的診斷窗口中顯示診斷輸出。GSC 診斷按調(diào)用的先后順序發(fā)出包含在動作中的 Trace 方法。這也適用于在動作中調(diào)用的過程中的 Trace 指令。Trace 指令的有目的執(zhí)行(例如針對變量值的輸出)可實現(xiàn)對動作進度

6、以及在動作中調(diào)用的過程的跟蹤。Trace 指令以“HMIRuntime.Trace(<Ausgabe>)”形式輸入。GSC 診斷顯示來自 C 和 VBS 的跟蹤輸出。要執(zhí)行的操作以下示例將文本寫入診斷窗口中:HMIRuntime.Trace "Customized error message"8. 實例: 寫入變量值可以用 VBS 將變量值寫入 PLC 中,例如通過在按鈕上單擊鼠標(biāo)來指定設(shè)定值,或設(shè)置內(nèi)部變量值,以觸發(fā)其它動作。 下面涉及和介紹了多種寫入變型。1) 簡單寫入在以下示例中,將值寫入“Tag1”變量內(nèi):HMIRuntime.Tags("Ta

7、g1").Write 6這是最簡單的寫入形式,因為不會生成任何對象引用。2) 通過對象引用寫入在以下示例中,將創(chuàng)建變量對象的本地副本并將值寫入“Tag1”內(nèi):Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.Write 73) 通過利用引用,可以在寫入之前使用變量對象。 可以讀取變量值,進行計算,并再次寫入:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadobjTag.Value = objTag.Value + 1objT

8、ag.Write4) 同時寫入通常,待寫入的值會傳送到變量管理,然后重新開始對動作進行處理。 但某些情況下,必須確保實際寫入了值之后才能重新開始對動作進行處理。此類寫入通過將附加的可選參數(shù)指定為值 1 來實現(xiàn):Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.Value = 8objTag.Write ,1說明 請注意,這種調(diào)用比標(biāo)準(zhǔn)調(diào)用使用的時間要長。 除此之外,持續(xù)時間還取決于通道和 AS。這類寫入遵從 C 腳本中的 SetTagXXXWait() 調(diào)用5) 通過狀態(tài)處理寫入為了確保成功寫入值,必須在寫入過程之后執(zhí)

9、行錯誤檢查或確定變量狀態(tài)。為此,執(zhí)行寫入操作后需檢查“LastError”屬性。 測試成功(即成功放置任務(wù))后,即檢查變量狀態(tài)。對于寫入任務(wù),過程的當(dāng)前狀態(tài)尚不確定。 要確定該狀態(tài),必須讀取變量。 讀取過程之后“質(zhì)量代碼”屬性中指定的值會提供變量狀態(tài)指示,如有必要,還會涉及發(fā)生故障的 AS 連接。在以下示例中,將寫入“Tag1”變量。 如果寫入期間出現(xiàn)錯誤,全局腳本診斷窗口中會顯示錯誤值和錯誤描述。 最后,檢查質(zhì)量代碼。 如果質(zhì)量代碼不是 OK (0x80),便在診斷窗口中顯示該代碼 Dim objTagSet objTag = HMIRuntime.Tags("Tag1"

10、)objTag.Write 9If 0 <> objTag.LastError ThenHMIRuntime.Trace "Error: " & objTag.LastError & vbCrLf & "ErrorDescription: " & objTag.ErrorDescription & vbCrLfElseobjTag.ReadIf &H80 <> objTag.QualityCode ThenHMIRuntime.Trace "QualityCode: 0x&

11、quot; & Hex(objTag.QualityCode) & vbCrLfEnd IfEnd If說明 寫入變量后,由于不知道哪一質(zhì)量代碼在過程中用于管理變量,因此局部變量對象的 QualityCode 屬性會設(shè)置為“BAD 已不能用”。9. 實例: 如何讀取變量值簡介可以用 VBS 讀取變量值并對其執(zhí)行進一步的處理。 這樣便可以執(zhí)行諸如通過在按鈕上單擊鼠標(biāo)來獲取系統(tǒng)狀態(tài)信息或執(zhí)行計算的操作。下面涉及和介紹了多種讀取變型。1) 簡單讀取在以下示例中,將讀取“Tag1”的值并在全局腳本診斷窗口中顯示該值:HMIRuntime.Trace "Value: "

12、; & HMIRuntime.Tags("Tag1").Read & vbCrLf這是最簡單的讀取形式,因為不會生成任何對象引用。2) 通過對象引用讀取在以下示例中,將生成變量對象的本地副本,讀取該變量值并在全局腳本診斷窗口中顯示該值:Dim objTagSet objTag = HMIRuntime.Tags("Tag1")HMIRuntime.Trace "Value: " & objTag.Read & vbCrLf通過利用引用可以使用變量對象。 可以讀取變量值,進行計算,并再次寫入:Dim ob

13、jTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadobjTag.Value = objTag.Value + 1objTag.Write使用 Read 方法將已讀取的過程變量添加到圖像,從該刻起這些變量會通過 AS 周期性請求。 如果該變量已存在于圖像中,則會返回其中包含的值。對于關(guān)閉畫面,變量動作會再次結(jié)束。 說明 如果全局腳本動作中請求變量,則在進入 WinCC 運行系統(tǒng)的整個過程中,該變量保持已注冊狀態(tài)3) 直接讀取通常,變量值從變量圖像讀取。 但在某些情況下,例如為了同步快速過程,可能需要直接從 AS 讀取變量值。

14、如果將讀取過程的可選參數(shù)設(shè)置為 1,則不會周期性地登錄變量,而是通過 AS 單次請求該值。Dim objTagSet objTag = HMIRuntime.Tags("Tag1")HMIRuntime.Trace "Value: " & objTag.Read(1) & vbCrLf說明 請注意,這種調(diào)用比標(biāo)準(zhǔn)調(diào)用使用的時間要長。 除此之外,持續(xù)時間還取決于通道和 AS。在執(zhí)行周期性 C 動作的情況下,必須避免該類調(diào)用,因為這是引起性能問題的主要原因。該類讀取過程相當(dāng)于 C 腳本中的 GetTagXXXWait() 調(diào)用。4) 通過狀態(tài)

15、處理讀取為了確保值有效,應(yīng)在讀取之后進行檢查。 這通過控制質(zhì)量代碼來執(zhí)行。在以下示例中,將讀取“myWord”變量,然后檢查 QualityCode。 如果質(zhì)量代碼未對應(yīng) OK (0x80),則在全局腳本診斷窗口中顯示 LastError、ErrorDescription 和 QualityCode 屬性。Dim objTagSet objTag = HMIRuntime.Tags("Tag1")objTag.ReadIf &H80 <> objTag.QualityCode ThenHMIRuntime.Trace "Error: "

16、; & objTag.LastError & vbCrLf & "ErrorDescription: " & objTag.ErrorDescription & vbCrLf & "QualityCode: 0x" & Hex(objTag.QualityCode) & vbCrLfElseHMIRuntime.Trace "Value: " & objTag.Value & vbCrLfEnd If說明 如果讀取期間出現(xiàn)錯誤,則 QualityCode

17、會設(shè)置為 BAD NON-SPECIFIC。 因此,只需在讀取之后檢查 1) 示例: 寫入對象屬性VBS 可實現(xiàn)對所有圖形編輯器畫面對象的屬性的訪問。 運行期間可以讀出各個屬性以便進行修改或更改。以下示例說明了各種訪問形式。1) 屬性的簡單設(shè)置在以下示例中,畫面中包含的“Rectangle1”對象的背景顏色被設(shè)置為紅色ScreenItems("Rectangle1").BackColor = RGB(255,0,0)這是最簡單的寫入形式,因為不會生成任何對象引用說明 如果不通過對象引用完成操作,則智能感知中只提供標(biāo)準(zhǔn)屬性。本示例中使用的表達式形式僅適用于圖形編輯器。 對于全

18、局腳本中的模擬動作,應(yīng)使用 HMIRuntime 對象訪問相應(yīng)對象2) 通過對象引用設(shè)置屬性在以下示例中,將創(chuàng)建對畫面中所包含“Rectangle1”對象的引用,并使用 VBS 標(biāo)準(zhǔn)函數(shù) RGB() 將背景設(shè)置為紅色:Dim objRectangleSet objRectangle = ScreenItems("Rectangle1")objRectangle.BackColor = RGB(255,0,0)必須更改多個對象屬性時,引用非常有用。 使用智能感知時,該過程即會列出所有對象屬性。說明 本示例中使用的表達式形式僅適用于圖形編輯器。 對于全局腳本中的模擬動作,應(yīng)使用

19、 HMIRuntime 對象訪問相應(yīng)對象3) 通過畫面窗口設(shè)置屬性圖形編輯器中的 VBS 提供兩種可行的畫面超越訪問方法:· 使用“ScreenItems”通過畫面窗口的 Screen 對象· 使用“HMIRuntime.Screens”通過基本畫面通過畫面窗口引用以下示例中,在從屬畫面窗口中更改矩形的顏色。 相應(yīng)腳本在畫面窗口“ScreenWindow1”所處的畫面“BaseScreen”中執(zhí)行。 此畫面窗口會顯示包含名稱為“Rectangle1”的“Rectangle”類型對象的畫面。Sub OnLButtonUp(ByVal Item, ByVal Flags, By

20、Val x, ByVal y)Dim objRectangleSet objRectangle = ScreenItems("ScreenWindow1").Screen.ScreenItems("Rectangle1")objRectangle.BackColor = RGB(255,0,0)End Sub4) 通過基本畫面引用可通過 HMIRuntime.Screens 引用具有待修改對象的畫面。該畫面相對于基本畫面的規(guī)范通過以下訪問代碼進行定義:<Grundbildname>.<Bildfenstername>:<Bi

21、ldname>. .<Bildfenstername>:<Bildname>在以下示例中,將創(chuàng)建對“Rectangle1”畫面中包含的“Screen2”對象的引用,并將背景顏色設(shè)置為紅色。這種情況下,畫面“Screen2”位于“Screen1”中。 “Screen1”顯示在基本畫面“BaseScreen”中。Dim objRectangleSet objRectangle = HMIRuntime.Screens("BaseScreen.ScreenWindow1:Screen1.ScreenWindow1:Screen2").ScreenIt

22、ems("Rectangle1")objRectangle.BackColor = RGB(255,0,0)無需指定畫面名稱。 可以通過畫面窗口名稱唯一地訪問某一畫面。 因此,只需指定畫面窗口的名稱,如下示例所示:Dim objRectangleSet objRectangle = HMIRuntime.Screens("ScreenWindow1.ScreenWindow2").ScreenItems("Rectangle1")objRectangle.BackColor = RGB(255,0,0)這種訪問類型可實現(xiàn)在不同畫面中訪

23、問畫面窗口中的對象。 就畫面模塊技術(shù)而言,這是特別有趣的一點。5) 利用返回值使屬性動態(tài)化基于屬性的動作不僅能由事件觸發(fā)或周期性觸發(fā),而且能直接通過動作使屬性動態(tài)化。 在以下示例中,通過返回值使對象的背景顏色動態(tài)化。 例如,傳送的值可能來自 PLC 中事件的評估,并用于運行狀態(tài)的圖形顯示:Function BackColor_Trigger(ByVal Item)BackColor_Trigger = RGB(125,0,0)End Function說明 如果通過腳本的返回值使具有 VBS 動作的對象屬性動態(tài)化,則只有在相對于上次運行的腳本對象屬性值發(fā)生更改時才會寫入該值。 如果該值已在另一位

24、置發(fā)生更改則無效。因此,通過從另一位置(例如,其它 C 腳本或 VBS 腳本)的返回值來更改由 VBS 動作生成的動態(tài)屬性是非法的。如果不遵守這一點,則結(jié)果可能是錯誤的值。2) 實例: 通過 VBS 組態(tài)數(shù)據(jù)庫連接簡介以下示例說明如何通過 ODBC 驅(qū)動器組態(tài) Access 數(shù)據(jù)庫鏈接。· 示例 1 將 WinCC 的變量值寫入 Access 數(shù)據(jù)庫中。· 示例 2 從數(shù)據(jù)庫讀取值并將其寫入 WinCC 變量中。這些示例不包含任何處理故障。1.通過 WINCC_DATA 表和 ID 在其中作為自動值的的列(ID,TagValue)來創(chuàng)建 Access 數(shù)據(jù)庫。2.設(shè)置名稱為

25、“SampleDSN”的 ODBC 數(shù)據(jù)源,引用以上 Access 數(shù)據(jù)庫。3.編程。3) 示例 1Dim objConnectionDim strConnectionStringDim lngValueDim strSQLDim objCommandstrConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;" lngValue = HMIRuntime.Tags("Tag1").ReadstrSQL = "INSERT INTO WINCC_DATA (TagValue)

26、VALUES (" & lngValue & ");" Set objConnection = CreateObject("ADODB.Connection")objConnection.ConnectionString = strConnectionStringobjConnection.OpenSet objCommand = CreateObject("ADODB.Command")With objCommand .ActiveConnection = objConnection .CommandTex

27、t = strSQLEnd WithobjCommand.ExecuteSet objCommand = NothingobjConnection.CloseSet objConnection = Nothing4) 步驟、示例 21.創(chuàng)建名稱為 dbValue 的 WinCC 變量。2.使用 WINCC_DATA 表和 ID,TagValue 列創(chuàng)建 Access 數(shù)據(jù)庫: ID,創(chuàng)建 TagValue(ID 作用自動值)。3.設(shè)置名稱為“SampleDSN”的 ODBC 數(shù)據(jù)源,引用以上 Access 數(shù)據(jù)庫。4.編程。Dim objConnectionDim objCommandDim

28、objRecordsetDim strConnectionStringDim strSQLDim lngValueDim lngCountstrConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;" strSQL = "select TagValue from WINCC_DATA where ID = 1" Set objConnection = CreateObject("ADODB.Connection")objConnection.ConnectionStr

29、ing = strConnectionStringobjConnection.OpenSet objRecordset = CreateObject("ADODB.Recordset")Set objCommand = CreateObject("ADODB.Command")objCommand.ActiveConnection = objConnectionobjCommand.CommandText = strSQLSet objRecordset = objCommand.ExecutelngCount = objRecordset.Fields

30、.CountIf (lngCount>0) ThenobjRecordset.movefirstlngValue = objRecordset.Fields(0).ValueHMIRuntime.Tags("dbValue").Write lngValueElseHMIRuntime.Trace "Selection returned no fields" & vbNewLineEnd IfSet objCommand = NothingobjConnection.CloseSet objRecordset = NothingSet obj

31、Connection = Nothing根據(jù)使用的提供程序不同,有多種方法可用來定義連接的連接字符串。ODBC 的 Microsoft OLE DB 提供程序啟用與 ODBC 數(shù)據(jù)源的連接。 相應(yīng)的語法為:"Provider=MSDASQL;DSN=name|FileDSN=filename;DATABASE=database;UID=user; PWD=password"其它 Microsoft OLE DB 提供程序(例如 MS Jet、MS SQL Server)可以不使用 DSN 運行。 相應(yīng)的語法為:"Provider=provider;DRIVER=d

32、river; SERVER=server;DATABASE=database; UID=user; PWD=password"5) 實例: 使用 MS 自動化接口簡介以下三個示例說明了如何使用 MS 自動化接口。1) 示例 1: MS Excel本示例中將輸入域的輸出值寫入 Excel 表中。Dim objExcelAppSet objExcelApp = CreateObject("Excel.Application")objExcelApp.Visible = True'ExcelExample.xls is to create before executing this procedure.'Replace <path> with the real path of the file ExcelExample.xls.objExcelApp.Workbooks.Open "<path>ExcelExample.xls"objExcelApp.Cells(4, 3).Value = ScreenItem

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論