Skip to main content

IO-Link (Sensor Master) Driver

Overview

IO-Link (IEC 61131-9) is a single-wire, bidirectional serial communication standard that links sensors/actuators to a master. The master connects to upper-level systems (PLC, SCADA, Edge) via PROFINET / EtherNet/IP / Modbus TCP / OPC UA and forwards process data (PD), identification data (ISDU), and events.

ItemValue
opc_typeIOLINK
Implementation classplantpulse.driver.protocol.iolink.IOLink_Driver
Library(none — stub)
read⛔ stub (returns "")
write⛔ stub
SecurityNot applicable (authentication handled on the master side)
Current status: stub driver

IOLINK exists only as a formal stub. To actually acquire data, register the IO-Link master's upper-level interface (PROFINET / Modbus TCP / EIP / REST) using another PlantPulse driver.


Why a native implementation is difficult

IO-Link uses a 3-wire serial (24V / GND / C/Q) physical layer. Generating and decoding IO-Link signals directly on a PC requires a board with a dedicated IC (e.g. Maxim MAX14819), and ordinary industrial PCs / Linux servers have no such interface.

Every integration therefore goes through IO-Link master hardware.

Master categoryRepresentative productsUpper-level interface
8-port PROFINET masterifm AL1100/AL1xxx, Balluff BNI008xPROFINET, OPC UA
8-port EtherNet/IP masterBalluff BNI EIP, ifm AL13xxEtherNet/IP, REST
8-port Modbus TCP masterPepperl+Fuchs ICE3-8IOL, Murr Cube67Modbus TCP
Hybrid (multi-protocol)Turck TBEN-S2, Banner R90CPROFINET / EIP / Modbus TCP / REST

Alternative operating approaches

Nearly all commercial IO-Link masters expose themselves through industrial protocols that PlantPulse already supports.

Interface provided by the masterPlantPulse driver to usePage
PROFINET(PROFINET pilot — or enable the master's OPC UA concurrently)— / OPC-UA
EtherNet/IPEIPEIP
Modbus TCPMODBUSModbus
OPC UA Companion Spec for IO-LinkOPCUAOPC-UA
JSON RESTHTTPHTTP
OPC UA Companion Specification for IO-Link

Masters that support the OPC Foundation's IO-Link Companion Spec (recent ifm and Balluff firmware, for example) expose each port's PD/ISDU as OPC UA nodes. Register them directly with the PlantPulse OPCUA driver and you can poll per-port sensor values — the cleanest integration method.


Common per-port ISDU mapping (reference)

When using an IO-Link master's Modbus TCP interface, refer to the register map in the master's manual. The register layout differs for every master, so always read the vendor-specific manual.

DataTypical location (e.g. ifm AL1100)
Port 1 PD-InHolding Register 0x1000+
Port 2 PD-In0x1100+
Per-port statusBits in the 0x0000 area

The values above are examples; in actual use, follow the register map in the master's datasheet exactly.


Considerations for a future native implementation

OptionDependenciesDifficulty
Vendor SDK (ifm IODD finder, Balluff IO-Link Device Tool)Windows only, no Java supportHigh
IODD parser + master REST combinationXML IODD parsing + master REST combinationMedium
OPC UA companion spec wrapperAlready solved by the OPCUA driverLow
Conclusion

For IO-Link, integration through master hardware is inherently the standard model. From the PlantPulse perspective there is little need for a new native driver: a combination of the OPCUA / Modbus / EIP / HTTP drivers covers virtually every master.


stub registration (test only)

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