“ModuleStates”指令可用來(lái)讀取 PROFINET IO 設(shè)備或 PROFIBUS DP 從站的模塊狀態(tài)信息。
輸出的布爾值指示所選狀態(tài)適用于的模塊。例如,可以讀取 PROFINET IO 設(shè)備中當(dāng)前禁用的模塊。
此信息的顯示還依賴于要讀取的狀態(tài)信息是否適用于至少一個(gè)模塊。
可在循環(huán) OB 以及中斷 OB(例如,OB82 - 診斷中斷)中調(diào)用此指令。
LADDR | Input | HW_DEVICE | 站的硬件標(biāo)識(shí)符 |
MODE | Input | UINT | 選擇要讀取的模塊狀態(tài)信息 |
RET_VAL | Return | INT | 指令的狀態(tài) |
STATE | InOut | VARIANT | 模塊狀態(tài)緩沖區(qū) |
參數(shù) LADDR
使用 LADDR 參數(shù)通過(guò)站硬件標(biāo)識(shí)符選擇 IO 設(shè)備或 DP 從站。
硬件標(biāo)識(shí)符位于:
IO 設(shè)備站或 DP 從站屬性的網(wǎng)絡(luò)視圖中。
或數(shù)據(jù)類型為 HW_DEVICE(對(duì)于 IO 設(shè)備)或 HW_DPSLAVE(對(duì)于 DP 從站)的所列系統(tǒng)常量的 PLC 變量表中。
參數(shù) MODE
使用 MODE 參數(shù)可讀取狀態(tài)信息。可讀取模塊的下列一條狀態(tài)信息:
1:模塊已組態(tài)
2:模塊故障
3:模塊禁用
4:模塊存在
5:模塊中存在故障。例如:
維護(hù)要求或建議
不可訪問(wèn)
不可用
出現(xiàn)錯(cuò)誤
參數(shù) STATE
STATE 參數(shù)輸出使用 MODE 參數(shù)選擇的模塊狀態(tài)。
如果使用 MODE 選擇的狀態(tài)適用于某個(gè)模塊,那么下列位將設(shè)置為“1”:
位 0 = 1:組顯示。至少一個(gè)模塊的第 n 位設(shè)置為“1”。
位 n = 1:使用 MODE 選擇的狀態(tài)將應(yīng)用到插槽 n-1(例如:位 3 對(duì)應(yīng)插槽 2)中的模塊。
使用“BOOL”或“Array of BOOL”作為數(shù)據(jù)類型:
如果要只輸出狀態(tài)信息的組顯示位,則可在 STATE 參數(shù)中使用 BOOL 數(shù)據(jù)類型。
要輸出所有模塊的狀態(tài)信息,請(qǐng)使用長(zhǎng)度為 128 位的 Array of BOOL。
示例:
在以下示例中,查詢 PROFINET IO 設(shè)備的模塊是否存在。該 IO 系統(tǒng)中包含兩個(gè) S7-1500 系列的 CPU?!癙LC_14”CPU 將包含程序,其中包括“ModuleStates”指令?!癙LC_13”CPU 將組態(tài)為一個(gè) IO 設(shè)備。
在“PLC_14”CPU 中:在全局?jǐn)?shù)據(jù)塊中創(chuàng)建三個(gè)變量和一個(gè)“mySTATE”結(jié)構(gòu)(數(shù)據(jù)類型為 Array of BOOL),用于存儲(chǔ)數(shù)據(jù)。
在“PLC_14”CPU 中:在循環(huán) OB 中調(diào)用該指令?;ミB該指令的參數(shù),如下所示:
在“PLC_13”CPU 中:使用 CPU 屬性將此 CPU“PLC_13”設(shè)為 IO 設(shè)備。
IO 系統(tǒng)顯示在網(wǎng)絡(luò)視圖中。
在“PLC_14”CPU 中:模塊位于 IO 設(shè)備的插槽 1 中。
在“PLC_14”CPU 中:通過(guò)參數(shù) LADDR(“myLADDR”)使“ModuleStates”指令了解 IO 設(shè)備的硬件標(biāo)識(shí)符。根據(jù)參數(shù) MODE(“myMODE”)的值“4”,在 IO 設(shè)備中搜索模塊。
在參數(shù) STATE(“mySTATE”)中,輸出模塊備是否存在(基于參數(shù) MODE )的值。位 0 作為組值,指示模塊存在。位 2 指示插槽 1 中存在模塊。
輸出參數(shù) RET_VAL(“returnValue”)用于指示處理無(wú)錯(cuò)誤。
示例
在一個(gè) IO 設(shè)備中包含 4 個(gè)模塊,分別位于插槽 1 到 4 中。其中,插槽 2 中的模塊故障。
對(duì)于 MODE = 2(故障/無(wú)故障)的 IO 設(shè)備,執(zhí)行“ModuleStates”指令。
在 STATE 參數(shù)中設(shè)置了下列位:
位 0 = 1:至少有一個(gè)模塊發(fā)生了故障。
位 1 = 0:插槽編號(hào) 0(由 IO 設(shè)備使用)
位 2 = 0:插槽編號(hào) 1 中的模塊未發(fā)生故障。
位 3 = 1:插槽編號(hào) 2 中的模塊發(fā)生了故障。
位 4 = 0:插槽編號(hào) 3 中的模塊未發(fā)生故障。
位 5 = 0:插槽編號(hào) 4 中的模塊未發(fā)生故障。
位 6 = 0:不相關(guān)
位 7 = 0:不相關(guān)
-
模塊
+關(guān)注
關(guān)注
7文章
2655瀏覽量
47292 -
硬件
+關(guān)注
關(guān)注
11文章
3211瀏覽量
66059 -
Profinet
+關(guān)注
關(guān)注
6文章
1035瀏覽量
23283
原文標(biāo)題:博途S7- 1500ModuleStates: 讀取模塊的模塊狀態(tài)信息
文章出處:【微信號(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)論