Pepperl+Fuchs RFID Reader
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 hat sich diese Standardeinstellung der Datenübertragung bewährt:
Einstellung | Wert |
---|---|
Baudrate (RS232 und RS485) | 9600 Baud |
Parity Bit | none |
Datenbits | 8 |
Stopbit | 1 |
Bei Bedarf lassen sich je nach Hardware auch andere Parameter einstellen oder es können die Werkseinstellungen des RFID Readers (38400 Baud) verwendet werden. Diese müssen dann auch in der softwareseitigen Reader Anbindung übernommen werden.
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 Funktionsbausteines 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. Falls 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.
Beim Lese- sowie Schreibzugriff auf den Datenspeicher eines Transponders muss für alle Pepperl+Fuchs Rfid Geräte eine Blockgröße von 4 Bytes (siehe ST_RFID_AccessData) verwendet werden.
Nicht alle Eigenarten jedes unterstützten RFID Reader Modells können hier genannt werden. 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.
Ist an einem Lesekopf ein solch 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 GetInventory Befehl 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 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.
Die Trigger Einstellung darf nicht vom herstellereigenen Tool aus vorgenommen werden. Andernfalls sind die daraufhin eintreffenden Meldungen des Sensorkanals nicht von dem Baustein der TwinCAT 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 sind dem Kapitel LowLevelKommunikation und der Beschreibung der Strukturen ST_RFID_Control sowie ST_RFID_RawData zu 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, so dass 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.