使用系統(tǒng)函數(shù)和運(yùn)行系統(tǒng)腳本
運(yùn)行系統(tǒng)腳本 (Panels, RT Advanced, RT Professional)
運(yùn)行系統(tǒng)腳本
指代用戶自定義函數(shù)和局部腳本中所有活動的通用術(shù)語。
函數(shù)
指代系統(tǒng)函數(shù)和用戶自定義函數(shù)的通用術(shù)語。
系統(tǒng)函數(shù)
系統(tǒng)函數(shù)是所有隨 WinCC 一同提供的函數(shù)。系統(tǒng)函數(shù)可應(yīng)用在函數(shù)列表、用戶自定義函數(shù)或局部腳本中。
用戶自定義函數(shù)
用戶自定義函數(shù)是指在“腳本”編輯器中編寫的函數(shù)。為了更準(zhǔn)確的加以說明,本文檔中使用術(shù)語“用戶自定義 VB 函數(shù)”和“用戶自定義 C 函數(shù)”。
局部腳本
局部腳本是指在使用的位置直接創(chuàng)建的腳本(例如對象屬性),并且具有周期性或非周期性觸發(fā)器。為了更準(zhǔn)確的加以說明,本文檔中使用術(shù)語“局部 VB 腳本”和“局部 C 腳本”。
VBS/VBScript
Visual Basic Script 的縮寫形式
應(yīng)用運(yùn)行系統(tǒng)腳本
下圖可作為應(yīng)對編程任務(wù)的決策指南:
WinCC RT Advanced 和面板不支持局部腳本。
自定義函數(shù)或局部腳本?
使用用戶自定義的函數(shù)或者使用局部腳本完成編程任務(wù),這取決于應(yīng)用目的并最終取決于用戶自定義函數(shù)或局部腳本的數(shù)量。
局部腳本可用于各種后臺活動,例如日常打印或記錄、變量的監(jiān)視或者計算的執(zhí)行。
通過自定義函數(shù),只需創(chuàng)建一次就可以在項(xiàng)目中重復(fù)使用代碼。需要時,只需調(diào)用相應(yīng)的自定義函數(shù)即可,而無需多次輸入代碼。這樣代碼將更加清晰并易于維護(hù)。
系統(tǒng)函數(shù)
● 函數(shù)列表
發(fā)生特定事件時,可通過函數(shù)列表來執(zhí)行組態(tài)的系統(tǒng)函數(shù)。
● 用戶自定義函數(shù)
如果 HMI 設(shè)備支持用戶自定義函數(shù),可以將系統(tǒng)函數(shù)與用戶自定義函數(shù)代碼中的指令和條件結(jié)合使用。這樣,便可以根據(jù)特定的系統(tǒng)狀態(tài)來執(zhí)行自定義函數(shù)。此外,還可以計算系統(tǒng)函數(shù)的返回值。利用返回值可以執(zhí)行測試函數(shù),繼而影響函數(shù)流。
● 函數(shù)列表
組態(tài)函數(shù)列表時,從按類別排序的選擇列表中選擇系統(tǒng)函數(shù):
● 用戶自定義函數(shù)
如果在用戶自定義函數(shù)中使用系統(tǒng)函數(shù),可以在選擇列表中進(jìn)行選擇。要打開選擇列表,請使用快捷鍵或單擊? 。
用戶定義的函數(shù) (Panels, RT Advanced, RT Professional)
自定義函數(shù)可用于以下情況:
● 組態(tài)函數(shù)列表
在自定義函數(shù)中,自定義函數(shù)和系統(tǒng)函數(shù)可以按一定的條件來執(zhí)行,還可以重復(fù)執(zhí)
行。然后將該用戶自定義函數(shù)添加到函數(shù)列表中。
● 編寫新函數(shù)
自定義函數(shù)僅在定義它們的項(xiàng)目中有效。對于用戶自定義函數(shù),可定義傳送參數(shù)和返回
值以實(shí)現(xiàn)數(shù)值的轉(zhuǎn)換。
在函數(shù)列表中只能使用屬于同一種編程語言的用戶自定義函數(shù)。選擇的首個用戶自定義函
數(shù)將決定隨后在該函數(shù)列表中可選擇的是 VB 函數(shù)還是 C 函數(shù)。
自定義函數(shù)的組織
通過“腳本”編輯器創(chuàng)建自定義函數(shù)。更多信息,請參見““腳本”編輯器 (頁 7082)”。自定義函數(shù)保存在項(xiàng)目中。要保護(hù)用戶自定義函數(shù),請設(shè)置專有技術(shù)保護(hù)。
● 項(xiàng)目樹
用戶自定義函數(shù)顯示在項(xiàng)目樹的“VB 腳本”(VB scripts) 或“C 腳本”(C scripts) 下。
● 函數(shù)列表
用戶自定義函數(shù)顯示在函數(shù)列表的“VB 函數(shù)”(VB functions) 或“C 函數(shù)”(C functions) 下。
● 用戶自定義函數(shù)
如果在用戶自定義函數(shù)中使用系統(tǒng)函數(shù),可以在選擇列表中進(jìn)行選擇。要打開選擇列
表,請使用快捷鍵或單擊? 。
局部腳本 (RT Professional)
可將局部腳本用于以下操作:
● 動態(tài)化對象
可使用局部腳本確定運(yùn)行系統(tǒng)中某對象屬性的值。例如,通過此方法可根據(jù)變量值更改
顏色。
● 在任意時間點(diǎn)執(zhí)行任務(wù)。
可使用局部腳本規(guī)劃工作,例如在每天換班交接時打印輸出日志。
局部腳本的屬性
在使用的位置直接創(chuàng)建局部腳本。局部腳本具有以下屬性:
● 預(yù)定義名稱
● 預(yù)定義參數(shù)
● 預(yù)定義返回值(可選)
● 只能在使用的位置進(jìn)行更改
● 不具有觸發(fā)器
● 調(diào)用自定義函數(shù)、系統(tǒng)函數(shù)
觸發(fā)器
在運(yùn)行系統(tǒng)中執(zhí)行局部腳本時需要使用觸發(fā)器。觸發(fā)器可以在創(chuàng)建局部腳本時自動確定,也可以由項(xiàng)目經(jīng)理指定。
WinCC 支持以下觸發(fā)器:
● 非周期性觸發(fā)器,例如,規(guī)劃單次終止運(yùn)行系統(tǒng)以進(jìn)行維護(hù)工作。
● 周期性觸發(fā)器,例如,規(guī)劃一項(xiàng)啟動日常日志打印的作業(yè)。
● 事件,例如,單擊按鈕時。
下表列出了不同類型的觸發(fā)器:
觸發(fā)器可用于以下編輯器:
● 調(diào)度程序
首先需要在調(diào)度程序中組態(tài)觸發(fā)器。然后將該觸發(fā)器連接到局部腳本或函數(shù)列表。
● 畫面
要對對象屬性做動態(tài)化處理,首先應(yīng)在相應(yīng)畫面的屬性列表中組態(tài)局部腳本。
在創(chuàng)建局部腳本時會自動確定觸發(fā)器。可更改該觸發(fā)器,例如可更改為變量觸發(fā)器。
關(guān)于函數(shù)列表的基礎(chǔ)知識
原理
針對對象(例如畫面對象或任務(wù)等)的事件來組態(tài)函數(shù)列表??梢詫⒑瘮?shù)列表精確地組態(tài)到每個事件上。可用事件取決于所選擇的對象和HMI設(shè)備。
組態(tài)函數(shù)列表
通過從下拉列表中選擇系統(tǒng)函數(shù)和自定義函數(shù)來組態(tài)函數(shù)列表。系統(tǒng)函數(shù)根據(jù)類別排列在選擇列表中。
在函數(shù)列表中只能使用屬于同一種編程語言的自定義函數(shù)。選擇的首個用戶自定義函數(shù)將決定隨后在該函數(shù)列表中可選擇的是用戶自定義 VB 函數(shù)還是用戶自定義 C 函數(shù)。哪些編程語言可用取決于所選的 HMI 設(shè)備。
步驟
要組態(tài)函數(shù)列表,請按如下步驟進(jìn)行操作:
1. 打開對象所在的編輯器。
2. 選擇對象。
3. 在巡視窗口中單擊“屬性 > 事件”(Properties> Events)。選擇要對其組態(tài)函數(shù)列表的事件。
4. 在巡視窗口的下拉列表中標(biāo)記“<添加函數(shù)>”() 條目。
5. 從選擇列表中選擇所需的系統(tǒng)函數(shù)或用戶自定義函數(shù)。也可輸入該系統(tǒng)函數(shù)或用戶自定義函數(shù)的名稱。
系統(tǒng)函數(shù)或自定義函數(shù)已輸入到函數(shù)列表中。
6. 如果該系統(tǒng)函數(shù)或自定義函數(shù)具有參數(shù),則為參數(shù)選擇合適的值。
7. 如果要向函數(shù)列表中添加其它系統(tǒng)函數(shù)或用戶自定義函數(shù),請重復(fù)步驟 4) 到步驟 6)。
函數(shù)列表組態(tài)已經(jīng)完成。除了組態(tài)的事件,函數(shù)列表的狀態(tài)也顯示在巡視窗口中。在運(yùn)行系統(tǒng)中發(fā)生組態(tài)的事件時,函數(shù)列表從上至下執(zhí)行一遍。
更改系統(tǒng)函數(shù)或自定義函數(shù)的順序
1. 在函數(shù)列表中選擇所需的系統(tǒng)函數(shù)或自定義函數(shù)。
2. 然后在巡視窗口中單擊相應(yīng)的方向箭頭,直到該系統(tǒng)函數(shù)或自定義函數(shù)移動到所需位置。
“腳本”編輯器 (Panels, RT Advanced, RT Professional)
“腳本”編輯器具有諸如自動完成和語法突出顯示等功能,有助于用戶自定義函數(shù)的創(chuàng)建。
可以使用“指令”(Instructions) 任務(wù)卡插入頻繁使用的指令的代碼模板。
訪問 HMI 變量 (Panels, RT Advanced, RT Professional)
通過 VBS 或 C,可訪問項(xiàng)目中已創(chuàng)建的 HMI 變量。可在運(yùn)行系統(tǒng)中通過用戶自定義函數(shù)更改或讀取 HMI 變量的值。
還可創(chuàng)建局部變量,作為計數(shù)器或緩沖器。每個局部變量都必須經(jīng)過初始化,以防止由于錯誤寫入局部變量而導(dǎo)致的錯誤。
HMI 變量
● WinCC Runtime Advanced 和面板
在變量映像中創(chuàng)建的變量值將保存在用戶自定義函數(shù)中。然后,會將變量值更新為設(shè)置周期時間。用戶自定義函數(shù)首先會訪問上一個周期中讀取的變量值。
如果變量名稱與項(xiàng)目中 VBS 的命名約定匹配,則可按如下方式在用戶自定義函數(shù)中使用該變量。
'VBS_Example_03
If BeltDriveOilTemperature > 100 Then [instruction]
如果項(xiàng)目中的變量名稱與 VBS 命名約定不匹配,則必須通過“SmartTags”列表引用該變量。在以下示例中,變量名稱包含“&”字符,其不符合 VBS 的命名約定。
'VBS_Example_04
SmartTags("Test&Trial")= 2005
● WinCC Runtime Professional
訪問功能與在 HMI 設(shè)備中使用 WinCC Runtime Advanced 和面板進(jìn)行訪問相同。還可以以異步方式訪問變量值。PLC 中的變量值以異步訪問方式直接訪問。在局部腳本或用戶自定義 C 函數(shù)中按如下方式訪問變量值:
– SmartTags 列表 (VBS)
– 帶有 Read-/Write 方法的 Tags 列表 (VBS)
– GetTag 函數(shù) (C)
– SetTag 函數(shù) (C)
當(dāng)調(diào)用方法或用戶自定義函數(shù)時,立即讀取 PLC 中的變量值。變量值并不定期更新,這與從變量映像中讀取的情況不同。
運(yùn)行系統(tǒng)腳本
PLC 數(shù)組元素的索引可以任何數(shù)字開頭。但在 WinCC 中,始終從 0 開始索引。例如,PLC 變量“Array [1..3] of Int”映射到 WinCC 中的“Array [0..2] of Int”。在腳本中訪問數(shù)組時,須注意正確的索引順序。
訪問帶有動態(tài)名稱的 HMI 變量(WinCC Runtime Advanced 和面板)
用戶自定義 VB 函數(shù)通過變量名稱訪問變量值??梢砸赃@樣一種方式來指定變量名稱,即變量名稱在用戶自定義函數(shù)運(yùn)行時構(gòu)成。
如果只是在畫面中調(diào)用用戶自定義 VB 函數(shù)且其中的 HMI 變量還用在其它位置,例如,在 I/O 字段中使用,則出于性能方面的原因,應(yīng)將該 HMI 變量組態(tài)為“操作時循環(huán)”采集模式。
如果訪問用戶自定義 VB 函數(shù)且當(dāng)前顯示的畫面中未使用 HMI 變量,則將 HMI 變量組態(tài)為“循環(huán)連續(xù)”采集模式。這樣可確保該變量的當(dāng)前值始終可用。
示例:更換在 HMI 設(shè)備上當(dāng)前顯示的操作模式。
在本示例中,使用系統(tǒng)函數(shù)“SetDeviceMode”在 HMI 設(shè)備上切換“在線”和“離線”模式。也可在 HMI 設(shè)備上顯示當(dāng)前設(shè)置的操作模式。
已經(jīng)創(chuàng)建一個畫面。
在該示例中需要一個 HMI 變量和一個文本列表以及下列設(shè)置:
HMI 變量:
OperatingMode 無 Bool
文本列表:
ShowOperatingMode Bit (0/1) 1: 操作模式:“在線”0: 操作模式:“離線”
步驟
1.創(chuàng)建上面所示的“OperatingMode”HMI 變量。
2.創(chuàng)建上面所示的“ShowOperatingMode”文本列表。
3. 打開畫面并插入一個可將操作模式改為“在線”的按鈕。
4. 在巡視窗口中單擊“屬性 > 事件”(Properties> Events)。選擇“按下”事件。
5. 對“按下”事件組態(tài)系統(tǒng)函數(shù)“SetDeviceMode”。該系統(tǒng)函數(shù)可在“設(shè)置”下的選擇列表中找到。
6. 為“模式”參數(shù)選擇“在線”條目。
7. 對“按下”事件組態(tài)系統(tǒng)函數(shù)“SetBit”。該系統(tǒng)函數(shù)可在“位處理”下的選擇列表中找到。
8. 從選擇列表中為參數(shù)“變量”選擇 HMI 變量“操作模式”。
9. 在過程畫面中添加一個可將操作模式改為“離線”的按鈕。
10.重復(fù)步驟 4 至 7。為“模式”參數(shù)選擇“離線”條目。組態(tài)系統(tǒng)函數(shù)“ResetBit”代替系統(tǒng)函數(shù)“SetBit”。
中間結(jié)果
在運(yùn)行系統(tǒng)中可使用這兩個按鈕切換 HMI 設(shè)備的操作模式。
想要在 HMI 設(shè)備的輸出域中顯示當(dāng)前設(shè)置的操作模式。
步驟
1. 在過程映像中創(chuàng)建“符號 I/O 域”。在巡視窗口中單擊“屬性 > 屬性”(Properties>
Properties)。
2. 在“常規(guī)”(General) 組中進(jìn)行如下設(shè)置:
– 選擇“輸出”作為“模式”。
– 選擇文本列表“顯示操作模式”作為“文本列表”。
– 選擇“操作模式”作為“變量”。
結(jié)果
使用按鈕更改操作模式時,始終顯示 HMI 設(shè)備上當(dāng)前設(shè)置的操作模式。
-
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61130 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62569 -
腳本
+關(guān)注
關(guān)注
1文章
389瀏覽量
14858
原文標(biāo)題:WINCC 使用系統(tǒng)函數(shù)和運(yùn)行系統(tǒng)腳本
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論