IO-Link devices, such as a PROFINET modules or devices with the IO-Link Master Function (IOLM) and connected IO-Link Devices (IOLDs, for example sensors) can generally be used without additional measures.
For this purpose, PROFINET defines the IO-Link profile, which describes the mapping of IO-Link objects and functions to PROFINET submodules.
-
I/O data of the IO-Link devices is mapped to the I/O data of the corresponding proxy submodules.
-
Acyclic PROFINET services are used to send IO-Link commands and transfer parameters (see function blocks in ProfinetCommon/IO-Link).
-
IO-Link events and diagnostics are mapped to PROFINET alarms and diagnostic data.
Manufacturer-specific tools (PDCT – Port and Device Configuration Tool) have to be used then to perform the often very complicated parameterization of IO-Link devices. CODESYS also provides a separate licensed IO-Link plug-in. This plug-in contains configurators that use the IO-Link device descriptions (IODD) to enable convenient parameterization. In addition, the generic I/O data of the IO-Link devices (transmitted as a byte stream) is interpreted using the description data from the IODD. Another advantage is that IO-Link device parameters can be backed up in the CODESYS project.
To configure an IO-Link device by means of the CODESYS IO-Link plug in, the IODD must be imported and the generated IO-Link device can be inserted below the IOLD proxy submodule in the device tree.

When an IODD device is added below an IOLD proxy submodule, the “IO-Link Integration” tab is displayed for this object. Additional settings are available on this tab.
|
“Download IODD-IO configuration” |
An additional I/O mapping that provides an I/O mapping enriched with information from the IODD instead of the generic byte stream. The generic inputs of the PROFINET submodule remain available. Any existing inputs of the PROFINET submodule are no longer evaluated for consistency reasons. |
|
“Adapt provider ID and device ID” |
|
: The IODD device is used not only for configuration (IO-Link parameter) but is also
downloaded to the controller.