Fehlercodes

Fehlerausgaben werden an zwei Ausgängen des RFID PLC Funktionsbausteines zur Verfügung gestellt.
Diese zwei Ausgangsvariablen iErrorID und iErrCodeRcv werden im Folgenden erläutert.

Error ID - iErrorID

Falls ein Fehler vorliegt, zeigt diese Ausgabe die Art des Fehlers. Folgende Liste gibt die möglichen Werte wieder.

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. Dieser empfangene Fehlercode wird in der Ausgangsvariablen iErrCodeRcv angegeben.

Fehlercodes 1:

Bei einem anderen Wert für iErrorID kann dennoch zusätzlich vom RFID Reader ein Fehler empfangen worden sein, welcher auch an iErrCodeRcv angezeigt wird.

 

ID
(hex)

ID
(dec)

Beschreibung

eRFERR_TimeOutElapsed

0x4001

16385

Dieser Fehler tritt ein, wenn die als Timeout am Eingang (Default = 5sec) angegebene Zeitdauer abgelaufen ist. Eine noch in Bearbeitung befindliche Aktion wird damit abgebrochen.

Es kommt auch zu einem Timeout Fehler, falls die serielle Hintergrundkommunikation nicht funktioniert. Dies kann beispielsweise der Fall sein, falls die falsche Baudrate eingestellt ist oder die Taskzykluszeit nicht ausreicht, um die Daten zu verarbeiten. Nähere Informationen hierzu finden sich im Kapitel RFID Reader Anbindung und in der 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 sicher zu stellen, dass das vorliegende RFID Reader Modell dem Funktionsbaustein bekannt ist, muss falls möglich zuallererst 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 Funktionsbausteines 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, falls die Angabe der Eingangsvariablen tTimeOut ungültig ist. Es gilt die Bedingung 'tTimeOut > tPreSendDelay + tPostSendDelay'.

eRFERR_InvalidRawDataParam

0x4105

16645

Sollen Rohdaten gesendet werden, so müssen diese am Eingang des Funktionsbausteines angegeben werden. Der Fehler eRFERR_InvalidRawDataParam wird ausgegeben, falls die Angabe der Eingangsvariablen pRawDataCommand oder iRawDataCommandLen ungültig ist. Näheres zum Thema im Kapitel 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.
Falls die zuletzt gelesene Konfiguration für die in der Konfigurationsstruktur nicht verfügbaren Parameter genutzt wird (bUseCfgDefault = FALSE in ST_RFID_ConfigIn), muss sicher gestellt 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

Falls ein RFID Lesegerät mit mehreren Leseköpfen angesprochen wird, so 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

Falls 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

Falls 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 Kapitels).

eRFERR_ChecksumError

0x4205

16901

Je nach Protokollspezifikation wird eine Checksumme, beispielsweise eine CRC Prüfsumme, im Telegram mit gesendet. Wird von der Steuerung ein Telegramm empfangen mit fehlerhafter Checksumme, 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, falls der RFID Reader noch keiner Gruppe zugeordnet ist. Deshalb muss je nach RFID Reader Modell bei Programmstart als erste Abfrage der Befehl GetReaderVersion getätigt werden.

eRFERR_CreatedTelegramTooBig

0x4402

17410

Es wurde versucht ein Telegramm zu senden, welches die maximal mögliche Größe von 300 Bytes überschritten hat. Es können nur Telegramme mit bis zu 300 Bytes versendet werden.

Fehlercodes 2:

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, welcher als erstes eintraf.

Error Code Received - iErrCodeRcv

Falls vom RFID Reader ein Fehlercode mitgeschickt wird, wird dieser an der Stelle ausgegeben.

Fehlercodes 3:

Teils werden Statusmeldungen vom RFID Reader mitgeschickt und dann an iErrCodeRcv ausgegeben, welche nicht zu einem Fehler führen (bError bleibt FALSE und iErrorID zeigt keinen Fehler).

Eine Liste möglicher Werte ist entweder der Datentypdeklaration der PLC RFID Library im Library Manager oder direkt in der Protokollspezifikation zu entnehmen.
Diesbezügliche Datentypen sind die Enumerationen E_RFID_ErrCodeRcv_Balluff, E_RFID_ErrCodeRcv_Deister, E_RFID_ErrCodeRcv_Leuze usw.