IO-Link
IO-Link 是一種用於裝置間溝通的標準化 IO 技術。IO-Link 主控裝置也是 EtherCAT 從屬裝置,有多個連接埠,每個連接埠連接到一個 IO-Link 裝置。連接埠設定依連接的裝置而定。IO-Link 主控裝置無法偵測連接埠連到什麼裝置,也無法得知連接埠是否有連接到裝置。
因為每個連接埠設定都不一樣,KINGSTAR 無法決定連接埠要用哪一種設定,因此,AddModuleConfiguration 可以在 KINGSTAR 啟動之前,將連接埠設定傳送給 KINGSTAR,當您呼叫 AddModuleConfiguration 時,裝置 ID 是連接埠號(從零開始編號),沒有收到任何設定的連接埠會停用,該連接埠也不會出現在 I/O 模組清單中。
若 IO-Link 連接埠在 KINGSTAR 啟動後開啟,它會分離所有模組的資料,讓每個 IO-Link 連接埠都會變成獨立的 I/O 模組。每個 IO-Link 裝置都有自己的物件字典,依您使用的 IO-Link 主控裝置而定,讀寫物件的方式也不同。
以下為所測試的三家廠牌的 IO-Link 主控裝置,以及它們處理物件的方式:
Beckhoff
使用 AoeSdo 命令讀寫 IO-Link 裝置中的物件。
AoeSdo 命令中的連接埠參數是 0x1000 + 連接埠號,連接埠號從零開始。例如,Beckhoff EL6224 的連接埠參數從 0x1000 到 0x1003,如果連接埠號是一,連接埠參數就是 0x1001 (1000 + 1)。
EC_Sdo 命令會自動使用 AoeSdo 命令並套用正確的連接埠參數。
Phoenix Contact
使用 AoeSdo 命令讀寫 IO-Link 裝置中的物件。
AoeSdo 命令中的連接埠參數是 0x1000 + 連接埠號,連接埠號從一開始。連接埠參數範圍從 0x1001 到 0x1008。
EC_Sdo 命令會自動使用 AoeSdo 命令並套用正確的連接埠參數。
Balluff
使用 CoeSdo 命令讀寫 IO-Link 裝置中的物件。
以下是 Balluff IO-Link 服務資料表,其中包含了您讀寫單一物件所需傳送的命令:
索引 | 子索引 | 名稱 | 資料類型 | 存取權限 | 說明 / 值 |
---|---|---|---|---|---|
0x40n0
n = 0..7 |
0x01 | Control | UINT8 | RW |
0:無控制 2:寫入 3:讀取 |
0x02 | 狀態 | UINT8 | RO |
0:無動作 1:忙碌 2:成功 4:錯誤 0xFF:失敗 |
|
0x03 | 索引 | UINT16 | RW | ||
0x04 | 子索引 | UINT8 | RW | ||
0x05 | 長度 | UINT8 | RW | ||
0x06 | 資料 | UINT8 | RW | ||
0x07 | 錯誤碼 | UINT16 | RO |
參見
RT/Win32 – KINGSTAR 總線 - 信箱
.NET API – Api.類別 - 信箱
.NET Class – ISlave 介面 - 方法