IO-Link error codes
Error codes are generated in the event of an error during ADS access to an IO-Link device.
The possible error codes are listed in the following tables.
Example of an AdsReturnCode
AdsReturnCode 0x80110700
- 80: Device Application Error (IO-Link Spec),
- 11: Index not Available (IO-Link Spec),
- 0700: General ADS Error
ErrorTypes (IO-Link Spec)
Incident | Error Code | Additional Code | Name | Definition |
---|---|---|---|---|
Device application error – no details | 0x80 | 0x00 | APP_DEV | This ErrorType shall be used if the requested service has been refused by the Device application and no detailed |
Index not available | 0x80 | 0x11 | IDX_NOTAVAIL | This ErrorType shall be used whenever a read or write access occurs to a not existing Index. |
Subindex not available | 0x80 | 0x12 | SUBIDX_NOTAVAIL | This ErrorType shall be used whenever a read or write access occurs to a not existing Subindex. |
Service temporarily not available | 0x80 | 0x20 | SERV_NOTAVAIL | This ErrorType shall be used if a parameter is not accessible for a read or write service due to the current state of the Device application. |
Service temporarily not available – local control | 0x80 | 0x21 | SERV_NOTAVAIL_LOCCTRL | This ErrorType shall be used if a parameter is not accessible for a read or write service due to an ongoing local operation at the Device (for example operation or parameterization via an on-board Device control panel). |
Service temporarily not available – Device control | 0x80 | 0x22 | SERV_NOTAVAIL_DEVCTRL | This ErrorType shall be used if a read or write service is not accessible due to a remote triggered state of the device application (for example parameterization during a remote triggered teach-in operation or calibration). |
Access denied | 0x80 | 0x23 | IDX_NOT_WRITEABLE | This ErrorType shall be used if a write service tries to access a read-only parameter. |
Parameter value out of range | 0x80 | 0x30 | PAR_VALOUTOFRNG | This ErrorType shall be used for a write service to a parameter outside its permitted range of values. |
Parameter value above limit | 0x80 | 0x31 | PAR_VALGTLIM | This ErrorType shall be used for a write service to a parameter above its specified value range. |
Parameter value below limit | 0x80 | 0x32 | PAR_VALLTLIM | This ErrorType shall be used for a write service to a parameter below its specified value range. |
Parameter length overrun | 0x80 | 0x33 | VAL_LENOVRRUN | This ErrorType shall be used when the content of a write service to a parameter is greater than the parameter specified length. This ErrorType shall also be used, if a data object is too large to be processed by the Device application (for example ISDU buffer restriction). |
Parameter length underrun | 0x80 | 0x34 | VAL_LENUNDRUN | This ErrorType shall be used when the content of a write service to a parameter is less than the parameter specified length (for example write access of an Unsigned16 value to an Unsigned32 parameter). |
Function not available | 0x80 | 0x35 | FUNC_NOTAVAIL | This ErrorType shall be used for a write service with a command value not supported by the Device application (for example a SystemCommand with a value not implemented). |
Function temporarily unavailable | 0x80 | 0x36 | FUNC_UNAVAILTEMP | This ErrorType shall be used for a write service with a command value calling a Device function not available due to the current state of the Device application (for example a SystemCommand). |
Invalid parameter set | 0x80 | 0x40 | PAR_SETINVALID | This ErrorType shall be used if values sent via single parameter transfer are not consistent with other actual parameter settings (for example overlapping set points for a binary data setting |
Inconsistent parameter set | 0x80 | 0x41 | PAR_SETINCONSIST | This ErrorType shall be used at the termination of a block parameter transfer with ParamDownloadEnd or ParamDownloadStore if the plausibility check shows inconsistencies |
Application not ready | 0x80 | 0x82 | APP_DEVNOTRDY | This ErrorType shall be used if a read or write service is refused due to a temporarily unavailable application (for example peripheral controllers during startup). |
Vendor specific | 0x81 | 0x00 | UNSPECIFIC | This ErrorType will be propagated directly to higher level processing elements as an error (no warning) by the Master. |
Vendor specific | 0x81 | 0x01 to 0xFF | VENDOR_SPECIFIC |
Derived ErrorTypes (IO-Link Spec)
Incident | Error Code | Additional Code | Name | Definition |
---|---|---|---|---|
Master – Communication error | 0x10 | 0x00 | COM_ERR | The Master generates a negative service response with this ErrorType if a communication error occurred during a read or write service, for example the SDCI connection is interrupted. |
Master – ISDU timeout | 0x11 | 0x00 | I-SERVICE_TIMEOUT | The Master generates a negative service response with this ErrorType, if a Read or Write service is pending longer than the specified I-Service timeout in the Master. |
Device Event – ISDU error (DL, Error, single shot, 0x5600) | 0x11 | 0x00 | I-SERVICE_TIMEOUT | If the Master received an Event with the EventQualifier and the EventCode 0x5600, a negative service response indicating a service timeout is generated and returned to the requester (Master – ISDU timeout). |
Device Event – ISDU illegal service primitive (AL, Error, single shot, 0x5800) | 0x11 | 0x00 | I-SERVICE_TIMEOUT | If the Master received an Event with the EventQualifier and the EventCode 0x5800, a negative service response indicating a service timeout is generated and returned to the requester (Master – ISDU timeout). |
Master – ISDU checksum error | 0x56 | 0x00 | M_ ISDU_CHECKSUM | The Master generates a negative service response with this ErrorType, if its data link layer detects an ISDU checksum error. |
Master – ISDU illegal service primitive | 0x57 | 0x00 | M_ ISDU_ILLEGAL | The Master generates a negative service response with this ErrorType, if its data link layer detects an ISDU illegal service primitive. |
Device Event – ISDU buffer overflow (DL, Error, single shot, 0x5200) | 0x80 | 0x33 | VAL_LENOVRRUN | If the Master received an Event with the EventQualifier and the EventCode 0x5200, a negative service response indicating a parameter length overrun is generated and returned to the requester (see parameter length overrun)
Events from legacy Devices shall be redirected in compatibility mode to this derived ErrorType |
Further error diagnosis options
Device State Inputs Device (0x1A05)
It is indicated in the PDO "Device Diag" (0xF101:0D) that at least one event has occurred in the "Diag History".
"Device State" is the standard status bit for EtherCAT slaves and shows, for example, that communication with one of the slaves has been interrupted.
Device State Inputs (0x1A04)
The status of the IO-Link devices is displayed at the respective port (see Comment field in the System Manager).
Nominal/actual comparison of the parameter objects
The 0x90n0 (Info Data) indices can be used to validate the 0x80n0 configuration indices of the connected IO-Link device.
In the event of an error, these objects can be used to compare the configuration with the actual state.
Lost Frame Counter
The Lost Frame counter in object 0xA0n0:02 is for the diagnosis of the transmission quality. TwinCAT provides the possibility here to diagnose problems, e. g. with the wiring, EMC or power supply.