IO-Link 系統中的三種類型的檔案
在 IO-Link 系統中,主要會涉及三種類型的檔案:
- GSDML 檔(用於 IO-Link Master)
若沒有此檔案,從 PLC 的角度來看,IO-Link Master 並不存在。 - IODD 檔(用於個別現場設備)
若缺少這些檔案,IO-Link Master 只會變成一個昂貴的數位 I/O 裝置,完全沒有 IO-Link 功能。 - PLC 的裝置專用 Function Block(選用)
若沒有這些,將需要進行大量的程式撰寫與除錯。
重點摘要
- IO-Link Master 是一個雙向橋接器,一側使用 PROFINET,另一側使用 IO-Link。
- PLC 並不直接看到 Port,而是看到 PNIO 子模組(submodules)。
- IO-Link Master 並不直接看到硬體,而是看到 IO-Link 資料。
- IO-Link 的設定可能分散在 PLC 與 IO-Link Master 之間。
圖 1:SICK SIG300 IO-Link Master
GSDML 檔的用途
-
GSDML 檔會被 TIA Portal 讀取,並作為一個操作介面,讓使用者用來設定 IO-Link Master。
-
該檔案由 IO-Link Master 製造商提供,例如 SICK 提供 SIG300 的 GSDML 檔。
技術提示:
嚴格來說,GSDML 並不屬於 IEC 61131-9 IO-Link 標準的一部分。換句話說,PLC 並不直接與 IO-Link 通訊。例如 PLC 是透過 PROFINET(IEC 61158 與 IEC 61784)與 IO-Link Master 通訊。
如何理解 GSDML 檔
GSDML 檔描述了提供給 PLC 使用的建構單元(模組與子模組)。這代表 OEM 定義了 PLC 可以如何操作 IO-Link Master 及其 Port。
例如在 Port S4 安裝一個 IO-Link 距離感測器時:
- 必須將該 Port 設定為符合感測器需求
- 並依據 OEM 資料設定記憶體需求(例如 32I / 32O)
- TIA Portal 會自動分配記憶體位置
- 工程師需將這些位置對應到 PLC Tag
機架(Rack)與插槽(Slot)類比
可以將 IO-Link Master 這樣理解:
- IO-Link Master 本體 = 機架(Rack)
- 每個 M12 Port = 插槽(Slot)
- 每個 Port 是等待在 PLC 中被啟用的軟體介面
- 未啟用的 Port 預設為停用(如同實體卡未插入)
技術提示:
若在 TIA Portal 環境中理解 GSDML,會更容易掌握 IO-Link 的概念。否則容易混淆硬體與軟體的角色。
圖 2 顯示了 SIG300 的配置。右側列出了 SIG300 向 PLC 開放的選項。設備概覽描述了 SIG300 的實際介面。類型列顯示了實際的連接埠配置,例如數位輸出或 IO-Link 32I/32O。如果沒有 GSDML 文件,則不會顯示右側的子模組。
Cyclic 與 Acyclic 通訊說明
PLC 與 IO-Link 裝置之間有兩種通訊方式:
- Cyclic(循環通訊):
- 屬於 PROFINET I/O 的自動更新
- 對程式設計者來說與一般 I/O 無異
- 設定一次後即可直接使用 Tag
- 更新時間可調整以平衡即時性與頻寬
- Acyclic(非循環通訊):
- 仍屬 PNIO,但為按需觸發
- 可用於啟動程序或特定時刻操作
技術提示:
PNIO 更新並不是由主程式 OB1 控制,PNIO 可能在 OB1 執行期間進行多次更新。
IODD 檔的用途
IODD 檔會匯入 IO-Link Master,作為描述連接設備的「說明文件」。
這些檔案可以:
- 從設備本身讀取
- 從 OEM 網站下載
- 或從 IO-Link 官方取得
IODD 檔由設備製造商提供,例如 SICK W10 距離感測器。
如何理解 IODD 檔
雖然感測器內含微控制器,但 IODD 並不是寄存器對應表(Register Map)。
IODD 描述的是 IO-Link Master 與設備之間的介面,基於 IEC 61131-9 通訊。
例如:
- 定義設備提供哪些參數
- 描述資料如何透過 M12 介面傳輸
GSDML 與 IODD 的關係
這可以視為兩階段映射:
- PLC 使用 Tag 與記憶體
- GSDML 將 Tag 映射到 PNIO 子模組
- IO-Link Master 作為橋接(Ethernet ↔ IO-Link)
- IODD 將 IO-Link 資料映射到設備
- 最終由設備提供或接收資料
IODD 檔內容
若沒有 IODD,IO-Link Master 會退化成數位 I/O 模組。
IODD 檔讓 IO-Link 功能得以啟用,並且是以「每個 Port 對應單一設備」的方式運作。
例如:
- Master 透過 IODD 得知「Distance to Object」欄位存在
- 從感測器取得數據
- 再提供給 PLC 透過 PNIO 使用
參考圖 4 中「Distance to Object」欄位(中間列的最後一個欄位)。 IODD 檔案有效地告知 SIG300 該欄位的存在。 SIG300 隨後從感測器獲取資料並填充該欄位。 SIG300 也透過與連接埠 4 關聯的 PNIO 子模組將此資料提供給 PLC。
技術提示: 請查閱現場設備手冊以確定循環資料的記憶體大小。這條關鍵的數據線連接 PLC、IO-Link 主站和現場設備,確保數據能夠快速完整地到達現場設備供 PLC 使用,反之亦然。
圖 4:來自 SICK IODD Viewer 的 W10 距離感測器的數據
IODD 檔範例
<DeviceIdentity deviceId="8389422" vendorId="26" vendorName="SICK AG">
...
...
<DeviceVariant deviceIcon="SICK-W10-icon.png" deviceSymbol="SICK-W10-pic.png" productId="W10WM11">
技術提示:
IODD 是以 IO-Link Master 為中心的描述方式,定義設備如何被 Master 使用,並轉換為 PLC 可用的資料。
OEM 提供的 PLC Library
許多 OEM 會提供 PLC Library(包含 Function Block 與資料結構)以簡化開發。
這些 Library:
- 可快速設定設備
- 減少程式複雜度
但並非所有應用都必須使用。
<Text id="TI_85" value="Physical input / output type configuration pin2"/>
<Text id="TI_86" value="PNP"/>
<Text id="TI_87" value="NPN"/>
<Text id="TI_88" value="Push/Pull"/>
使用 SICK 到 PLC 的庫來設定這些記憶體位址是理想之選。或者,也可以使用 SICK IO-Link Master 圖形工具來設定(圖 4)。然而,這需要格外注意,因為此時「IO-Link」的真實資料分散在 PLC 和 IO-Link Master 之間。理想情況下,程序應該保存在 PLC 中,作為單一控制點。這種統一的真實資料也簡化了版本控制,因為只需要一個備份,而無需分散權限。
技術提示: 即使 OEM 提供的庫出現在 OB1 或其他模組中,它們可能並非無環的。為簡單起見,我們可以使用 library 來設定或取得 圖 2 中標識的 I 和 Q 位址的資料。
結語
需特別注意:
IO-Link 的設定可能分散在 PLC 與 IO-Link Master 之間
當 IO-Link Master 發生故障時:
設定檔可能難以取得或還原
因此,請提前確認所有設定與備份位置。



