Pepperl+Fuchs

RFID-Reader-Einstellungen

Für eine reibungslose Kommunikation zwischen Steuerung und RFID Reader müssen manche Einstellungen vor Systemstart vorgenommen werden. Hierzu zählt beispielsweise die Baudrate der seriellen Kommunikation. Um diese Einstellungen auf den RFID Reader zu übertragen, kann ein proprietäres Tool des RFID-Reader-Herstellers nötig sein.

Für alle unterstützten RFID-Reader-Modelle haben sich folgende Standardeinstellungen der Datenübertragung bewährt:

Einstellung

Wert

Baudrate (RS232 und RS485)

38400 Baud

Parity Bit

none

Datenbits

8

Stopbit

1

Bei Bedarf können je nach Hardware auch andere Parameter eingestellt werden. Diese müssen dann auch in der softwareseitigen Reader-Anbindung übernommen werden (siehe RFID-Reader-Anbindung).

RFID-Reader-Handhabung

Bei Systemstart müssen die Modellinformationen (Befehl GetReaderVersion) und die aktuelle Reader-Konfiguration (Befehl GetConfig) ausgewertet werden.

Der empfangene Status des Gerätes wird über den Ausgang iErrCodeRcv des Funktionsbausteins FB_RFIDReader angezeigt und im Fehlerfall durch bError = TRUE und iErrorId = eRFERR_ErrorRcv signalisiert. Die Leseköpfe besitzen ebenfalls eigene Status. Diese können mit der über GetConfig gelesenen Konfigurationsstruktur geprüft werden.

Bei einem Neustart sollten die eingestellten Transpondertypen überprüft werden. Wenn die über GetConfig gelesene Konfigurationsstruktur nicht die richtigen Transpondertypen für jeden Lesekopf anzeigt, so können diese mit dem Befehl ChangeDCType korrigiert werden. Es wird empfohlen, anstatt dem Default-Wert (99) den für den Transponder spezifizierten Wert einzustellen. Dadurch erkennt der Schreib-/Lesekopf zudem den Datenträger schneller.

Beim Lese- sowie Schreibzugriff auf den Datenspeicher eines Transponders muss für alle Pepperl+Fuchs RFID-Geräte eine Blockgröße passend zum Transponder verwendet werden (siehe ST_RFID_AccessData).

Blockgrößen möglicher Transponder:

4 Byte (IQC21, IPC03, IQC22, IQC24)
8 Byte (IQC33)
16 Byte (IQC40, IQC41, IQC42 und IQC43)
32 Byte (IQC37)

Bis Version 3.3.3.0 der Bibliothek wurde nur die Verwendung von 4 Byte Blockgröße unterstützt.

Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID-Reader-Modells hier genannt werden können. Deshalb wird für detaillierte Informationen auf die herstellereigenen Dokumentationen hingewiesen.

Buffered Command - Gepufferter Befehl

Mit der Eingangsvariablen bBufferedCmd in ST_RFID_Control können Befehle abgesetzt werden, die für eine spätere dauerhafte Ausführung gepuffert werden. Dies ist mit den Befehlen eRFC_GetInventory, eRFC_ReadBlock und eRFC_WriteBlock möglich. Ein gepufferter Befehl kann mit dem Befehl eRFC_AbortCommand beendet werden.

Pepperl+Fuchs 1:

Gepufferter Befehl

Ist an einem Lesekopf ein gepufferter Befehl aktiv, darf der Trigger Mode nicht für diesen Kanal aktiviert werden bzw. aktiv sein. Ebenso darf kein Rohdatenbefehl abgesetzt werden, welcher diesen Kanal betrifft.

Trigger Mode

Es wird empfohlen, keinen Trigger bzw. Sensorkanal zu verwenden. Der Trigger Mode sollte also für alle Kanäle deaktiviert sein. Per Werkseinstellung des RFID-Gerätes ist der Trigger auf allen Kanälen deaktiviert.

Alternativ kann beispielsweise der Befehl GetInventory zyklisch oder GetInventory als gepufferter Befehl (bBufferedCmd in ST_RFID_Control) aufgerufen werden.

Ist ein Trigger als Sensorkanal an der RFID-Einheit nötig, so gibt es mit der TwinCAT-Bibliothek folgende Möglichkeit:

Der Trigger liefert eine Meldung, ob er gerade ausgelöst oder ob der Triggerbereich verlassen wird. Diese Messages werden empfangen und als eResponse = eRFR_CmdConfirmation oder eRFR_NoTransponder angezeigt. In der Applikation kann darauf reagiert werden und der gewünschte Befehl ausgelöst werden.

Um einen Kanal dementsprechend als Sensorkanal/Trigger zu konfigurieren, muss der zugehörige Identkanal = 0 sein. Der notwendige Rohdatenbefehl ist im nächsten Absatz erläutert.

Pepperl+Fuchs 2:

Triggereinstellung

Die Triggereinstellung darf nicht vom herstellereigenen Tool aus vorgenommen werden. Andernfalls sind die daraufhin eintreffenden Meldungen des Sensorkanals nicht von dem Baustein der TwinCAT‑RFID-Bibliothek lesbar.

Die korrekte Einstellung des Trigger Mode sollte mit dem Befehl GetConfig und der Auswertung der gelesenen Konfigurationsstruktur überprüft werden. So kann die Einstellung falls nötig bei Programmstart nachgeholt werden.

Einstellungen per Rohdatenbefehle absetzen

Details können Sie dem Abschnitt Low-Level-Kommunikation sowie der Beschreibung der Strukturen ST_RFID_Control und ST_RFID_RawData entnehmen.

Baudrate:

Um die Baudrate des RFID-Gerätes auf 9600 Baud einzustellen, müssen folgende Rohdaten gesendet werden:

ASCII

hex

CI0,9600

43 49 30 2C 39 36 30 30

Nach dem Ändern der Baudrate ist ein Reset des RFID-Gerätes nötig.

Triggermode:

Um an Kanal 3 einen Triggersensor zu deaktivieren, sodass der Kanal als Lesekopf genutzt werden kann, müssen folgende Rohdaten gesendet werden:

ASCII

hex

TM300

54 4D 33 30 30

Um an Kanal 2 einen Sensor als Trigger zu konfigurieren, müssen folgende Rohdaten gesendet werden:

ASCII

hex

TM201

54 4D 32 30 31

Antwort: eResponse = eRFR_CmdConfirmation, sobald der Sensor ausgelöst wird.

Antwort: eResponse = eRFR_NoTransponder, sobald der Sensor verlassen wird.

Am Ausgang stTranspInfo.iHeadNumber ist der Sensorkanal angegeben, von dem die Antwort gesendet wurde.

Um an Kanal 4 einen Sensor als invertierten Trigger zu konfigurieren, müssen folgende Rohdaten gesendet werden:

ASCII

hex

TM402

54 4D 34 30 32

Antwort: eResponse = eRFR_NoTransponder, sobald der Sensor ausgelöst wird.

Antwort: eResponse = eRFR_CmdConfirmation, sobald der Sensor verlassen wird.

Am Ausgang stTranspInfo.iHeadNumber ist der Sensorkanal angegeben von dem die Antwort gesendet wurde.

Nachdem eine solche Einstellung vorgenommen wurde, muss die Gerätekonfiguration mit dem Befehl Get Config erneut gelesen werden. Es empfiehlt sich, die vorgenommenen Einstellungen mittels Auswertung der gelesenen Konfigurationsstruktur zu überprüfen.