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.