ADS Error Codes und weitere Fehlerdiagnose
Beim Auftreten eines Fehlers über ADS-Zugriff auf einen IO-Link Teilnehmer werden Fehlercodes generiert.
Die möglichen Fehlercodes sind in Tabelle C.1 und C.2 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 |
Table C.1 ErrorTypes, IO-Link Spec
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 |
Table C.2 Derived ErrorTypes, IO-Link Spec
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ätes 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.