IO-Link
IO-Link is a standardized I/O technology for device communication. The IO-Link master, which is also an EtherCAT slave, has several ports. Each port connects to an IO-Link device. The settings for a port depend on what device it connects to. The IO-Link master can't detect what device the port is connecting to, nor does it know the port is connected to a device.
Because each port's settings are different, KINGSTAR can't determine which settings the port needs to use. In this case, AddModuleConfiguration can be used to send the port settings to KINGSTAR before KINGSTAR is started. When you call AddModuleConfiguration, device ID is the port number, starting from zero. Ports that did not receive any configuration will be disabled and will not appear in the I/O module list.
If the IO-Link ports are opened after KINGSTAR is started, it will separate every module's data. Each IO-Link port becomes an individual I/O module. Every IO-Link device has its own object dictionary. Depending on the IO-Link master you use, the way to read and write objects is different.
Listed below are the IO-Link master brands we have tested, along with a description of how each processes objects:
Beckhoff
Uses AoeSdo commands to read and write objects in the IO-Link device.
The port parameter in the AoeSdo command is 0x1000 + port number. The port number starts from zero. For example, Beckhoff EL6224's port parameter ranges from 0x1000 to 0x1003. If the port number is one, the port parameter is 0x1001 (1000 + 1).
The EC_ commands automatically use the AoeSdo commands and apply the correct port parameter.
Phoenix Contact
Uses AoeSdo commands to read and write objects in the IO-Link device.
The port parameter in the AoeSdo command is 0x1000 + port number. The port number starts from one. The port parameter ranges from 0x1001 to 0x1008.
The EC_ commands automatically use the AoeSdo commands and apply the correct port parameter.
Balluff
Uses CoeSdo commands to read and write objects in the IO-Link device.
The table below shows the Balluff IO-Link Service Data that contains the command you need to send in order to read or write a single object.
Index | Subindex | Name | Data type | Access | Description / Value |
---|---|---|---|---|---|
0x40n0
n = 0..7 |
0x01 | Control | UINT8 | RW |
0: no control action 2: write 3: read |
0x02 | Status | UINT8 | RO |
0: no activity 1: busy 2: success 4: error 0xFF: failure |
|
0x03 | Index | UINT16 | RW | ||
0x04 | Subindex | UINT8 | RW | ||
0x05 | Length | UINT8 | RW | ||
0x06 | Data | UINT8 | RW | ||
0x07 | Error code | UINT16 | RO |
See also
RT/Win32 – KINGSTAR Fieldbus - Mailbox
.NET API – Api Class - Mailbox
.NET Class – ISlave Interface - Methods