通過(guò)參數(shù)實(shí)例可將函數(shù)塊的實(shí)例傳送到其它塊(FB 或 FC)中進(jìn)行進(jìn)一步處理,如數(shù)據(jù)查詢、錯(cuò)誤分析,甚至使用由被傳遞實(shí)例執(zhí)行的函數(shù)塊。
ARRAY 多重實(shí)例可用于組合相同類型的對(duì)象,并在程序循環(huán)中對(duì)這些實(shí)例的下標(biāo)進(jìn)行處理。ARRAY 下標(biāo)元素可作為參數(shù)實(shí)例傳送到其它塊中。
在以下示例中,使用對(duì)象“Valve”(FB_Valve) 進(jìn)行詳細(xì)說(shuō)明。在此,顯示了程序塊(本示例中為“FB_ValveControl”)中進(jìn)行閥處理的所有相關(guān)信息。
下圖顯示了所需的特性以及具體的應(yīng)用方式:
使用函數(shù)“FC_StatusValve”和“FC_MaintainValve”,對(duì)調(diào)用時(shí)接收到的“FB_Valve”程序塊的參數(shù)實(shí)例繼續(xù)處理。
在“FB_ValveControl”程序塊中,可使用 ARRAY 多重實(shí)例對(duì)現(xiàn)有的閥的數(shù)量進(jìn)行聲明,同時(shí)通過(guò)各種函數(shù)對(duì)循環(huán)程序中的所有閥進(jìn)行管理。
說(shuō)明 完整性 該解決方案示例僅用于說(shuō)明如何實(shí)現(xiàn)指定的任務(wù)。請(qǐng)注意,在實(shí)際任務(wù)中需要對(duì)程序代碼進(jìn)行相應(yīng)調(diào)整。 |
在本示例中,需要使用以下程序塊:
塊 | 說(shuō)明 | 編程語(yǔ)言 |
---|---|---|
FB_ValveControl | 該函數(shù)塊將用作一個(gè)控制塊,可通過(guò)一個(gè)多重實(shí)例 ARRAY 對(duì)所有閥進(jìn)行處理。 | SCL |
FB_Valve | 該函數(shù)塊中包含閥數(shù)據(jù)的定義以及進(jìn)行閥處理的程序代碼。 |
SCL (在程序塊“FB_ValveControl”中,將用到這三個(gè)程序塊。) |
FC_StatusValve | 該函數(shù)將返回當(dāng)前所處理閥的狀態(tài)。 | |
FC_MaintainValve | 該函數(shù)用于檢查閥是否需要維護(hù)。如果需要,將執(zhí)行維護(hù)操作,并在維護(hù)完成時(shí)返回函數(shù)值 TRUE。 |
操作步驟:創(chuàng)建“FB_Valve”
要?jiǎng)?chuàng)建該 SCL 函數(shù)塊,請(qǐng)執(zhí)行以下操作步驟:
雙擊“新增塊”(Add new block) 命令。 “新增塊”(Add new block) 對(duì)話框隨即打開。 單擊“函數(shù)塊 (FB)”(Function block (FB)) 按鈕。 輸入名稱“FB_Valve”。 選擇 SCL 編程語(yǔ)言。 單擊“確定”(OK)。 基于可打開和關(guān)閉的閥進(jìn)行塊接口聲明,如下所示: 編寫閥控制程序代碼,如下所示: |
操作步驟:創(chuàng)建“FC_StatusValve”
要?jiǎng)?chuàng)建 SCL 函數(shù)塊“FC_StatusValve”,請(qǐng)執(zhí)行以下操作步驟:
雙擊“添加新塊”(Add new block) 命令。 “新增塊”(Add new block) 對(duì)話框隨即打開。 單擊“函數(shù) (FC)”(Function (FC)) 按鈕。 輸入名稱“FC_StatusValve”。 選擇 SCL 編程語(yǔ)言。 單擊“確定”(OK)。 使用參數(shù)實(shí)例“FB_Valve”組合聲明該塊接口,如下所示: 編寫程序代碼,如下所示: |
操作步驟:創(chuàng)建“FC_MaintainValve”
要?jiǎng)?chuàng)建 SCL 函數(shù)塊“FC_MaintainValve”,請(qǐng)執(zhí)行以下操作步驟:
雙擊“添加新塊”(Add new block) 命令。 “新增塊”(Add new block) 對(duì)話框隨即打開。 單擊“函數(shù) (FC)”(Function (FC)) 按鈕。 輸入名稱“FC_MaintainValve”。 選擇 SCL 編程語(yǔ)言。 單擊“確定”(OK)。 使用參數(shù)實(shí)例“FB_Valve”組合聲明該塊接口,如下所示: 編寫程序代碼,如下所示: |
操作步驟:創(chuàng)建“FB_ValveControl”
要?jiǎng)?chuàng)建該 SCL 函數(shù)塊,請(qǐng)執(zhí)行以下操作步驟:
雙擊“新增塊”(Add new block) 命令。 “新增塊”(Add new block) 對(duì)話框隨即打開。 單擊“函數(shù)塊 (FB)”(Function block (FB)) 按鈕。 輸入名稱“FB_ValveControl”。 選擇 SCL 編程語(yǔ)言。 單擊“確定”(OK)。 定義用戶常量: 在本示例中,可通過(guò)用戶常量“vmax”快速更改程序中的閥數(shù)量。 使用“FB_Valve”中的閥實(shí)例組合聲明該塊接口,如下所示: 編寫程序代碼,如下所示: |
操作步驟:調(diào)用 OB 1 中的“FB_ValveControl”
要調(diào)用 OB 1 中的函數(shù)塊“FB_ValveControl”,請(qǐng)執(zhí)行以下操作步驟:
雙擊打開“Main [OB1]”塊。 使用拖放操作,將函數(shù)塊“FB_ValveControl”添加到 OB 1 中。 |
結(jié)果
每個(gè)程序循環(huán)中處理一個(gè)閥。系統(tǒng)將對(duì)下標(biāo)選定的相應(yīng)閥進(jìn)行處理和狀態(tài)查詢。必要時(shí),可進(jìn)行相應(yīng)維護(hù)。
在本示例中,每個(gè)循環(huán)處理一個(gè)閥。當(dāng)然,也可以在一個(gè)程序循環(huán)中處理所有的閥,但循環(huán)時(shí)間會(huì)相對(duì)延長(zhǎng)。如果要縮短程序循環(huán)時(shí)間,則不建議在一個(gè)程序循環(huán)中執(zhí)行所有處理。
審核編輯:湯梓紅
-
西門子
+關(guān)注
關(guān)注
94文章
3055瀏覽量
116128 -
參數(shù)
+關(guān)注
關(guān)注
11文章
1846瀏覽量
32324 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1947瀏覽量
34845 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4341瀏覽量
62796 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17115
原文標(biāo)題:西門子博途:多重實(shí)例 ARRAY 中參數(shù)實(shí)例的使用示例
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論