RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何自定義函數(shù)或局部腳本

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 作者:機(jī)器人及PLC自動化 ? 2022-10-10 10:45 ? 次閱讀

使用系統(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ù)的決策指南:

c62a8478-47ae-11ed-a3b6-dac502259ad0.png

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ù)。

c644313e-47ae-11ed-a3b6-dac502259ad0.png

系統(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ù):

c664ff86-47ae-11ed-a3b6-dac502259ad0.png

● 用戶自定義函數(shù)

如果在用戶自定義函數(shù)中使用系統(tǒng)函數(shù),可以在選擇列表中進(jìn)行選擇。要打開選擇列表,請使用快捷鍵或單擊c68c1b34-47ae-11ed-a3b6-dac502259ad0.png? 。

c69c3f32-47ae-11ed-a3b6-dac502259ad0.png

用戶定義的函數(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) 下。

c6d6b496-47ae-11ed-a3b6-dac502259ad0.png

● 函數(shù)列表

用戶自定義函數(shù)顯示在函數(shù)列表的“VB 函數(shù)”(VB functions) 或“C 函數(shù)”(C functions) 下。

● 用戶自定義函數(shù)

如果在用戶自定義函數(shù)中使用系統(tǒng)函數(shù),可以在選擇列表中進(jìn)行選擇。要打開選擇列

表,請使用快捷鍵或單擊c6f58efc-47ae-11ed-a3b6-dac502259ad0.png? 。

局部腳本 (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ā)器:

c757187a-47ae-11ed-a3b6-dac502259ad0.png

觸發(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è)備。

c78ff816-47ae-11ed-a3b6-dac502259ad0.png

組態(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ù)的名稱。

c7beaf94-47ae-11ed-a3b6-dac502259ad0.png

系統(tǒng)函數(shù)或自定義函數(shù)已輸入到函數(shù)列表中。

6. 如果該系統(tǒng)函數(shù)或自定義函數(shù)具有參數(shù),則為參數(shù)選擇合適的值。

c7d09970-47ae-11ed-a3b6-dac502259ad0.png7. 如果要向函數(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ù)移動到所需位置。

c7ff4342-47ae-11ed-a3b6-dac502259ad0.png

“腳本”編輯器 (Panels, RT Advanced, RT Professional)

“腳本”編輯器具有諸如自動完成和語法突出顯示等功能,有助于用戶自定義函數(shù)的創(chuàng)建。

可以使用“指令”(Instructions) 任務(wù)卡插入頻繁使用的指令的代碼模板。

c8727330-47ae-11ed-a3b6-dac502259ad0.png

訪問 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 中的變量值。變量值并不定期更新,這與從變量映像中讀取的情況不同。

c8c4540c-47ae-11ed-a3b6-dac502259ad0.png

c8e08f1e-47ae-11ed-a3b6-dac502259ad0.png

運(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 變量。

c904e238-47ae-11ed-a3b6-dac502259ad0.png

2.創(chuàng)建上面所示的“ShowOperatingMode”文本列表。

c9364508-47ae-11ed-a3b6-dac502259ad0.png

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 變量“操作模式”。

c967bce6-47ae-11ed-a3b6-dac502259ad0.png

9. 在過程畫面中添加一個可將操作模式改為“離線”的按鈕。

10.重復(fù)步驟 4 至 7。為“模式”參數(shù)選擇“離線”條目。組態(tài)系統(tǒng)函數(shù)“ResetBit”代替系統(tǒng)函數(shù)“SetBit”。

c9ab8a3e-47ae-11ed-a3b6-dac502259ad0.png

中間結(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è)置:

– 選擇“輸出”作為“模式”。

– 選擇文本列表“顯示操作模式”作為“文本列表”。

– 選擇“操作模式”作為“變量”。

c9cfb9f4-47ae-11ed-a3b6-dac502259ad0.png

結(jié)果

使用按鈕更改操作模式時,始終顯示 HMI 設(shè)備上當(dāng)前設(shè)置的操作模式。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OpenHarmony自定義組件

    **可通過@Builder裝飾器進(jìn)行描述,該裝飾器可以修飾一個函數(shù),此函數(shù)可以在build函數(shù)之外聲明,并在build函數(shù)其他@Buil
    的頭像 發(fā)表于 12-08 12:26 ?1847次閱讀

    自定義控件無法創(chuàng)建局部變量怎么解決

    自定義的布爾控件無法創(chuàng)建局部變量,請問是怎么回事?創(chuàng)建局部時鼠標(biāo)上不是附帶的局部變量,框框不是綠色而是黑色的,并且框框內(nèi)部是黑色的問號而不是布爾控件的標(biāo)題。
    發(fā)表于 02-27 10:12

    OpenHarmony自定義構(gòu)建函數(shù):@Builder裝飾器

    () { ... } ● 允許在自定義組件內(nèi)定義一個多個自定義構(gòu)建函數(shù),該函數(shù)被認(rèn)為是該組件的
    發(fā)表于 09-26 16:36

    matlab自定義函數(shù)調(diào)用的方法

    matlab自定義函數(shù)調(diào)用的方法 命令文件/函數(shù)文件+ 函數(shù)文件 - 多
    發(fā)表于 11-29 13:14 ?88次下載

    自定義函數(shù)測試學(xué)習(xí)工程

    自定義函數(shù)測試學(xué)習(xí)工程
    發(fā)表于 07-01 16:37 ?5次下載

    1602自定義字符

    1602液晶能夠顯示自定義字符,能夠根據(jù)讀者的具體情況顯示自定義字符。
    發(fā)表于 01-20 15:43 ?1次下載

    基于自定義架構(gòu)的局部處理機(jī)

    針對企業(yè)生產(chǎn)過程中存在大量原始數(shù)據(jù)需要實(shí)時處理的問題,設(shè)計并實(shí)現(xiàn)了一個基于自定義架構(gòu)的局部處理機(jī)。在設(shè)計之初以Hadoop的并行架構(gòu)為參考,對MapReduce的工作原理和緩存方式進(jìn)行了分析
    發(fā)表于 01-10 16:18 ?0次下載
    基于<b class='flag-5'>自定義</b>架構(gòu)的<b class='flag-5'>局部</b>處理機(jī)

    基于linux下自定義一個腳本來替代rm命令

    linux下的rm命令,功能太強(qiáng),同時又沒法撤消,為了避免誤操作,可以自定義一個腳本來替代rm命令。
    的頭像 發(fā)表于 02-01 18:08 ?3740次閱讀
    基于linux下<b class='flag-5'>自定義</b>一個<b class='flag-5'>腳本</b>來替代rm命令

    WINCC使用系統(tǒng)函數(shù)和運(yùn)行系統(tǒng)腳本

    系統(tǒng)函數(shù)是所有隨 WinCC 一同提供的函數(shù)。系統(tǒng)函數(shù)可應(yīng)用在函數(shù)列表、用戶自定義函數(shù)
    的頭像 發(fā)表于 03-10 15:59 ?4343次閱讀
    WINCC使用系統(tǒng)<b class='flag-5'>函數(shù)</b>和運(yùn)行系統(tǒng)<b class='flag-5'>腳本</b>

    自定義視圖組件教程案例

    自定義組件 1.自定義組件-particles(粒子效果) 2.自定義組件- pulse(脈沖button效果) 3.自定義組件-progress(progress效果) 4.
    發(fā)表于 04-08 10:48 ?14次下載

    ArkUI如何自定義彈窗(eTS)

    自定義彈窗其實(shí)也是比較簡單的,通過CustomDialogController類就可以顯示自定義彈窗。
    的頭像 發(fā)表于 08-31 08:24 ?2186次閱讀

    labview自定義控件

    labview自定義精美控件
    發(fā)表于 05-15 16:46 ?17次下載

    自定義算子開發(fā)

    一個完整的自定義算子應(yīng)用過程包括注冊算子、算子實(shí)現(xiàn)、含自定義算子模型轉(zhuǎn)換和運(yùn)行含自定義op模型四個階段。在大多數(shù)情況下,您的模型應(yīng)該可以通過使用hb_mapper工具完成轉(zhuǎn)換并順利部署到地平線芯片上……
    的頭像 發(fā)表于 04-07 16:11 ?2793次閱讀
    <b class='flag-5'>自定義</b>算子開發(fā)

    使用C++ sort函數(shù)對vector進(jìn)行自定義排序

    今天在學(xué)一些C++ STL容器,看到sort函數(shù)允許自定義排序規(guī)則,小小地實(shí)操了一下。
    的頭像 發(fā)表于 07-22 10:12 ?1662次閱讀

    labview超快自定義控件制作和普通自定義控件制作

    labview超快自定義控件制作和普通自定義控件制作
    發(fā)表于 08-21 10:32 ?13次下載
    RM新时代网站-首页