IO-Link-Fehler Codes
Beim Auftreten eines Fehlers über ADS-Zugriff auf einen IO-Link Teilnehmer werden Fehlercodes generiert.
Die möglichen Fehlercodes sind in den nachfolgenden Tabellen aufgeführt.
Beispiel eines 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  | 
Weitere Möglichkeiten zur Fehlerdiagnose
Device State Inputs Device (0x1A05)
Im PDO "Device Diag" (0xF101:0D), wird angezeigt, das min. ein Ereignis in der "Diag History" aufgetreten ist.
"Device State" ist das Standard-Statusbit für EtherCAT Slaves und zeigt z. B. Kommunikationsabbruch zu einen der Slaves auf.
Device State Inputs (0x1A04)
Hier wird der Status der IO-Link Teilnehmer am jeweiligen Port (siehe im Systemmanager Comment Feld) angezeigt.
Soll-/Ist Vergleich der Parameterobjekte
Die Indizes 0x90n0 (Info Data) können zur Validierung der Konfigurationsindizes 0x80n0 des angeschlossenen IO-Link-Geräts herangezogen werden.
Im Fehlerfall können diese Objekte genutzt werden, um die Konfiguration mit dem Istzustand zu vergleichen.
Lost Frame Counter
Der Lost Frame Counter im Objekt 0xA0n0:02 dient zur Diagnose der Übertragungsqualität. TwinCAT stellt hier die Möglichkeit bereit, Probleme z. B. mit der Verkabelung, EMV oder Stromversorgung zu diagnostizieren.