APIs, concepts, guides, and more
IO Link

Configure IO Link devices by using an Mdp.xml file to manage sub-modules, translating network information into usable EtherCAT data for precise device configuration.

Some EtherCAT devices are different based on which sub-modules are attached. We cannot treat all such devices the same. You have to go through extra steps to configure them for any given setup.

🔹 Setup

We are going to start by showing a final product which you can refer to as we explain each part. Here is the xml which can be looked at while reading the details below:

Sample XML file you will use as your seed:

<Mdp xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Topology />
<Scan deviceType="0x1389" start="0xF050" delta="0x0" depth="8" primary="0x10" />
<Scan deviceType="0x184C1389" start="0x9000" delta="0x10" depth="8" primary="4" secondary="5" />
<Item key="00000000" moduleIdent="0x1000">Port Disabled</Item>
<Item key="03e30136" moduleIdent="0x1106">AL2340</Item>
<Default moduleIdent="0x1312">Default Entry</Default>

In order to use IO Link you need to have an Mdp.xml in our RapidCode folder. Without this file, IO Link nodes are treated like traditional nodes and will not pick up details about what is actually connected to the IO Link node. This file contains different sections that will do several things for us:

  • The <Topology> section specifies IO Link sub-network details (such as an IO block attached to an IFM node). When starting the network in RapidSetup, we will scan the IO Link devices.
  • The <Location> <Scan> section specifies information about where to read IO Link details. This should largely be ignored. It lets RapidSetup know where to collect information about IO Link devices. Don't edit this without getting us involved.
  • The <LookupTable> section will translate information provided by the network into a form usable by EtherCAT. See below for details on the process by which you add entries.
  • The <Default> section sets a default behavior. When you have a device on the IO Link network that isn't in the <LookupTable> section, the moduleIdent and name you place here will be used until you update the LookupTable and rescan.

Adding to the <LookupTable>

Fundamentally the goal here is to translate information returned by the network into moduleIdents that exist in the ESI files which can be used by the EtherCAT network. This is the most manual part of the process but only needs to be done once per new device you put on the IO Link network.

If you are using an IFM node with 3 different types of submodules, then you will have to add 1 entry for each of the 3. Here is a sample entry: <Item key="03e30136" moduleIdent="0x1106">AL2340</Item>

RapidSetup displays details about the node such as key "03e30136". We need to determine what the correct moduleIdent is for this device. You can do this by using IO-Link IODDfinder website. Here, you enter whatever you have hooked up. For example, when searching for the node type "AL2340" it shows the information in the images below.


Click on the IODDviewer tab. It shows the node has 8 bytes of input data and 0 bytes (where n/a = 0) of output data.


Okay, now for the annoying part. We need to figure out what moduleIdent that matches the IO Link node you have. Suppose you are using an IFM device. It keeps its module definitions in the ifm_AL1x3x_Modules_v.xml file (check the RSI\x.x.x\ESI folder). Looking through that xml file, you will hopefully find the following entry:

<Type ModuleIdent="&#35;x1106">IOL_In_8Byte</Type>
<Name>IO-Link Input 08 Byte Process Data</Name>

This module contains 8 bytes of input data which is what we are looking for based on the IODDviewer tab details.

We then build our LookupTable entry:

<Item key="03e30136" moduleIdent="0x1106">AL2340</Item>

  • The key provided by RapidSetup: 03e30136
  • The moduleIdent found in the vendor xml file: 0x1106
  • A string descriptor can be the AL2340 or whatever you like. This could be the direct name or its use in your system.

It shows you how to find the moduleIdent with the key, but where does the key come from? RapidSetup will provide it once the device is connected to your network.

If it doesn't work, please contact us. There is an involved process that lets you select a different moduleIdent, but I don't think it is needed.

Using RapidSetup with IO Link

Most things should happen under the hood. When you start the network with an IO Link device we will scan node details. It will then compare the active network configuration with the saved Mdp.xml <Topology> configuration. If they are the same, everything is happy and you will get no notification or prompt for any action. If they are different, a dialog will open up and you will then need to decide if you want to use the active network configuration or the saved configuration.

The dialog option Yes will replace the saved topology with the active network one. It will also generate a new ENI file to reflect what you have on your network.

Suppose you disconnect a non-critical device for maintenance. This is an example when you would ignore the change and keep your saved mdp topology. This allows you to keep going with the existing system without the need to generate a new ENI file.
Suppose you have a new device added to the network or you are doing first-time setup. Here, you want to generate a new topology file. RapidSetup will notify you in the error window for every device found on the network that is not contained in the LookupTable. It will give you a seed string from which you will follow the above process to select the right moduleIdent and pick whatever name you think is appropriate. It uses the default entry until it exists in the LookupTable.
RapidSetup only shows Mdp details if you are in expert mode. Most customers don't need to see it.

If you left click Mdp File label, it will open the file for editing.

If you right click Mdp File label, you will see the option to rescan your network. The Tools menu lets you do this too. You could also just click the "shutdown network" button and start again as we do this every time we start the network.

Deactivated Warning!\ For some reason ifm devices once configured to Deactivated will no longer scan that slot for changes in the future. This behavior seems designed to frustrate customers. If you can't detect a device you know you have the network, you can fix this by intentionally putting any other valid moduleIdent in the Topology structure and generating an ENI file. Even if wrong, it will then scan the slot and give the a key which can be used to generate the right entry. {% endhint %}

User task list

  • Copy the seed xml from the start of this guide. Save it as Mdp.xml in your RapidCode folder.
  • RapidSetup will notify you when a change in IO Link network is detected on network start.
  • RapidSetup will let you know when you need to add a <LookupTable> entry to the Mdp.xml file.
  • Restart the network once.\