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

下載本文檔

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

文檔簡介

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

2、jScreenSet objScreen = HMIRuntime.Screens(ScreenWindow1)objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3 .例:如何組態(tài)語言切換1 / 18可使用VBS切換WinCC的運行系統(tǒng)語言.最常用的是包含相應(yīng)語言代碼的 按鈕,這些按鈕位于工程的起始頁上.在VBS中通過使用國家代碼例如,1031表示德語-默認,1033表示英語- 美國等指定運行系統(tǒng)語言.有關(guān)所有國家代碼的匯總,請參見標題為 區(qū)域方 案ID LCID圈的主題下的VBScript根本知識.步驟:使用按鈕上

3、的“Mouseclic唐件創(chuàng)立VBS動作,輸入以下動作代碼將運行系 統(tǒng)語言切換為德語:HMIRuntime.Language = 1031可以使用VBS終止WinCC運行系統(tǒng),例如,通過鼠標單擊,依靠變量值或 其它事件例如,啟動運行系統(tǒng)時密碼的屢次錯誤輸入.要執(zhí)行的操作以下例如會終止WinCC運行系統(tǒng):HMIRuntime.Stop5 .實例:全局組態(tài)畫面更改簡介VBS可用于啟動全局畫面更改,因而會在分布式系統(tǒng)的客戶機上顯示效勞 器中的畫面.為此,效勞器的效勞器前綴必須位于目標畫面之前.要執(zhí)行的操作為按鈕組態(tài)以下畫面更改代碼,例如:HMIRuntime.BaseScreenName = Ser

4、verprefix::New screen2 / 186 .實例:通過屬性組態(tài)畫面更改簡介如果在組態(tài)中使用分區(qū)畫面(例如,在用戶界面的根本畫面標題和操作欄 中和用于實際畫面顯示的嵌入畫面窗口中),應(yīng)使用畫面窗口的屬性組態(tài)畫面 更改.為了顯示其它畫面,必須更改“ScreenNamSU面窗口的屬性.必須在同一畫面中對動作和畫面窗口進行組態(tài).要執(zhí)行的操作在以下例如中,執(zhí)行動作時 “ScreenWindov面窗口中會顯示“test.pdl畫 面:Dim objScrWindowSet objScrWindow = ScreenItems(ScreenWindow)objScrWindow.Screen

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

6、最簡單的寫入形式,由于不會生成任何對象引用.2)通過對象引用寫入在以下例如中,將創(chuàng)立變量對象的本地副本并將值寫入“Tag偽:Dim objTagSet objTag = HMIRuntime.Tags(Tag1)objTag.Write 73)通過利用引用,可以在寫入之前使用變量對象.可以讀取變量值,進行 計算,并再次寫入:Dim objTagSet objTag = HMIRuntime.Tags(Tag1)objTag.ReadobjTag.Value = objTag.Value + 1objTag.Write此類寫入通過將附加的可選參數(shù)指定為值1來實現(xiàn):4 / 18Dim objTag

7、Set objTag = HMIRuntime.Tags(Tag1)objTag.Value = 8objTag.Write ,1說明請注意,這種調(diào)用比標準調(diào)用使用的時間要長.除此之外,持續(xù)時間還取 決于通道和ASo這類寫入遵從C腳本中的SetTagXXXWait陋用5)通過狀態(tài)處理寫入為了保證成功寫入值,必須在寫入過程之后執(zhí)行錯誤檢查或確定變量狀 o為此,執(zhí)行寫入操作后需檢查 “LastErro屬性.測試成功(即成功放置任 務(wù))后,即檢查變量狀態(tài).對于寫入任務(wù),過程的當前狀態(tài)尚不確定.要確定該狀態(tài),必須讀取變 量.讀取過程之后 質(zhì)量代碼屬性中指定的值會提供變量狀態(tài)指示,如有必 要,還會涉及發(fā)

8、生故障的 AS連接.在以下例如中,將寫入 “Tag管量.如果寫入期間出現(xiàn)錯誤,全局腳本診斷 窗口中會顯示錯誤值和錯誤描述.最后,檢查質(zhì)量代碼.如果質(zhì)量代碼不是OK(0x80),便在診斷窗口中顯示該代碼Dim objTagSet objTag = HMIRuntime.Tags(Tag1)objTag.Write 9If 0 objTag.LastError Then5 / 18HMIRuntime.Trace Error:& objTag.LastError & vbCrLf & ErrorDescription:& objTag.ErrorDescription &vbCrLfElseobj

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

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

11、untime.Tags(Tag1)objTag.ReadobjTag.Value = objTag.Value + 1objTag.Write使用Read方法將已讀取的過程變量添加到圖像,從該刻起這些變量會通過 AS周期性請求.如果該變量已存在于圖像中,那么會返回其中包含的值.對于關(guān)閉畫面,變量動作會再次結(jié)束.說明如果全局腳本動作中請求變量,那么在進入WinCC運行系統(tǒng)的整個過程中,該變量保持已注冊狀態(tài)3)直接讀取7 / 18如果將讀取過程的可選參數(shù)設(shè)置為1,那么不會周期性地登錄變量,而是通過AS單次請求該值.Dim objTagSet objTag = HMIRuntime.Tags(Tag

12、1)HMIRuntime.Trace Value:&objTag.Read(1) & vbCrLf說明請注意,這種調(diào)用比標準調(diào)用使用的時間要長.除此之外,持續(xù)時間還取 決于通道和ASo在執(zhí)行周期性C動作的情況下,必須防止該類調(diào)用,由于這是引起性能問 題的主要原因.該類讀取過程相當于 C腳本中的GetTagXXXWait胴用.4)通過狀態(tài)處理讀取為了保證值有效,應(yīng)在讀取之后進行檢查.這通過限制質(zhì)量代碼來執(zhí)行.在以下例如中,將讀取 “myWor皎量,然后檢查QualityCode如果質(zhì)量代 碼未對應(yīng)OK (0x80)那么在全局腳本診斷窗口中顯示 LastErroR ErrorDescription

13、 和 QualityCode屬性.Dim objTagSet objTag = HMIRuntime.Tags(Tag1)objTag.ReadIf &H80 objTag.QualityCode ThenHMIRuntime.Trace Error:8 / 18& objTag.LastError & vbCrLf & ErrorDescription:&objTag.ErrorDescription&vbCrLf&QualityCode:0x&Hex(objTag.QualityCode)& vbCrLfElseHMIRuntime.Trace Value:& objTag.Value &

14、 vbCrLfEnd If說明如果讀取期間出現(xiàn)錯誤,那么 QualityCode會設(shè)置為BADNON-SPECIFJC3 此,只需在VBS可實現(xiàn)對所有圖形編輯器畫面對象的屬性的訪問.運行期間可以讀出 各個屬性以便進行修改或更改.以下例如說明了各種訪問形式.1)屬性的簡單設(shè)置在以下例如中,畫面中包含的“Rectangle對象的背景顏色被設(shè)置為紅色ScreenItems(Rectangle1).BackC010r = RGB(255,0,0)這是最簡單的寫入形式,由于不會生成任何對象引用說明如果不通過對象引用完成操作,那么智能感知中只提供標準屬性.本例如中使用的表達式形式僅適用于圖形編輯器.對于全

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

16、應(yīng)對象3)通過畫面窗口設(shè)置屬性圖形編輯器中的VB姍供兩種可行的畫面超越訪問方法:使用“ScreenItemSff過畫面窗口的 Screen對象使用“HMIRuntime.ScreenS!過根本畫面通過畫面窗口引用“ Rectang噗型對象的畫面.Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)Dim objRectangleSet objRectangle =ScreenItems(ScreenWindow1).Screen.ScreenItems(Rectangle1)objRectangle .BackColor = RG

17、B(255,0,0)End Sub4)通過根本畫面引用10 / 18可通過HMIRuntime.Screens引用具有待修改對象的畫面.該畫面相對于基 本畫面的標準通過以下訪問代碼進行定義:.:. .:在以下例如中,將創(chuàng)立對 “Rectangle畫面中包含的“Screen2勺象的引用, 并將背景顏色設(shè)置為紅色.這種情況下,畫面 “Screen于Screen件.“ScreenUL示在根本畫面“ BaseScree n:Dim objRectangleSet objRectangle =HMIRuntime.Screens(BaseScreen.ScreenWindow1:Screen1.Scre

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

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

20、(例如,其它 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_DATAg和ID在其中作為自動值的的列(ID, TagValu8來 創(chuàng)立Access數(shù)據(jù)庫.2 .設(shè)置名稱為“SampleDSN ODBC數(shù)據(jù)源,引用以上Access數(shù)據(jù)庫.3 .編程12 / 183)例如1Dim ob

21、jConnectionDim strConnectionStringDim IngValuestrConnectionString =Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;lngValue =HMIRuntime.Tags(Tag1).ReadstrSQL = INSERT INTO WINCC_DATA (TagValue) VALUES ( & lngValue & );Set objConnection = CreateObject(ADODB.Connection)objConnection.ConnectionString = strCon

22、nectionStringobjConnection.OpenSet objCommand = CreateObject(ADODB.Command)With objCommand.ActiveConnection = objConnection.CommandText = strSQLEnd WithobjCommand.ExecuteSet objCommand = NothingobjConnection.CloseSet objConnection = Nothing13 / 184)步驟、例如21 .創(chuàng)立名稱為dbValue的 WinCC變量.2 .使用 WINCC_DAT展和ID,

23、 TagValue歹U創(chuàng)立Access數(shù)據(jù)庫:ID,創(chuàng)立TagValue(ID作用自動值).3 .設(shè)置名稱為“SampleDSN ODBC數(shù)據(jù)源,引用以上Access數(shù)據(jù)庫.4 .編程.Dim objConnectionDim objCommandDim objRecordsetDim strConnectionStringDim lngValueDim lngCountstrConnectionString =Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;strSQL = select TagValue from WINCC_DATA where ID =

24、 1Set objConnection = CreateObject(ADODB.Connection)objConnection.ConnectionString = strConnectionStringobjConnection.OpenSet objRecordset = CreateObject(ADODB.Recordset)Set objCommand = CreateObject(ADO14 / 18DB.Command)objCommand.ActiveConnection = objConnectionobjCommand.CommandText = strSQLSet o

25、bjRecordset = objCommand.ExecutelngCount = objRecordset.Fields.CountIf (lngCount0) ThenobjRecordset.movefirstlngValue = objRecordset.Fields(0).ValueHMIRuntime.Tags(dbValue).Write lngValueElseHMIRuntime.Trace Selection returned no fields & vbNewLineEnd IfSet objCommand = NothingobjConnection.CloseSet

26、 objRecordset = NothingSet objConnection = Nothing啟用與ODBC數(shù)據(jù)源的連接.相應(yīng)的語法為:Provider=MSDASQL;DSN=name|FileDSN=filename;DATABASE=database;UID=user; PWD=password其它 Microsoft OLE D端供程序(例如 MS Jet MS SQL Server可以不使用DSN運行.相應(yīng)的語法為:15 / 18Provider=provider;DRIVER=driver; SERVER=server;DATABASE=database; UID=user; PWD=password5)實例:使用MS自動化接口簡介以下三個例如說明了如何使用 MS自動化接口.1)例如 1: MS Excel本例如中將輸入域的輸出值寫入 Excel表中.Dim objExcelAppSet objExcelApp = CreateObject(Excel.Application)objExcelApp.Visible = TrueExcelExample.xls is to create before executing this procedure.Replace with the real path of the file ExcelExamp

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論