“ModuleStates”指令可用來讀取 PROFINET IO 設備或 PROFIBUS DP 從站的模塊狀態信息。
輸出的布爾值指示所選狀態適用于的模塊。例如,可以讀取 PROFINET IO 設備中當前禁用的模塊。
此信息的顯示還依賴于要讀取的狀態信息是否適用于至少一個模塊。
可在循環 OB 以及中斷 OB(例如,OB82 - 診斷中斷)中調用此指令。
LADDR | Input | HW_DEVICE | 站的硬件標識符 |
MODE | Input | UINT | 選擇要讀取的模塊狀態信息 |
RET_VAL | Return | INT | 指令的狀態 |
STATE | InOut | VARIANT | 模塊狀態緩沖區 |
參數 LADDR
使用 LADDR 參數通過站硬件標識符選擇 IO 設備或 DP 從站。
硬件標識符位于:
IO 設備站或 DP 從站屬性的網絡視圖中。
或數據類型為 HW_DEVICE(對于 IO 設備)或 HW_DPSLAVE(對于 DP 從站)的所列系統常量的 PLC 變量表中。
參數 MODE
使用 MODE 參數可讀取狀態信息。可讀取模塊的下列一條狀態信息:
1:模塊已組態
2:模塊故障
3:模塊禁用
4:模塊存在
5:模塊中存在故障。例如:
維護要求或建議
不可訪問
不可用
出現錯誤
參數 STATE
STATE 參數輸出使用 MODE 參數選擇的模塊狀態。
如果使用 MODE 選擇的狀態適用于某個模塊,那么下列位將設置為“1”:
位 0 = 1:組顯示。至少一個模塊的第 n 位設置為“1”。
位 n = 1:使用 MODE 選擇的狀態將應用到插槽 n-1(例如:位 3 對應插槽 2)中的模塊。
使用“BOOL”或“Array of BOOL”作為數據類型:
如果要只輸出狀態信息的組顯示位,則可在 STATE 參數中使用 BOOL 數據類型。
要輸出所有模塊的狀態信息,請使用長度為 128 位的 Array of BOOL。
示例:
在以下示例中,查詢 PROFINET IO 設備的模塊是否存在。該 IO 系統中包含兩個 S7-1500 系列的 CPU。“PLC_14”CPU 將包含程序,其中包括“ModuleStates”指令。“PLC_13”CPU 將組態為一個 IO 設備。
在“PLC_14”CPU 中:在全局數據塊中創建三個變量和一個“mySTATE”結構(數據類型為 Array of BOOL),用于存儲數據。
在“PLC_14”CPU 中:在循環 OB 中調用該指令。互連該指令的參數,如下所示:
在“PLC_13”CPU 中:使用 CPU 屬性將此 CPU“PLC_13”設為 IO 設備。
IO 系統顯示在網絡視圖中。
在“PLC_14”CPU 中:模塊位于 IO 設備的插槽 1 中。
在“PLC_14”CPU 中:通過參數 LADDR(“myLADDR”)使“ModuleStates”指令了解 IO 設備的硬件標識符。根據參數 MODE(“myMODE”)的值“4”,在 IO 設備中搜索模塊。
在參數 STATE(“mySTATE”)中,輸出模塊備是否存在(基于參數 MODE )的值。位 0 作為組值,指示模塊存在。位 2 指示插槽 1 中存在模塊。
輸出參數 RET_VAL(“returnValue”)用于指示處理無錯誤。
示例
在一個 IO 設備中包含 4 個模塊,分別位于插槽 1 到 4 中。其中,插槽 2 中的模塊故障。
對于 MODE = 2(故障/無故障)的 IO 設備,執行“ModuleStates”指令。
在 STATE 參數中設置了下列位:
位 0 = 1:至少有一個模塊發生了故障。
位 1 = 0:插槽編號 0(由 IO 設備使用)
位 2 = 0:插槽編號 1 中的模塊未發生故障。
位 3 = 1:插槽編號 2 中的模塊發生了故障。
位 4 = 0:插槽編號 3 中的模塊未發生故障。
位 5 = 0:插槽編號 4 中的模塊未發生故障。
位 6 = 0:不相關
位 7 = 0:不相關
-
模塊
+關注
關注
7文章
2767瀏覽量
48702 -
硬件
+關注
關注
11文章
3434瀏覽量
66937 -
Profinet
+關注
關注
6文章
1360瀏覽量
24501
原文標題:博途S7- 1500ModuleStates: 讀取模塊的模塊狀態信息
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
profinet遠程分布式IO模塊國產型與西門子1200通訊方法

支持掉線自動報警Profinet遠程分布式IO模塊分享
在線為PROFINET IO設備分配名稱
使用Get_Name指令讀取PROFINET IO設備名稱
MELSEC iQ R PROFINET IO設備模塊用戶手冊(入門篇)

PROFINET IO中的診斷機制分析
使用1200-GetStationInfo讀取PROFINET IO設備的IP地址
PROFINET IO控制器無法直接進行PROFINET IO通信
如何讀取 ET 200SP PROFINET IO 設備的站名稱

關于Profinet遠程IO模塊的超詳細講解

評論