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 總線 - 信箱

AoeReadCommand

AoeReadSdoObject

AoeReadWriteCommand

AoeWriteCommand

AoeWriteControlCommand

AoeWriteSdoObject

CoeReadSdoEntryDescription

CoeReadSdoObject

CoeReadSdoObjectDescription

CoeReadSdoODList

CoeWriteSdoObject

.NET API – Api.類別 - 信箱

AoeReadCommand

AoeReadSdoObject

AoeReadWriteCommand

AoeWriteCommand

AoeWriteControlCommand

AoeWriteSdoObject

CoeReadSdoEntryDescription

CoeReadSdoObject

CoeReadSdoObjectDescription

CoeReadSdoODList

CoeWriteSdoObject

.NET Class – ISlave 介面 - 方法

AoeReadCommand

AoeReadSdoObject

AoeReadWriteCommand

AoeWriteCommand

AoeWriteControlCommand

AoeWriteSdoObject

CoeReadSdoEntryDescription

CoeReadSdoObject

CoeReadSdoObjectDescription

CoeReadSdoODList

CoeWriteSdoObject