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": []
}'