<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何自定義函數或局部腳本

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-10-10 10:45 ? 次閱讀

使用系統函數和運行系統腳本

運行系統腳本 (Panels, RT Advanced, RT Professional)

運行系統腳本

指代用戶自定義函數和局部腳本中所有活動的通用術語。

函數

指代系統函數和用戶自定義函數的通用術語。

系統函數

系統函數是所有隨 WinCC 一同提供的函數。系統函數可應用在函數列表、用戶自定義函數或局部腳本中。

用戶自定義函數

用戶自定義函數是指在“腳本”編輯器中編寫的函數。為了更準確的加以說明,本文檔中使用術語“用戶自定義 VB 函數”和“用戶自定義 C 函數”。

局部腳本

局部腳本是指在使用的位置直接創建的腳本(例如對象屬性),并且具有周期性或非周期性觸發器。為了更準確的加以說明,本文檔中使用術語“局部 VB 腳本”和“局部 C 腳本”。

VBS/VBScript

Visual Basic Script 的縮寫形式

應用運行系統腳本

下圖可作為應對編程任務的決策指南:

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

WinCC RT Advanced 和面板不支持局部腳本。

自定義函數或局部腳本?

使用用戶自定義的函數或者使用局部腳本完成編程任務,這取決于應用目的并最終取決于用戶自定義函數或局部腳本的數量。

局部腳本可用于各種后臺活動,例如日常打印或記錄、變量的監視或者計算的執行。

通過自定義函數,只需創建一次就可以在項目中重復使用代碼。需要時,只需調用相應的自定義函數即可,而無需多次輸入代碼。這樣代碼將更加清晰并易于維護。

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

系統函數

● 函數列表

發生特定事件時,可通過函數列表來執行組態的系統函數。

● 用戶自定義函數

如果 HMI 設備支持用戶自定義函數,可以將系統函數與用戶自定義函數代碼中的指令和條件結合使用。這樣,便可以根據特定的系統狀態來執行自定義函數。此外,還可以計算系統函數的返回值。利用返回值可以執行測試函數,繼而影響函數流。

● 函數列表

組態函數列表時,從按類別排序的選擇列表中選擇系統函數:

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

● 用戶自定義函數

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

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

用戶定義的函數 (Panels, RT Advanced, RT Professional)

自定義函數可用于以下情況:

● 組態函數列表

在自定義函數中,自定義函數和系統函數可以按一定的條件來執行,還可以重復執

行。然后將該用戶自定義函數添加到函數列表中。

● 編寫新函數

自定義函數僅在定義它們的項目中有效。對于用戶自定義函數,可定義傳送參數和返回

值以實現數值的轉換。

在函數列表中只能使用屬于同一種編程語言的用戶自定義函數。選擇的首個用戶自定義函

數將決定隨后在該函數列表中可選擇的是 VB 函數還是 C 函數。

自定義函數的組織

通過“腳本”編輯器創建自定義函數。更多信息,請參見““腳本”編輯器 (頁 7082)”。自定義函數保存在項目中。要保護用戶自定義函數,請設置專有技術保護。

● 項目樹

用戶自定義函數顯示在項目樹的“VB 腳本”(VB scripts) 或“C 腳本”(C scripts) 下。

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

● 函數列表

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

● 用戶自定義函數

如果在用戶自定義函數中使用系統函數,可以在選擇列表中進行選擇。要打開選擇列

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

局部腳本 (RT Professional)

可將局部腳本用于以下操作:

● 動態化對象

可使用局部腳本確定運行系統中某對象屬性的值。例如,通過此方法可根據變量值更改

顏色。

● 在任意時間點執行任務。

可使用局部腳本規劃工作,例如在每天換班交接時打印輸出日志。

局部腳本的屬性

在使用的位置直接創建局部腳本。局部腳本具有以下屬性:

● 預定義名稱

● 預定義參數

● 預定義返回值(可選)

● 只能在使用的位置進行更改

● 不具有觸發器

● 調用自定義函數、系統函數

觸發器

在運行系統中執行局部腳本時需要使用觸發器。觸發器可以在創建局部腳本時自動確定,也可以由項目經理指定。

WinCC 支持以下觸發器:

● 非周期性觸發器,例如,規劃單次終止運行系統以進行維護工作。

● 周期性觸發器,例如,規劃一項啟動日常日志打印的作業。

● 事件,例如,單擊按鈕時。

下表列出了不同類型的觸發器:

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

觸發器可用于以下編輯器:

● 調度程序

首先需要在調度程序中組態觸發器。然后將該觸發器連接到局部腳本或函數列表。

● 畫面

要對對象屬性做動態化處理,首先應在相應畫面的屬性列表中組態局部腳本。

在創建局部腳本時會自動確定觸發器??筛脑撚|發器,例如可更改為變量觸發器。

關于函數列表的基礎知識

原理

針對對象(例如畫面對象或任務等)的事件來組態函數列表??梢詫⒑瘮盗斜砭_地組態到每個事件上??捎檬录Q于所選擇的對象和HMI設備。

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

組態函數列表

通過從下拉列表中選擇系統函數和自定義函數來組態函數列表。系統函數根據類別排列在選擇列表中。

在函數列表中只能使用屬于同一種編程語言的自定義函數。選擇的首個用戶自定義函數將決定隨后在該函數列表中可選擇的是用戶自定義 VB 函數還是用戶自定義 C 函數。哪些編程語言可用取決于所選的 HMI 設備。

步驟

要組態函數列表,請按如下步驟進行操作:

1. 打開對象所在的編輯器。

2. 選擇對象。

3. 在巡視窗口中單擊“屬性 > 事件”(Properties> Events)。選擇要對其組態函數列表的事件。

4. 在巡視窗口的下拉列表中標記“<添加函數>”() 條目。

5. 從選擇列表中選擇所需的系統函數或用戶自定義函數。也可輸入該系統函數或用戶自定義函數的名稱。

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

系統函數或自定義函數已輸入到函數列表中。

6. 如果該系統函數或自定義函數具有參數,則為參數選擇合適的值。

c7d09970-47ae-11ed-a3b6-dac502259ad0.png7. 如果要向函數列表中添加其它系統函數或用戶自定義函數,請重復步驟 4) 到步驟 6)。

函數列表組態已經完成。除了組態的事件,函數列表的狀態也顯示在巡視窗口中。在運行系統中發生組態的事件時,函數列表從上至下執行一遍。

更改系統函數或自定義函數的順序

1. 在函數列表中選擇所需的系統函數或自定義函數。

2. 然后在巡視窗口中單擊相應的方向箭頭,直到該系統函數或自定義函數移動到所需位置。

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

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

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

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

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

訪問 HMI 變量 (Panels, RT Advanced, RT Professional)

通過 VBS 或 C,可訪問項目中已創建的 HMI 變量??稍谶\行系統中通過用戶自定義函數更改或讀取 HMI 變量的值。

還可創建局部變量,作為計數器或緩沖器。每個局部變量都必須經過初始化,以防止由于錯誤寫入局部變量而導致的錯誤。

HMI 變量

● WinCC Runtime Advanced 和面板

在變量映像中創建的變量值將保存在用戶自定義函數中。然后,會將變量值更新為設置周期時間。用戶自定義函數首先會訪問上一個周期中讀取的變量值。

如果變量名稱與項目中 VBS 的命名約定匹配,則可按如下方式在用戶自定義函數中使用該變量。

'VBS_Example_03

If BeltDriveOilTemperature > 100 Then [instruction]

如果項目中的變量名稱與 VBS 命名約定不匹配,則必須通過“SmartTags”列表引用該變量。在以下示例中,變量名稱包含“&”字符,其不符合 VBS 的命名約定。

'VBS_Example_04

SmartTags("Test&Trial")= 2005

● WinCC Runtime Professional

訪問功能與在 HMI 設備中使用 WinCC Runtime Advanced 和面板進行訪問相同。還可以以異步方式訪問變量值。PLC 中的變量值以異步訪問方式直接訪問。在局部腳本或用戶自定義 C 函數中按如下方式訪問變量值:

– SmartTags 列表 (VBS)

– 帶有 Read-/Write 方法的 Tags 列表 (VBS)

– GetTag 函數 (C)

– SetTag 函數 (C)

當調用方法或用戶自定義函數時,立即讀取 PLC 中的變量值。變量值并不定期更新,這與從變量映像中讀取的情況不同。

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

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

運行系統腳本

PLC 數組元素的索引可以任何數字開頭。但在 WinCC 中,始終從 0 開始索引。例如,PLC 變量“Array [1..3] of Int”映射到 WinCC 中的“Array [0..2] of Int”。在腳本中訪問數組時,須注意正確的索引順序。

訪問帶有動態名稱的 HMI 變量(WinCC Runtime Advanced 和面板)

用戶自定義 VB 函數通過變量名稱訪問變量值??梢砸赃@樣一種方式來指定變量名稱,即變量名稱在用戶自定義函數運行時構成。

如果只是在畫面中調用用戶自定義 VB 函數且其中的 HMI 變量還用在其它位置,例如,在 I/O 字段中使用,則出于性能方面的原因,應將該 HMI 變量組態為“操作時循環”采集模式。

如果訪問用戶自定義 VB 函數且當前顯示的畫面中未使用 HMI 變量,則將 HMI 變量組態為“循環連續”采集模式。這樣可確保該變量的當前值始終可用。

示例:更換在 HMI 設備上當前顯示的操作模式。

在本示例中,使用系統函數“SetDeviceMode”在 HMI 設備上切換“在線”和“離線”模式。也可在 HMI 設備上顯示當前設置的操作模式。

已經創建一個畫面。

在該示例中需要一個 HMI 變量和一個文本列表以及下列設置:

HMI 變量:

OperatingMode 無 Bool

文本列表:

ShowOperatingMode Bit (0/1) 1: 操作模式:“在線”0: 操作模式:“離線”

步驟

1.創建上面所示的“OperatingMode”HMI 變量。

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

2.創建上面所示的“ShowOperatingMode”文本列表。

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

3. 打開畫面并插入一個可將操作模式改為“在線”的按鈕。

4. 在巡視窗口中單擊“屬性 > 事件”(Properties> Events)。選擇“按下”事件。

5. 對“按下”事件組態系統函數“SetDeviceMode”。該系統函數可在“設置”下的選擇列表中找到。

6. 為“模式”參數選擇“在線”條目。

7. 對“按下”事件組態系統函數“SetBit”。該系統函數可在“位處理”下的選擇列表中找到。

8. 從選擇列表中為參數“變量”選擇 HMI 變量“操作模式”。

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

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

10.重復步驟 4 至 7。為“模式”參數選擇“離線”條目。組態系統函數“ResetBit”代替系統函數“SetBit”。

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

中間結果

在運行系統中可使用這兩個按鈕切換 HMI 設備的操作模式。

想要在 HMI 設備的輸出域中顯示當前設置的操作模式。

步驟

1. 在過程映像中創建“符號 I/O 域”。在巡視窗口中單擊“屬性 > 屬性”(Properties>

Properties)。

2. 在“常規”(General) 組中進行如下設置:

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

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

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

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

結果

使用按鈕更改操作模式時,始終顯示 HMI 設備上當前設置的操作模式。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3450

    瀏覽量

    92703
  • 觸發器
    +關注

    關注

    14

    文章

    1915

    瀏覽量

    60630
  • 函數
    +關注

    關注

    3

    文章

    4117

    瀏覽量

    61463
  • 腳本
    +關注

    關注

    1

    文章

    375

    瀏覽量

    14682

原文標題:WINCC 使用系統函數和運行系統腳本

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony自定義組件

    **可通過@Builder裝飾器進行描述,該裝飾器可以修飾一個函數,此函數可以在build函數之外聲明,并在build函數中或其他@Builder修飾的
    的頭像 發表于 12-08 12:26 ?1517次閱讀

    自定義控件無法創建局部變量怎么解決

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

    新手請教一個關于MATLAB自定義函數的問題?

    我請教大家一個MATLAB的問題,就是關于自定義函數的。假如我的一個程序里面有我自定義的一個函數,以前的做法就是把這個自定義
    發表于 04-11 08:53

    OpenHarmony自定義構建函數:@Builder裝飾器

    () { ... } ● 允許在自定義組件內定義一個多個自定義構建函數,該函數被認為是該組件的
    發表于 09-26 16:36

    matlab自定義函數調用的方法

    matlab自定義函數調用的方法 命令文件/函數文件+ 函數文件 - 多
    發表于 11-29 13:14 ?88次下載

    自定義函數測試學習工程

    自定義函數測試學習工程
    發表于 07-01 16:37 ?5次下載

    1602自定義字符

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

    基于自定義架構的局部處理機

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

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

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

    erlang如何自定義_ERLANG環境搭建

    本文詳細介紹了erlang 如何自定義 behaviour以及ERLANG環境搭建。要定義一個behaviour,首先你要創建一個模塊,它必須導出 behaviour_info/1 這個函數(注意必須帶u),
    發表于 02-23 08:42 ?1409次閱讀
    erlang如何<b class='flag-5'>自定義</b>_ERLANG環境搭建

    WINCC使用系統函數和運行系統腳本

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

    自定義視圖組件教程案例

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

    使用C++ sort函數對vector進行自定義排序

    今天在學一些C++ STL容器,看到sort函數允許自定義排序規則,小小地實操了一下。
    的頭像 發表于 07-22 10:12 ?1221次閱讀

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

    labview超快自定義控件制作和普通自定義控件制作
    發表于 08-21 10:32 ?6次下載

    博途用戶自定義庫的使用

    博途官方提供了很多庫,比如:基本函數庫、通信庫、安全庫、驅動庫等等,用戶可以使用庫中的函數/函數塊來完成具體的控制任務。除了官方的庫,我們也可以創建自己的庫(用戶自定義庫)。比如,把項
    的頭像 發表于 12-25 10:08 ?380次閱讀
    博途用戶<b class='flag-5'>自定義</b>庫的使用
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>