RFID-Fehlercodes
Fehlerausgaben werden an zwei Ausgängen des RFID-SPS-Funktionsbausteins zur Verfügung gestellt. Die beiden Ausgangsvariablen iErrorID und iErrCodeRcv werden im Folgenden erläutert.
iErrorID
Wenn ein Fehler vorliegt, zeigt die Ausgangsvariable iErroID die Art des Fehlers an. Die nachfolgende Liste zeigt die möglichen Werte.
TYPE E_RFID_ErrID :(
eRFERR_NoError := 0,
(* general errors *)
eRFERR_TimeOutElapsed := 16#4001,
(* invalid input parameters *)
eRFERR_InvalidCommand := 16#4101,
eRFERR_IncompatibleCfg := 16#4102,
eRFERR_InvalidManufacturer := 16#4103,
eRFERR_InvalidTimeOutParam := 16#4104,
eRFERR_InvalidRawDataParam := 16#4105,
eRFERR_InvalidAccessData := 16#4106,
eRFERR_InvalidCfg := 16#4107,
eRFERR_InvalidCfgParam := 16#4108,
eRFERR_InvalidCtrlHeadNumber := 16#4109,
(* error at receive of response *)
eRFERR_InvalidResponse := 16#4201,
eRFERR_InvalidRspLen := 16#4202,
eRFERR_InvalidBlocksize := 16#4203,
eRFERR_ErrorRcv := 16#4204,
eRFERR_ChecksumError := 16#4205,
(* internal errors *)
eRFERR_UnknownReaderGroup := 16#4401,
eRFERR_CreatedTelegramTooBig := 16#4402,
);
END_TYPE
Wenn iErrorID den Wert eRFERR_ErrorRcv besitzt, wurde ein Fehlercode von dem RFID Reader empfangen. Der empfangene Fehlercode wird in der Ausgangsvariablen iErrCodeRcv angegeben.
Bei einem anderen Wert für iErrorID kann zusätzlich vom RFID Reader ein Fehler empfangen worden sein, der auch in der Ausgangsvariablen iErrCodeRcv angezeigt wird.
Wert | ID | ID | Beschreibung |
---|---|---|---|
eRFERR_TimeOutElapsed | 0x4001 | 16385 | Dieser Fehler tritt ein, wenn die als Timeout am Eingang (Default = 5 s) angegebene Zeitdauer abgelaufen ist. Eine noch in Bearbeitung befindliche Aktion wird damit abgebrochen. Es kommt auch zu einem Timeout-Fehler, wenn die serielle Hintergrundkommunikation nicht funktioniert. Dies kann beispielsweise der Fall sein, wenn die falsche Baudrate eingestellt ist oder die Taskzykluszeit nicht ausreicht, um die Daten zu verarbeiten. Siehe auch: RFID Reader Anbindung und Dokumentation der SPS-Bibliothek Serielle Kommunikation. |
eRFERR_InvalidCommand | 0x4101 | 16641 | Der Befehl wurde nicht ausgeführt. Der gewählte Befehl kann mit diesem RFID-Reader-Modell nicht ausgeführt werden. Im Befehlssatz sind die zur Verfügung stehenden Befehle gelistet. Um sicherzustellen, dass das vorliegende RFID‑Reader‑Modell dem Funktionsbaustein bekannt ist, muss, wenn möglich, zu allererst der Befehl „GetReaderVersion“ ausgeführt werden. |
eRFERR_IncompatibleCfg | 0x4102 | 16642 | Der Befehl wurde nicht ausgeführt. Die aktuelle RFID‑Reader‑Konfiguration (siehe Ausgangsstruktur ST_RFID_Config) ist nicht kompatibel mit dem ausgewählten Befehl (und den dazu gehörigen Eingangsparametern). Es muss sichergestellt werden, dass die Konfiguration zuvor einmal gelesen wurde. Andernfalls kann ebenso dieser Fehlercode auftreten. |
eRFERR_InvalidManufacturer | 0x4103 | 16643 | Am Eingang des generischen Funktionsbausteins FB_RFIDReader muss mit der Variablen eManufacturer der RFID-Hersteller des RFID‑Reader‑Modells angegeben werden. Der Fehler eRFERR_InvalidManufacturer signalisiert eine ungültige Angabe. |
eRFERR_InvalidTimeOutParam | 0x4104 | 16644 | Dieser Fehler wird ausgegeben, wenn die Angabe der Eingangsvariablen tTimeOut ungültig ist. Es gilt die Bedingung tTimeOut > tPreSendDelay + tPostSendDelay. |
eRFERR_InvalidRawDataParam | 0x4105 | 16645 | Wenn Rohdaten gesendet werden sollen, müssen diese am Eingang des Funktionsbausteins angegeben werden. Der Fehler eRFERR_InvalidRawDataParam wird ausgegeben, wenn die Angabe der Eingangsvariablen pRawDataCommand oder iRawDataCommandLen ungültig ist. Siehe auch: LowLevel-Kommunikation. |
eRFERR_InvalidAccessData | 0x4106 | 16646 | Der Befehl wurde nicht ausgeführt, weil die am Eingang angegebenen Parameter in der Struktur ST_RFID_AccessData ungültig sind. |
eRFERR_InvalidCfg | 0x4107 | 16647 | Der Befehl „Konfiguration ändern“ wurde nicht ausgeführt, weil die angegebenen Konfigurationsdaten ungültig sind. Die Konfigurationsdaten liegen als Konfigurationsstruktur an (bUseCfgReg = FALSE). Im Zweifelsfall sind die genauen gültigen Wertebereiche der Daten in der proprietären Protokollspezifikation durch den Hersteller gegeben. Wenn die zuletzt gelesene Konfiguration für die in der Konfigurationsstruktur nicht verfügbaren Parameter genutzt wird (bUseCfgDefault = FALSE in ST_RFID_ConfigIn), muss sichergestellt werden, dass die Konfiguration zuvor gelesen wurde. Andernfalls kann ebenso dieser Fehlercode auftreten. |
eRFERR_InvalidCfgParam | 0x4108 | 16648 | Der Befehl „Konfiguration ändern“ wurde nicht ausgeführt, weil die angegebenen Eingangsparameter der Konfigurationsdaten ungültig sind. Die Konfigurationsdaten sollen als Konfigurationsregister oder Konfigurationsstruktur anliegen. Dessen Länge oder ein anderer Parameter in ST_RFID_ConfigIn sind ungültig. |
eRFERR_InvalidCtrlHeadNumber | 0x4109 | 16649 | Wenn ein RFID-Lesegerät mit mehreren Leseköpfen angesprochen wird, wird in der Eingangsstruktur ST_RFID_Control eine Wahl des Lesekopfes angegeben. Ist für den angegebenen Wert kein Lesekopf verfügbar, so wird dieser Fehlerwert ausgegeben. |
eRFERR_InvalidResponse | 0x4201 | 16897 | Wenn die Bytefolge der empfangenen Response keiner bekannten Nachrichtenart entspricht oder einzelne Bytes nicht die erforderlichen Werte aufweisen, wird dieser Fehler ausgegeben. Die empfangenen Daten können als Rohdatenblock am Ausgang ST_RFID_RawData analysiert werden. |
eRFERR_InvalidRspLen | 0x4202 | 16898 | Wenn die Bytefolge theoretisch einer bekannten Nachrichtenart entspricht, die Länge allerdings nicht der Erwartung entspricht, wird diese Fehlermeldung erzeugt. Die empfangenen Daten können als Rohdatenblock am Ausgang ST_RFID_RawData analysiert werden. |
eRFERR_InvalidBlocksize | 0x4203 | 16899 | Tritt dieser Fehlerwert ein, so konnten die empfangenen vom Transponder gelesenen Daten nicht ausgewertet werden. Die Anzahl der empfangenen Bytes signalisiert, dass die konfigurierte Blocksize nicht mit der Eingabe beim Befehlsaufruf übereinstimmt. |
eRFERR_ErrorRcv | 0x4204 | 16900 | Ein Fehlercode wurde mit der empfangenen Nachricht gesendet. Der vom RFID Reader angezeigte Fehler wird ebenso ausgegeben und von der Ausgangsvariablen „iErrCodeRcv“ repräsentiert (Erläuterung am Ende dieses Abschnitts). |
eRFERR_ChecksumError | 0x4205 | 16901 | Je nach Protokollspezifikation wird eine Checksumme, beispielsweise eine CRC-Prüfsumme, im Telegramm mit gesendet. Wird von der Steuerung ein Telegramm mit fehlerhafter Checksumme empfangen, so wird dieser Fehler ausgegeben. |
eRFERR_UnknownReaderGroup | 0x4401 | 17409 | Die RFID-Bibliothek teilt die RFID‑Reader‑Modelle intern in Gruppen ein. Der Fehler „eRFERR_UnknownReaderGroup“ kann auftreten, wenn der RFID Reader noch keiner Gruppe zugeordnet ist. Deshalb muss je nach RFID‑Reader‑Modell bei Programmstart als erste Abfrage der Befehl „GetReaderVersion“ ausgeführt werden. |
eRFERR_CreatedTelegramTooBig | 0x4402 | 17410 | Es wurde versucht, ein Telegramm zu senden, das die maximal mögliche Größe von 300 Bytes überschritten hat. Es können nur Telegramme mit bis zu 300 Bytes versendet werden. |
In einigen wenigen Fällen werden vom RFID-Gerät mehrere Telegramme unmittelbar hintereinander versendet. Es ist deshalb wichtig, immer den Fehler zu erkennen und zu beheben, der als Erstes eintraf. |
iErrCodeRcv
Wenn vom RFID Reader ein Fehlercode mitgeschickt wird, wird dieser in der Ausgangsvariable iErrCodeRcv ausgegeben. Teilweise werden auch Statusmeldungen vom RFID Reader mitgeschickt und an iErrCodeRcv ausgegeben, die nicht zu einem Fehler führen (bError bleibt FALSE und iErrorID zeigt keinen Fehler).
Eine Liste möglicher Werte kann entweder der Datentypdeklarationen (E_RFID_ErrCodeRcv_Balluff, E_RFID_ErrCodeRcv_Deister, E_RFID_ErrCodeRcv_Leuze usw.) der SPS-RFID-Bibliothek über die TwinCAT-XAE-Bibliothekdetails oder direkt der Protokollspezifikation entnommen werden.
Zur weiteren Fehleranalyse wird auf die Logging-Möglichkeit hingewiesen. Hierzu wird der Eingangsparameter bLogging gesetzt. Details finden Sie in der Parameterbeschreibung in der API.