IO-Link (センサマスタ) ドライバ
概要
IO-Link (IEC 61131-9) は、センサ / アクチュエータ ↔ master 間を接続する単線双方向シリアル通信規格です。 master が PROFINET / EtherNet/IP / Modbus TCP / OPC UA などで上位システム (PLC、SCADA、Edge) と接続し、 プロセスデータ (PD)、識別データ (ISDU)、イベントを伝達します。
| 項目 | 値 |
|---|---|
opc_type | IOLINK |
| 実装クラス | plantpulse.driver.protocol.iolink.IOLink_Driver |
| ライブラリ | (なし — stub) |
| read | ⛔ stub ("" を返却) |
| write | ⛔ stub |
| セキュリティ | 該当なし (master 側で認証を適用) |
IOLINK は形式上の stub のみが存在します。実際にデータを取得するには、IO-Link master の上位インターフェース
(PROFINET / Modbus TCP / EIP / REST) を PlantPulse の他のドライバとして登録してください。
なぜ native 実装が難しいのか
IO-Link は 3線式シリアル (24V / GND / C/Q) の物理層を使用します。 PC で直接 IO-Link 信号を生成/デコードするには専用 IC (例: Maxim MAX14819) を搭載した ボードが必要であり、一般的な産業用 PC / Linux サーバにはそのようなインターフェースがありません。
したがって、すべての統合は必ず IO-Link master ハードウェア を経由します。
| マスタカテゴリ | 代表製品 | 上位インターフェース |
|---|---|---|
| 8 ポート PROFINET master | ifm AL1100/AL1xxx, Balluff BNI008x | PROFINET, OPC UA |
| 8 ポート EtherNet/IP master | Balluff BNI EIP, ifm AL13xx | EtherNet/IP, REST |
| 8 ポート Modbus TCP master | Pepperl+Fuchs ICE3-8IOL, Murr Cube67 | Modbus TCP |
| Hybrid (multi-protocol) | Turck TBEN-S2, Banner R90C | PROFINET / EIP / Modbus TCP / REST |
代替の運用方法
市販の IO-Link master はほぼすべて、PlantPulse が既に対応している産業プロトコルとして公開されます。
| Master が提供するインターフェース | 使用する PlantPulse ドライバ | ページ |
|---|---|---|
| PROFINET | (PROFINET 試験運用 — または master の OPC UA を同時に有効化) | — / OPC-UA |
| EtherNet/IP | EIP | EIP |
| Modbus TCP | MODBUS | Modbus |
| OPC UA Companion Spec for IO-Link | OPCUA | OPC-UA |
| JSON REST | HTTP | HTTP |
推奨構成例 (ifm AL1100 / Balluff BNI)
OPC Foundation の IO-Link Companion Spec に対応した master (ifm、Balluff の最新ファームウェアなど) は、 各ポートの PD/ISDU を OPC UA ノードとして表現します。PlantPulse の OPCUA ドライバでそのまま登録すれば ポートごとのセンサ値をポーリングできるため、最もすっきりとした統合方式です。
よく使う ISDU のポート別マッピング (参考)
IO-Link master の Modbus TCP インターフェースを使用する場合は、master マニュアルの register map を参照します。 master ごとに register layout が異なるため、ベンダー別マニュアルの熟読が必須 です。
| データ | 一般的な位置 (例: ifm AL1100) |
|---|---|
| ポート 1 PD-In | Holding Register 0x1000+ |
| ポート 2 PD-In | 0x1100+ |
| ポート別 status | 0x0000 領域の bit |
上記の値は例示であり、実際の使用時は master のデータシートの register map をそのまま使用してください。
今後 native 実装を行う場合の考慮事項
| オプション | 依存関係 | 難易度 |
|---|---|---|
| ベンダー SDK (ifm IODD finder, Balluff IO-Link Device Tool) | Windows 専用、Java 非対応 | 高 |
| IODD パーサ + master REST の組み合わせ | XML IODD パース + master REST の組み合わせ | 中 |
| OPC UA companion spec wrapper | 既に OPCUA ドライバで解決済み | 低 |
IO-Link は本質的に master ハードウェアを介した統合 が標準モデルです。 PlantPulse の立場では native ドライバを新規に作る必要性は低く、OPCUA / Modbus / EIP / HTTP ドライバの組み合わせでほぼすべての master をカバーできます。
stub 登録 (テスト専用)
curl -X POST http://<edge-host>/api/v1/opc \
-H "Content-Type: application/json" \
-d '{
"opc_id": "OPC_IOLINK_STUB",
"opc_type": "IOLINK",
"opc_name": "IO-Link stub",
"opc_agent_ip": "192.168.0.0",
"opc_agent_port": "0",
"site_id": "SITE_00001",
"auto_collect": false,
"timecycle": 5000,
"tag_list": []
}'