FB_RFIDReader
Die TwinCAT-RFID-Bibliothek besteht lediglich aus einem Funktionsbaustein.
In diesem Abschnitt werden für einen schnellen Einstieg in die Handhabung der Bibliothek die Schnittstellenvariablen des Funktionsbausteins erläutert. Beachten Sie auch das Tutorial und die Beispiele.
Die einheitliche Handhabung für alle RFID-Reader-Modelle und die damit verbundenen aufbereiteten Schnittstellendeklarationen sind besonders anwenderfreundlich. Allerdings sei darauf hingewiesen, dass der Funktionsbaustein der TwinCAT-RFID-Bibliothek aufgrund der Unterschiede einiger RFID‑Reader‑Modelle einen geringfügigen Overheat besitzt. Diese unabdingbare Eigenschaft wird jedoch stark durch die Vorteile überwogen, welche die verfügbare Flexibilität bietet.
Syntax
FUNCTION_BLOCK FB_RFIDREADER
VAR_INPUT
bExecute : BOOL;
eCommand : E_RFID_Command;
stAccessData : ST_RFID_AccessData;
stCtrl : ST_RFID_Control;
stCfg : ST_RFID_ConfigIn;
eManufacturer : E_RFID_ReaderManufacturer;
tTimeOut : TIME := T#5s;
END_VAR
VAR_IN_OUT
RxBuffer : ComBuffer;
TxBuffer : ComBuffer;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bResponseRcv : BOOL;
eResponse : E_RFID_Response;
bError : BOOL;
iErrorID : UINT; (* general RFID error *)
iErrCodeRcv : UINT; (* error received by reader *)
stReaderCfg : ST_RFID_Config;
stReaderInfo : ST_RFID_ReaderInfo;
stTranspInfo : ST_RFID_TranspInfo;
stRawData : ST_RFID_RawData;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bExecute | BOOL | Um Nachrichten des RFID Readers zu empfangen, wird der Funktionsbaustein mit FALSE an diesem Eingang aufgerufen. Der Funktionsbaustein reagiert auf eine positive Flanke von bExecute, indem der ausgewählte Befehl eCommand ausgeführt bzw. beim RFID Reader angefragt wird. |
eCommand | Der Eingang eCommand bietet eine Auswahl an Befehlen, wie beispielsweise das Lesen oder Schreiben eines Transponders, in Form einer Enumeration an. Ein Befehl wird ausgeführt, indem der Eingang bExecute gesetzt wird. | |
stAccessData | Wenn ein Schreib- oder Lesebefehl ausgeführt werden soll, müssen mit dieser Eingangsstruktur Parameter übergeben werden. | |
stCtrl | Mit stCtrl können unterschiedliche Kontrollparameter am Eingang übergeben werden. Dazu gehört unter anderem auch die Möglichkeit, Verzögerungszeiten anzugeben. | |
stCfg | Ein RFID Reader besitzt eine interne Konfiguration. Diese lässt sich bei einigen Geräten auslesen und ändern. An dem Eingang stCfg werden Konfigurationsparameter übergeben, die auf den RFID Reader übertragen werden sollen. Siehe auch: Konfiguration | |
eManufacturer | An diesem Eingang wird der Hersteller des verwendeten RFID‑Reader-Modells angegeben. | |
tTimeOut | TIME | Gibt eine maximale Zeitdauer für die Ausführung des Funktionsbausteins an. Der Default-Wert ist 5 Sekunden. |
Es gilt die Bedingung tTimeOut > tPreSendDelay + tPostSendDelay. Andernfalls wird ein Fehler am Ausgang ausgegeben. Siehe Details zu den Verzögerungszeiten in ST_RFID_Control.
/ Ein-/Ausgänge
Name | Typ | Beschreibung |
---|---|---|
RxBuffer | ComBuffer | Es wird der Empfangspuffer angegeben, welcher als Eingangsvariable deklariert und im TwinCAT System Manager mit der seriellen Klemme verlinkt wurde. Siehe dazu die Beschreibung der seriellen Anbindung eines RFID Readers im Abschnitt RFID-Reader-Anbindung |
TxBuffer | ComBuffer | Es wird der Ausgangspuffer angegeben, welcher als Ausgangsvariable deklariert und im TwinCAT System Manager mit der seriellen Klemme verlinkt wurde. Siehe dazu die Beschreibung der seriellen Anbindung eines RFID Readers im Abschnitt RFID-Reader-Anbindung |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Der Ausgang bBusy wird bei einem gültigen Kommandoaufruf für mindestens einen Takt TRUE. Der Funktionsbaustein darf erst wieder mit bExecute = TRUE für einen erneuten Befehl aufgerufen werden, wenn bBusy zu FALSE gewechselt ist und der Funktionsbaustein somit nicht mehr im aktiven Sendezustand ist. Somit können, wenn bBusy = FALSE erkannt wird, wiederum alle weiteren Ausgangsvariablen bResponseRcv, eResponse, bError, iErrCodeRcv, ... und stRawData ausgewertet werden. Wenn zu einem getätigten Kommandoaufruf eine Response erwartet wird, so bleibt der Funktionsbaustein so lange bBusy = TRUE, bis ein Telegramm empfangen wird oder das Timeout tTimeOut erreicht wird. Wenn dem Funktionsbaustein Verzögerungszeiten tPreSendDelay und/oder tPostSendDelay mitgegeben wurden, ist bBusy mindestens so lange TRUE wie die Summe dieser Zeiten. Siehe auch: ST_RFID_Control. |
bResponseRcv | BOOL | Sobald eine Response vom RFID Reader bei der Steuerung eingetroffen ist, wird dieses Flag für mindestens einen Zyklus gesetzt. Mit steigender Flanke zu bResponseRcv = TRUE wird allgemein das Eintreffen eines Telegrams signalisiert. Somit können, wenn dieses Flag erkannt wird, wiederum auch unerwartete Telegramme und die dazugehörigen Ausgangsvariablen eResponse, bError, iErrCodeRcv, ... und stRawData ausgewertet werden. Wenn zu einem getätigten Kommandoaufruf eine Response erwartet wird, so bleibt der Funktionsbaustein so lange bBusy = TRUE, bis ein Telegramm empfangen wird. Je nach Kommandoaufruf kann mehr als eine Response eintreffen, bevor die Aktion abgeschlossen und bBusy = FALSE ist. Je nach Konfigurationseinstellung der Verzögerungszeiten in ST_RFID_Control kann bResponseRcv bereits TRUE werden, bevor bBusy wieder auf FALSE wechselt. |
eResponse | Sobald bResponseRcv TRUE anzeigt, gibt diese Enumeration die Art der empfangenen Nachricht an. Je nach Art kann beispielsweise die entsprechende Auswertung folgen. | |
bError | BOOL | Der Ausgang bError wird TRUE, sobald ein Fehler auftritt. Dabei kann es sich um fehlerhafte Eingangsparameter, um Übertragungsfehler, um Fehler seitens des RFID Readers oder um ein Timeout handeln. Welche Art von Fehler aufgetreten ist, wird mit der Ausgangsvariablen iErrorID angezeigt. Details zur Fehlerdarstellung sind im Abschnitt Fehlercodes angegeben. |
iErrorID | UNIT | Wenn ein Fehler auftritt, wird am Ausgang iErrorID die Art des Fehlers angezeigt. Details zu den möglichen Fehler-IDs sind im Abschnitt Fehlercodes angegeben. |
iErrCodeRcv | UINT | Der am Ausgang iErrCodeRcv angegebene Fehlercode entspricht dem vom RFID Reader an die Steuerung gesendetem Fehlercode. Details zur Fehlerdarstellung sind im Abschnitt Fehlercodes angegeben. |
stReaderCfg | Ein RFID Reader besitzt eine interne Konfiguration. Diese lässt sich bei einigen Geräten auslesen und ändern. Am Ausgang stReaderCfg werden diese ausgelesenen Konfigurationsparameter zur Verfügung gestellt. | |
stReaderInfo | Jeder RFID Reader besitzt eigene Kenndaten wie Bezeichnung, Hardwareversion etc. Diese Werte, die unter anderem über den Befehl GetReaderVersion abgefragt werden können, sind in der Ausgangsstruktur stReaderInfo angegeben. | |
stTranspInfo | Die Struktur stTranspInfo enthält Informationen zu dem zuletzt gelesenen Transponder. Hier wird unter anderem die Seriennummer des Transponders ausgegeben. | |
stRawData | Die Ausgangsstruktur stRawData gibt die gesendeten sowie die empfangenen Rohdaten aus. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TC3.1.4013 | PC oder CX (x86, x64) | Tc2_RFID |