說明
“GET_NAME”指令用于讀取 IO 設備或 DP 從站的名稱。該名稱將顯示在網絡視圖和 IO 設備或 DP 從站的屬性中。在以下截圖中,以 IO 設備為例。
通過 PROFINET IO 系統或 DP 主站的硬件標識符(LADDR 參數中)以及 IO 設備的設備編號或 DP 從站的 PROFIBUS 地址(STATION_NR 參數),可選擇該 IO 設備或 DP 從站。
指令成功執行后,IO 設備或 DP 從站的名稱將寫入由 DATA 參數尋址的區域中。
所讀取的名稱取決于 IO 設備的類型:
對于 DP 從站或 IO 設備,將輸出前端模塊的名稱。
對于 HMI 面板,將輸出接口名稱。
對于 PC 站,將輸出接口模塊的名稱。
對于 GSD 設備,將顯示設備接入點 (DAP) 的名稱(接口或前端模塊的名稱)。
并通過參數 LEN 輸出該名稱的長度。如果該名稱的長度大于 DATA 參數指定的區域,則將只寫入尋址區域的最大長度的部分名稱。
該名稱的最大長度為 128 個字符。
說明 讀取的 CPU 的名稱 (V 1.1) 如果參數 LADDR 和 STATION_NR 的值均為“0”,則該指令將輸出 CPU 的名稱。 如果 R/H 系統處于 RUN-Redundant 模式,則該指令將返回主 CPU 的名稱。 |
參數
下表列出了“GET_NAME”指令的參數:
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
LADDR | Input | HW_IOSYSTEM | I、Q、M、D、L 或常量 | PROFINET IO 或 DP 主站系統的硬件標識符該值來自系統常量或 PROFINET IO 系統/ DP 主站系統的屬性。 |
STATION_NR | Input | UINT | I、Q、M、D、L 或常量 | PROFINET IO 設備的設備編號或 DP 從站的 PROFIBUS 地址。該編號將顯示在網絡視圖和 IO 設備或 DP 從站的屬性中。 |
DATA | InOut | VARIANT | I、Q、M、D、L | 指向該名稱待寫入的目標區域的指針。 |
DONE | Output | BOOL | I、Q、M、D、L | 指令執行成功。IO 設備或 DP 從站的名稱已傳送到 DATA 參數處指定的區域內。 |
BUSY | Output | BOOL | I、Q、M、D、L |
狀態參數 0:指令執行完成。 1:指令的執行尚未完成。 |
ERROR | Output | BOOL | I、Q、M、D、L |
狀態參數 0:無錯誤。 1:指令執行過程中發生錯誤。 詳細信息將在 STATUS 參數中輸出。 |
LEN | Output | DINT | I、Q、M、D、L | IO 設備或 DP 從站的名稱長度(字符數)。 |
STATUS | Output | WORD | I、Q、M、D、L |
狀態參數 該參數設置僅維持一次調用所持續的時間。因此,要顯示該狀態,需將 STATUS 復制到一個空閑數據區內。 |
有關有效數據類型的更多信息,請參見“有效數據類型概述”。
參數 STATUS
錯誤代碼* (W#16#...) | 說明 |
---|---|
0 | 無錯誤 |
7001 | 第一次調用“GET_NAME”異步指令。指令的執行尚未完成 (BUSY = 1,DONE = 0)。 |
7002 | 另一次調用“GET_NAME”異步指令。指令的執行尚未完成 (BUSY = 1,DONE = 0)。 |
8090 | 在 LADDR 參數中指定的硬件標識符在項目中不存在。 |
8092 | LADDR 參數的值無法尋址 PROFINET IO 系統或 DP 主站系統。 |
8093 | 指令不支持 DATA 參數中的數據類型。 |
8095 |
所選的 PROFINET IO 系統中沒有該設備編號(STATION_NR 參數),或者找不到 IO 設備。 在所選的 DP 主站系統中,PROFIBUS 地址(STATION_NR 參數)不存在。 |
80B1 | 所用 CPU 不支持該指令。 |
80C3 | 臨時資源錯誤:CPU 當前正在處理的同步塊調用的最大數量。僅當至少一個塊調用執行完成后,才能執行“GET_NAME”。 |
8852 |
DATA 參數中指定的區域過短,無法寫入 IO 設備或 DP 從站的完整名稱。只能寫入最大允許長度的部分名稱。 要讀取完整名稱,需在 DATA 參數處指定一個較大的數據區域。此區域的大小必須至少與 LEN 參數處指定的字符數相一致。 |
* 在程序編輯器中,錯誤代碼將顯示為整數或十六進制值。有關切換顯示格式的信息,請參見“另請參見”。 |
示例
以下舉例說明了如何讀取 HMI 面板的站名稱。
HMI 面板的組態:
創建以下變量,在全局數據塊中進行數據存儲:
為指令“GET_NAME”分配參數:
執行指令:
在網絡視圖中創建站名稱為“HMI_IO-Device”的 HMI 面板,并分配給相同 CPU 的 PROFINET IO 系統。
在硬件配置的屬性中激活該 HMI 面板的操作模式“IO 設備”,并將 CPU 指定為 IO 控制器。
在“以太網地址”(Ethernet addresses) 下的屬性內,設置設備編號“20”
在輸入參數 LADDR 中,輸入 IO 系統(262)的硬件標識符。
在輸入參數 STATION_NR 中,輸入 HMI 面板(2)的設備編號。
互連“GET_NAME”指令的其它數,如下所示:
執行該指令之后,HMI 面板 (HMI_IO-Device) 的站名稱將保存到參數 DATA(“moduleName”)中。
并在參數 LEN 中輸出該名稱的字符個數 (13)。
成功讀取 IO 設備后,如果 GET_NAME 的執行未停止,則輸出參數BUSY(“busy”)將顯示值“TRUE”;輸出參數 STATUS(“status”)將顯示值“16#7002”。
-
西門子
+關注
關注
94文章
3009瀏覽量
115664 -
硬件
+關注
關注
11文章
3260瀏覽量
66131 -
IO設備
+關注
關注
0文章
21瀏覽量
7368
原文標題:西門子-博圖 :GET_NAME:讀取 IO 設備或 DP 從站的名稱
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論