IO-Link 需要哪些軟體檔案?

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 文件,則不會顯示右側的子模組。


圖 2:SIG300 連接埠的實例化

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 距離感測器。


圖 3:配備 SICK W10 IO-Link 的距離感測器

如何理解 IODD 檔

雖然感測器內含微控制器,但 IODD 並不是寄存器對應表(Register Map)。

IODD 描述的是 IO-Link Master 與設備之間的介面,基於 IEC 61131-9 通訊。

例如:

  • 定義設備提供哪些參數
  • 描述資料如何透過 M12 介面傳輸

GSDML 與 IODD 的關係

這可以視為兩階段映射:

  1. PLC 使用 Tag 與記憶體
  2. GSDML 將 Tag 映射到 PNIO 子模組
  3. IO-Link Master 作為橋接(Ethernet ↔ IO-Link)
  4. IODD 將 IO-Link 資料映射到設備
  5. 最終由設備提供或接收資料

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 發生故障時:

設定檔可能難以取得或還原

因此,請提前確認所有設定與備份位置。