# IO-Link 需要哪些軟體檔案？

**URL:** <https://forum.digikey.com/t/io-link/69221>\
**Category:** 產品技術提示\
**Tags:** controllers-programmable-plc-pac, faqs, tech-tips\
**Created:** [May 28, 2026, 8:24am UTC](https://forum.digikey.com/t/io-link/69221 "2026-05-28T08:24:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Barley\_Li](https://sea2.discourse-cdn.com/digikey/user_avatar/forum.digikey.com/barley_li/32/558_2.png) [@Barley\_Li](https://forum.digikey.com/u/Barley_Li)\
**Post date:** [May 28, 2026, 8:24am UTC](https://forum.digikey.com/t/io-link/69221/1 "2026-05-28T08:24:02Z")

</div>

## IO-Link 系統中的三種類型的檔案

在 IO-Link 系統中，主要會涉及三種類型的檔案：

- **GSDML 檔（用於 IO-Link Master）**  
若沒有此檔案，從 PLC 的角度來看，IO-Link Master 並不存在。
- **IODD 檔（用於個別現場設備）**  
若缺少這些檔案，IO-Link Master 只會變成一個昂貴的數位 I/O 裝置，完全沒有 IO-Link 功能。
- **[PLC](https://www.digikey.tw/zh/products/filter/%E6%8E%A7%E5%88%B6%E5%99%A8/%E5%8F%AF%E7%B7%A8%E7%A8%8B-plc-pac/814) 的裝置專用 Function Block（選用）**  
若沒有這些，將需要進行大量的程式撰寫與除錯。

## 重點摘要

- IO-Link Master 是一個雙向橋接器，一側使用 PROFINET，另一側使用 IO-Link。
- PLC 並不直接看到 Port，而是看到 PNIO 子模組（submodules）。
- IO-Link Master 並不直接看到硬體，而是看到 IO-Link 資料。
- IO-Link 的設定可能分散在 PLC 與 IO-Link Master 之間。

 ![image](https://global.discourse-cdn.com/digikey/original/3X/1/9/19d4310d6932b0b884529c11ef9df453d791e723.jpeg)

圖 1：[SICK SIG300](https://www.digikey.tw/zh/products/filter/%E6%84%9F%E6%B8%AC%E5%99%A8%E4%BB%8B%E9%9D%A2%E6%8E%A5%E9%9D%A2%E5%A1%8A/951?s=N4IgjCBcoLQCxVAYygMwIYBsDOBTANCAG4B2aWehA9lANrhwDMAbIwOwgC6hADgC5QQIAL6igA) 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 文件，則不會顯示右側的子模組。

 ![image](https://global.discourse-cdn.com/digikey/original/3X/d/6/d6e591b9d69634e572243db4e144e015febc92b0.jpeg)  
圖 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 網站下載
- 或從 I[O-Link 官方](https://io-link.com/)取得

IODD 檔由設備製造商提供，例如 [SICK W10](https://www.digikey.tw/zh/products/detail/sick-inc/1133546/22679769) 距離感測器。

 ![image](https://global.discourse-cdn.com/digikey/original/3X/3/3/332f11b46f09801b4c810d6c99f4ccfa262c7629.jpeg)  
圖 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 使用，反之亦然。

 ![image](https://global.discourse-cdn.com/digikey/original/3X/4/6/46df1294123516dc99c3403081014adb8e2fe9c7.png)

圖 4：來自 SICK IODD Viewer 的 W10 距離感測器的數據

## IODD 檔範例

```auto
<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：

- 可快速設定設備
- 減少程式複雜度

但並非所有應用都必須使用。

```auto
<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 發生故障時：

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

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