Handbuch TC3 RFID Reader Communication -...

79
Handbuch TC3 RFID Reader Communication TwinCAT 3 1.1 16.10.2015 TF6600 Version: Datum: Bestell-Nr.:

Transcript of Handbuch TC3 RFID Reader Communication -...

Page 1: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Handbuch

TC3 RFID Reader Communication

TwinCAT 3

1.116.10.2015TF6600

Version:Datum:Bestell-Nr.:

Page 2: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich
Page 3: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Inhaltsverzeichnis

Inhaltsverzeichnis1 Vorwort ....................................................................................................................................................... 4

1.1 Hinweise zur Dokumentation ............................................................................................................  41.2 Sicherheitshinweise ..........................................................................................................................  5

2 Übersicht .................................................................................................................................................... 6

3 Installation.................................................................................................................................................. 73.1 Systemvoraussetzungen ..................................................................................................................  73.2 Installation.........................................................................................................................................  73.3 Lizensierung ...................................................................................................................................  10

4 Technische Einführung........................................................................................................................... 154.1 RFID Reader Hardware ..................................................................................................................  154.2 RFID Reader Anbindung ................................................................................................................  194.3 RFID Befehlssatz............................................................................................................................  21

5 Konfiguration ........................................................................................................................................... 275.1 RFID Reader Einstellungen und Handhabung ...............................................................................  27

5.1.1 Balluff .................................................................................................................................. 275.1.2 Baltech ................................................................................................................................ 285.1.3 Deister electronic ................................................................................................................ 315.1.4 Leuze electronic.................................................................................................................. 325.1.5 Pepperl+Fuchs.................................................................................................................... 33

6 API............................................................................................................................................................. 366.1 SPS Referenz .................................................................................................................................  36

6.1.1 Funktionsbaustein FB_RFIDReader ................................................................................... 366.1.2 Datentypen.......................................................................................................................... 426.1.3 Globale Konstanten ............................................................................................................ 68

7 Beispiele................................................................................................................................................... 697.1 Tutorial............................................................................................................................................  69

7.1.1 Tutorial - Glossar ................................................................................................................ 707.1.2 Tutorial - Installation/Bibliotheken ....................................................................................... 707.1.3 Tutorial - Serielle Anbindung............................................................................................... 717.1.4 Tutorial - Baustein Deklaration............................................................................................ 717.1.5 Tutorial - Baustein Verwendung.......................................................................................... 727.1.6 Tutorial - Test...................................................................................................................... 73

7.2 Beispiel 1 ........................................................................................................................................  737.3 Beispiel 2 ........................................................................................................................................  747.4 Beispiel 3 ........................................................................................................................................  76

8 Anhang ..................................................................................................................................................... 778.1 RFID Fehlercodes...........................................................................................................................  77

TC3 RFID Reader Communication 3Version: 1.1

Page 4: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Vorwort

1 Vorwort

1.1 Hinweise zur DokumentationDiese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- undAutomatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der nachfolgenden Hinweise undErklärungen unbedingt notwendig.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produktealle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungenund Normen erfüllt.

DisclaimerDiese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiterentwickelt.Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit denbeschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeitund ohne Ankündigung vorzunehmen.Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche aufÄnderung bereits gelieferter Produkte geltend gemacht werden.

MarkenBeckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC®und XTS® sind eingetrageneund lizenzierte Marken der Beckhoff Automation GmbH.Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kannzu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

PatenteDie EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen undPatente:EP1590927, EP1789857, DE102004044764, DE102007017835mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen undPatente:EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenenanderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizensiert durch die BeckhoffAutomation GmbH, Deutschland

Copyright© Beckhoff Automation GmbH & Co. KG, Deutschland.Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sindverboten, soweit nicht ausdrücklich gestattet.Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster-oder Geschmacksmustereintragung vorbehalten.

TC3 RFID Reader Communication4 Version: 1.1

Page 5: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Vorwort

1.2 Sicherheitshinweise

SicherheitsbestimmungenBeachten Sie die folgenden Sicherheitshinweise und Erklärungen!Produktspezifische Sicherheitshinweise finden Sie auf den folgenden Seiten oder in den Bereichen Montage,Verdrahtung, Inbetriebnahme usw.

HaftungsausschlussDie gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software-Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über diedokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss derBeckhoff Automation GmbH & Co. KG.

Qualifikation des PersonalsDiese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-,Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.

Erklärung der SymboleIn der vorliegenden Dokumentation werden die folgenden Symbole mit einem nebenstehendenSicherheitshinweis oder Hinweistext verwendet. Die Sicherheitshinweise sind aufmerksam zu lesen undunbedingt zu befolgen!

GEFAHR

Akute Verletzungsgefahr!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht unmittel-bare Gefahr für Leben und Gesundheit von Personen!

WARNUNG

Verletzungsgefahr!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht Gefahr fürLeben und Gesundheit von Personen!

VORSICHT

Schädigung von Personen!Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, können Personengeschädigt werden!

Achtung

Schädigung von Umwelt oder GerätenWenn der Hinweis neben diesem Symbol nicht beachtet wird, können Umwelt oder Gerätegeschädigt werden.

Hinweis

Tipp oder FingerzeigDieses Symbol kennzeichnet Informationen, die zum besseren Verständnis beitragen.

TC3 RFID Reader Communication 5Version: 1.1

Page 6: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Übersicht

2 ÜbersichtDie TwinCAT RFID Reader Communication Bibliothek ermöglicht die Kommunikation zu RFID Readern ausdem SPS Programm heraus.

Als RFID Reader werden sowohl reine Lesegeräte als auch Schreib-/Lesegeräte verstanden. Im Folgendenwird somit der Begriff RFID Reader verwendet ohne dabei eine Beschränkung der Funktionalität zuimplizieren.

Auch umfangreiche Applikationen, welche unterschiedliche Funktionen der RFID Reader nutzen, könnennun leicht verwirklicht werden. Der Implementierungsaufwand ist sehr gering, weil kein herstellerspezifischesSchnittstellenprotokoll detailliert recherchiert und umgesetzt werden muss. Der Frameaufbau, dieTelegrammzusammensetzung, die Befehlsbezeichnung, die Telegrammerkennung und einige weitereProtokolleigenarten werden automatisch durch die Bibliothek ausgeführt. Der Anwender kann sichvollständig auf seine Applikation konzentrieren und spart wertvolle Entwicklungszeit.

Die Handhabung der SPS Bibliothek ist für alle unterstützten RFID Reader Modelle gleich. Selbst bei einemHerstellerwechsel müssen nur kleine Änderung der Applikation vorgenommen werden.

Mit der TwinCAT RFID Bibliothek kann erstmalig die ganze Welt der RFID Technik ohne Aufwand genutztwerden.

Schematische Darstellung einer RFID Reader Anbindung [} 19]

TC3 RFID Reader Communication6 Version: 1.1

Page 7: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

3 Installation

3.1 Systemvoraussetzungen• Programmierumgebung:

◦ Win7, WES7, XP, XPe, WES;◦ TwinCAT Installation: TwinCAT XAE TC3 PLC;◦ TwinCAT System Version 3.1.4013 oder höher;◦ Die SPS Bibliotheken Tc2_RFID und Tc2_SerialCom müssen in dem SPS-Projekt eingebun-

den werden.• Zielplattform:

◦ PC oder CX (x86, x64): XP, XPe, WES, Win7, WES7, CE7;◦ TwinCAT SPS-Laufzeitsystem Version 3.1.4013 oder höher;

Hinweis: Je nach RFID Reader Modell wird zur grundlegenden Konfiguration einmalig ein herstellereigenesTool benötigt. (siehe dazu: 'RFID Reader Einstellungen und Handhabung [} 27]') In dem Fall sollten dessenSystemvoraussetzungen beachtet werden. Diese Voreinstellung kann ebenso von einem anderen PC ausvorgenommen werden. Es bietet sich auch die Nutzung von proprietären Testtools für den Aufbau an.

3.2 InstallationDie Installation der TwinCAT 3 Function für Windows basierte Betriebssysteme erfolgt Schritt-für-Schritt.

1. Führen Sie einen Doppelklick auf die herunter geladene Datei „TFxxxx" aus.Hinweis: Bitte starten Sie die Installation unter Windows per „Als Administrator ausführen", indem Siedie Setup-Dateien mit der rechten Maus anklicken und die entsprechende Option im Kontextmenüauswählen.

2. Klicken Sie auf „Next" und akzeptieren Sie dann die Endbenutzervereinbarung

TC3 RFID Reader Communication 7Version: 1.1

Page 8: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

3. Geben Sie Ihre Benutzerdaten ein.

4. Für eine vollständige Installation wählen Sie „Complete" als Installationstyp. Alternativ können Sie jedeKomponente separat installieren, indem Sie "Custom" wählen.

TC3 RFID Reader Communication8 Version: 1.1

Page 9: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

5. Wählen Sie „Next“ und „Install" um die Installation zu beginnen.

Das TwinCAT System muss gestoppt werden um mit der Installation fortzufahren.

6. Bestätigen Sie den Dialog mit „Yes“

TC3 RFID Reader Communication 9Version: 1.1

Page 10: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

7. Wählen Sie „Finish" um das Setup zu beenden.

ð Damit ist die Installation abgeschlossen.

Der nächste Schritt nach einer erfolgreichen Installation ist die Lizensierung der TC3 Function [} 10].

3.3 LizensierungDie TwinCAT 3 Function ist zusätzlich zur Vollversion auch in einer 7-Tage Testversion freischaltbar. BeideLizenztypen sind über TwinCAT XAE aktivierbar. Weitere Information zum TwinCAT 3Lizensierungsverfahren finden Sie im TwinCAT 3 Hilfesystem. Das folgende Dokument beschreibt denLizensierungsvorgang einer TwinCAT 3 Function und gliedert sich dabei in die folgenden beidenUnterkapitel:

• Lizensierung einer 7-Tage Testversion [} 10]

• Lizensierung einer Vollversion [} 11]

Lizensierung einer 7-Tage Testversion1. Starten Sie TwinCAT XAE2. Öffnen Sie ein bestehendes TwinCAT 3 Projekt, oder legen Sie ein neues Projekt an3. Navigieren Sie im “Solution Explorer” zum Eintrag „System\License“

TC3 RFID Reader Communication10 Version: 1.1

Page 11: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

4. Öffnen Sie die Registerkarte „Manage Licenses" und fügen Sie eine „Runtime License" für IhrProdukt hinzu (in diesem Screenshot „TE1300: TC3 Scope View Professional")

5. Optional : Möchten Sie die Lizenz für ein Remote Gerät hinzufügen, müssen Sie sich zunächst mitdiesem Gerät über die TwinCAT XAE Toolbar verbinden

6. Aktivieren Sie in der Registerkarte „Order Information" über den Button „Activate 7 Days TrialLicense..." eine Testversion

7. Starten Sie im Anschluss daran das TwinCAT 3 System einmal neu

Lizensierung einer Vollversion8. Starten Sie TwinCAT XAE9. Öffnen Sie ein bestehendes TwinCAT 3 Projekt oder legen Sie ein neues Projekt an

TC3 RFID Reader Communication 11Version: 1.1

Page 12: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

10. Navigieren Sie im "Solution Explorer" zum Eintrag „SYSTEM/License"

11. Öffnen Sie die Registerkarte „Manage Licenses" und fügen Sie eine „Runtime License" für IhrProdukt hinzu (in diesem Screenshot " TE1300: TC3 Scope View Professional ").

12. Optional: Möchten Sie die Lizenz für ein Remote Gerät hinzufügen, müssen Sie sich zunächst mitdiesem Gerät über die TwinCAT XAE Toolbar verbinden

13. Öffnen Sie die Registerkarte „Order Information"Die Felder „System-ID" und „HW Platform" können nicht geändert werden, sie beschreiben die zulizensierende Plattform. Generell wird eine TwinCAT 3 Lizenz an zwei Kennzahlen gebunden:Die „System-ID" identifiziert Ihr Gerät eindeutig.Die „HW Platform" ist eine Kennzahl für die Performanz des Gerätes.

14. Tragen Sie optional eine eigene Bestellnummer und einen Kommentar für Ihre Zwecke ein

TC3 RFID Reader Communication12 Version: 1.1

Page 13: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

15. Generieren Sie in der Registerkarte „Order Information" über den Button „Generate LicenseRequest File..." eine Lizenzanforderungs-Datei, die durch einen Beckhoff-Lizenzserver validiert wird(wenn Ihnen Ihre „Beckhoff License ID“ nicht bekannt ist, wenden Sie sich an Ihren Ansprechpartneraus dem Beckhoff Vertrieb).

16. Nachdem Sie das „License Request File“ gespeichert haben, fragt das System, ob die Datei per Mail anden Beckhoff Lizenz Server geschickt werden soll:

17. Wenn Sie den Dialog mit „Yes" bestätigen, öffnet sich Ihr Standard E-Mail Client und erzeugt eine neueE-Mail für „[email protected]", die das „License Request File" enthält

18. Senden Sie diesen Activation Request an BeckhoffHINWEIS! das „License Response File“ wird an die dieselbe E-Mail Adresse versendet, die das

„License Request File“ verschickt hat19. Kurz darauf erhalten Sie vom Beckhoff-Lizenzserver eine Lizenzdatei,

importieren Sie sie über den Button „Activate License Response File...“, um das Produkt zu aktivieren

TC3 RFID Reader Communication 13Version: 1.1

Page 14: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Installation

20. Wählen Sie in Ihrem Ordnersystem das erhaltene „License Response File" aus

21. Das „License Response File" wird importiert und alle enthaltenen Lizenzen werden aktiviert, sämtlichebetroffenen Demo-Lizenzen werden entfernt

22. Starten Sie TwinCAT neu, um die Lizenz zu aktivieren

HINWEIS! Das Lizenzfile wird automatisch auf Ihre lokale Festplatte unter „...\TwinCAT\3.1\Target\License" kopiert.

TC3 RFID Reader Communication14 Version: 1.1

Page 15: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

4 Technische Einführung

4.1 RFID Reader HardwareMontagehinweise sind den herstellereigenen Produkthandbüchern zu entnehmen. Informationen zurHandhabung zwischen RFID Transponder und Readern sowie Lesegeschwindigkeiten etc. sind ebenfallsvom jeweiligen Hersteller zu beziehen.

Teilweise wird von den RFID Readern ein externer Trigger oder ein Schaltausgang angeboten. Dieser mussfür die Funktionalität der TwinCAT RFID Bibliothek nicht verwendet werden.

Hinweis

HinweisDie TwinCAT RFID Bibliothek bildet nicht den kompletten Leistungsumfang der herstellerei-genen RFID Kommunikationsprotokolle ab. Nähere Informationen sind auch im Befehlssatzdes Bibliotheksbausteines [} 21] beschrieben. Ergänzend kann auf die integrierte Möglich-keit zurückgegriffen werden, Rohdaten zu senden und zu empfangen - siehe dazu den Be-fehl 'eRFC_Send_RawData'.

RFID ReadermodelleDie TwinCAT RFID Bibliothek unterstützt unterschiedliche RFID Reader Modelle.

Die folgende Tabelle gibt an, welche RFID Reader Modelle welcher Hersteller unterstützt werden.

Hinweis: Bei den Abbildungen handelt es sich um Symbolfotos von RFID Leser Modellen. Es kannAbweichungen zu den unterstützten Modellen geben und ebenso wird nicht jedes unterstützte Modell alsFoto abgebildet.

TC3 RFID Reader Communication 15Version: 1.1

Page 16: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

RFID Reader Hersteller RFID Reader Modell SymbolfotoBalluff BIS M-400-007 (RS232)

BIS M-401-007 (RS232)BIS L-6000-007 (2 read heads) (RS232)BIS L-6020-007 (2 read heads) (RS232)

Bildnachweis: BALLUFF

Baltech ID-engine SD-M1415-ANT1F (RS232 or USB)ID-engine SD-LP-ANT1F (RS232 or USB)ID-engine PAD M1415 (USB)

Deister electronic RDL90 (deBus) (RS232, RS485) UDL 500 (deBus) (RS485)PRM5M/2V (deBus) (RS232, RS485)

TC3 RFID Reader Communication16 Version: 1.1

Page 17: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

RFID Reader Hersteller RFID Reader Modell SymbolfotoLeuze electronic RFM12 (SL200) (RS232)

RFM32 (SL200) (RS232)RFM32ex (SL200) (RS232)

Pepperl+Fuchs IDENTControl Compact (2 read heads) [ IC-KP2-2HRX-2V1 ] (RS232)IDENTControl (4 read heads) [IC-KP-R2-V1](RS232)

Teilweise werden veraltete Firmwareversionen seitens der Reader nicht unterstützt.

Folgende RFID Reader Modelle sind laut Herstellerbeschreibung und -protokoll kompatibel. DieKompatibilität der gelisteten Modelle sowie sonstiger Modelle ist jedoch nicht von Beckhoff bestätigt.Die Geräte werden nicht offiziell unterstützt. Vor Verwendung wird eine Kontaktaufnahme zu BeckhoffAutomation empfohlen.

RFID Reader Hersteller Reader ModelleBalluff BIS M-6000Baltech ID-engine series (BRP)Deister electronic RDL30; RDL150; RDL160; UDL 50; UDL 100; UDL 120; UDL 150; UDL 160;

PRM5Leuze electronic RFM62 (SL200)Pepperl+Fuchs IDENTControl Compact (1 read head)

Eine Unterstützung weiterer uns nicht bekannter Modelle der obigen Hersteller ist möglicherweise implizitgegeben. Laut Deister electronic ist in weiteren Modellen dasselbe Protokoll (deBus) implementiert. EineVerwendung dieser Modelle ist ggf. nur mit beschränktem Funktionsumfang möglich.

Des Weiteren bieten manche Hersteller eigene Software an, um ihre Geräte für Beckhoff TwinCAT Systemezugänglich zu machen.

TC3 RFID Reader Communication 17Version: 1.1

Page 18: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Hinweis

HinweisWeitere RFID Reader werden mit der TwinCAT SPS Bibliothek Serielle Kommunikation un-terstützt. So ist es mit dieser Bibliothek möglich mit einem beliebigen seriellen Gerät Daten-bytes auszutauschen.Diese Alternative zur TwinCAT SPS RFID Bibliothek kann sinnvoll sein bei Read-OnlyRFID Readern. So können nicht unterstützte Geräte dennoch mit TwinCAT an einer Beck-hoff Steuerung verwendet werden. Falls allein die Seriennummer das Transponders erfor-derlich ist und diese autark vom RFID Gerät gesendet wird, ist der Aufwand einer Auswer-tung der empfangenen Bytes überschaubar.

TranspondertypenEine vollständige Liste aller unterstützter Transpondertypen ist dem Handbuch des jeweiligem RFIDReaders zu entnehmen. Welcher Transpondertyp für die Applikation sinnvoll scheint ist ebenfalls bei Bedarfmit dem Hersteller der RFID Reader oder Transponder zu klären.

Die TwinCAT Bibliothek arbeitet mit den Daten, welche aus der seriellen Schnittstelle bezogen werden. Dasserielle Übertragungsprotokoll des Herstellers ist demnach entscheidend für eine Unterstützung durch diePLC Bibliothek. Die verwendete Funkfrequenz ist beispielsweise irrelevant.

Folgende Tabelle gibt exemplarisch an, welche Transpondertypen bei den jeweiligen RFID Reader Modellenlaut Hersteller unterstützt werden. Diese Liste ist nicht vollständig. Vollständige und weitergehendeInformationen hält der jeweilige Hersteller des RFID Reader Modells bereit.Zu beachten ist, dass manche RFID Reader nur Transponder mit bestimmten Herstellerkennungenakzeptieren. Auf diese Beschränkung kann leider kein Einfluss genommen werden.

RFID Reader Modell RFID TranspondertypenBalluff M-401 [13.56 MHz] Fujitsu MB89R118; I-Code SLI; Infineon My-D SRF55(1024 Bytes);

Mifare Classic (752 Bytes); TI TagIT HFI (256 Bytes), ...Balluff L-6000 [125KHz]Baltech ID-engine SD ANT1F (M1415, LP) [13.56 MHz] Infineon My-D, Legic Prime, Mifare Classic, ...Deister electronic RDL90 [13.56 MHz] I-Code SLI; Infineon My-D SRF55(1024 Bytes), ...Deister electronic UDL 500 [868 MHz] EPCclass1gen2 (12 Bytes), ...Deister electronic PRM5 [13.56 MHz] Mifare Classic (752 Bytes), ...Leuze electronic RFM12, RFM32, RFM32ex [13.56 MHz] I-Code SLI; Infineon My-D SRF55(1024 Bytes); TI TagIT HFI (256

Bytes), ...Pepperl+Fuchs IDENTControl Compact [125 KHz; 250 KHz; 13.56 MHz; 2.45 GHz (depends on read head)]

I-Code SLI; Fujitsu MB89R118; TI TagIT HFI; Infineon My-D SRF55, ...

Diese Transpondertypen sind zudem in weiteren Speichergrößen erhältlich. Eine Kompatibilität isthardwareabhängig und wird nicht garantiert. Ein Test wird empfohlen.

Teilweise sind spezielle werksseitige Programmierungen der Transponder möglich. Diese haben keinenEinfluss auf das Protokoll und müssen demnach applikationsabhängig mit Rücksprache zum Herstellerentschieden werden.

Spezifische Transponderparameter, welche in der PLC Bibliothek verwendet werden, können vom Nutzerbei Verwendung eines speziellen Transponders angepasst werden. Siehe dazu die Beschreibung derStruktur ST_RFID_AccessData [} 52].Transponder werden bis zu einer maximalen Größe von 64 Kilobytes seitens der TwinCAT RFID Bibliothekunterstützt.

TC3 RFID Reader Communication18 Version: 1.1

Page 19: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Frequency Transponder Ty-pes

HF standards range metallicinfluence

fluid in-fluence

data rate radio in-teraction

hardwarepositio-ning

tempera-ture influ-ence

LF 125-135KHz

... ISO 11784/5,ISO 14223,ISO 18000-2

< 2m + + + - - + + ++

HF 13,56 MHz FujitsuMB89R118, I-Co-de SLI, InfineonMy-D, Legic, Mifa-re, TI TagITHFI, ...

ISO 14443,ISO 15693,ISO 18000-3

< 1m + + + + + + +

UHF 865-868MHz (EU),902-928 MHz(USA)

EPCclass1-gen2, ...

ISO 18000-6,EPC-Gen2

< 10m - - + + + +

MW 2,45 GHz ... < 12m - - + + + + - -

[++ very good; + good; - bad]

4.2 RFID Reader AnbindungAlle mittels dieser SPS Bibliothek unterstützten RFID Reader werden über serielleKommunikationsschnittstellen mit der Steuerung verbunden (RS 232, RS 422, RS 485 und virtuelle serielleCOM Ports).

Dazu können folgende Beckhoff Produkte genutzt werden:

- Serielle EtherCAT Klemmen: EL6001, EL6002, EL6021, ...

- Serielle K-Bus Klemmen: KL6001/KL6031, KL6021, ...

- COM-Port eines beliebigen IPC und Embedded PC mit TwinCAT System.

Hinweis: Es muss je RFID Reader eine separate Verbindung zu einer separaten Klemme erfolgen. EineUnterstützung mehrerer RFID Reader an einem RS485 Netz ist mit der SPS RFID Bibliothek vorerst nichtgegeben.

Einrichten der seriellen Kommunikation in TwinCAT 3 XAEDer serielle Datenaustausch wird mit den Bausteinen der TwinCAT SPS Bibliothek Tc2_SerialComeingerichtet.

TC3 RFID Reader Communication 19Version: 1.1

Page 20: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Legen Sie einen Sende- sowie einen Empfangsbuffer vom Type ComBuffer an. Dies kann global geschehen,muss aber nicht zwangsläufig.Legen Sie außerdem noch zwei Daten Strukturen an, wie Sie im TwinCAT System Manager zur seriellenKommunikation verwendet werden:

Falls der COM Port verwendet wird, sieht dies wie folgt aus:gPcComRxBuffer :ComBuffer;gPcComTxBuffer :ComBuffer;PcComInData AT %I* :PcComInData;PcComOutData AT %Q* :PcComOutData;

Neben PcComInData/PcComOutData sind bei Verwendung einer seriellen Klemme EL6inData22B/EL6outData22B sowie KL6inData5B/KL6outData5B und andere Datentypen möglich. Diese Strukturenwerden im System Manager mit den Kanälen der seriellen Schnittstelle verlinkt.Hinweis: Bei Verwendung des ComPorts muss hierzu im System Manager am IO Gerät zusätzlich derSyncMode aktiviert werden.Hinweis: Im System Manager müssen die SPS Variablen der richtigen (schnellen) Task zugeordnet und vondort passend verlinkt sein.

Zur seriellen Kommunikation muss eine Instanz des 'SerialLineControl' angelegt werden. Diese wird in einerschnellen Task (<= 1 ms) zyklisch aufgerufen. Die nötige Taskzykluszeit ist abhängig von der Anwendung,der Datenmenge, der Baudrate und der Schnittstelle.Je nach Anwendung und Schnittstelle ist es oft sinnvoll dies in einer zusätzlichen Task auszuführen, welcheschneller ist als die Task der Applikation.Beispiel 1: Beim Anschluss eines RFID Gerätes an einen COM Port und einer Baudrate von 115200 Baud isteine Zykluszeit von 1ms notwendig.Beispiel 2: Beim Anschluss eines RFID Gerätes an eine EL6001 und einer Baudrate von 9600 Baud ist eineZykluszeit von maximal 6ms notwendig.

Weitere Informationen sowie Erläuterungen zur Verwendung virtueller COM Ports sind in der Dokumentationder SPS Bibliothek Serielle Kommunikation zu finden.

Exemplarische Darstellung der COM Port Einstellungen im TwinCAT System Manager:

Der Aufruf des SerialLineControl ist im Folgenden exemplarisch dargestellt.

Aufruf als StructuredText im Falle der COM Port Verwendung:LineControl(    Mode      := SERIALLINEMODE_PC_COM_PORT,    pComIn    := ADR(PcComInData),    pComOut   := ADR(PcComOutData),    SizeComIn := SIZEOF(PcComInData),    TxBuffer  := gPcComTxBuffer,    RxBuffer  := gPcComRxBuffer);

Aufruf als StructuredText im Falle der Verwendung einer EtherCAT Klemme:

TC3 RFID Reader Communication20 Version: 1.1

Page 21: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

LineControl(    Mode      := SERIALLINEMODE_EL6_22B,    pComIn    := ADR(EL6ComInData),    pComOut   := ADR(EL6ComOutData),    SizeComIn := SIZEOF(EL6ComInData),    TxBuffer  := gEL6ComTxBuffer,    RxBuffer  := gEL6ComRxBuffer);

Aufruf als StructuredText im Falle der Verwendung einer K-Bus Klemme:KL6Config3(    Execute       := bConfig3,    Mode          := SERIALLINEMODE_KL6_5B_STANDARD,    Baudrate      := 9600,    NoDatabits    := 8,    Parity        := 0,    Stopbits      := 1,    Handshake     := RS485_FULLDUPLEX,    ContinousMode := FALSE,    pComIn        := ADR(KlComInData3),    pComOut       := ADR(KlComOutData3),    SizeComIn     := SIZEOF(KlComInData3),    Busy => bConfig3Act,    Done => bConfig3Done,    Error => bConfig3Error);IF NOT KL6Config3.Busy THEN    bConfig3 := FALSE;

    LineControl3(        Mode      := SERIALLINEMODE_KL6_5B_STANDARD,        pComIn    := ADR(KlComInData3),        pComOut   := ADR(KlComOutData3),        SizeComIn := SIZEOF(KlComInData3),        TxBuffer  := gKlComTxBuffer3,        RxBuffer  := gKlComRxBuffer3    );END_IF

4.3 RFID BefehlssatzFolgende Matrix listet den zur Verfügung stehenden Befehlssatz auf.

Wegen der grundsätzlichen Unterschiede der verschiedenen RFID Reader Modelle können nicht alleBefehle bei jedem Modell zur Verfügung gestellt werden.Die Komplexität mancher propietärer Protokolle macht es zwangsläufig erforderlich, dass nicht jeder Befehloder jede detaillierte Parametriermöglichkeit auch über die TwinCAT PLC Bibliothek gegeben sein kann. InEinzelfällen kann deshalb auf die weniger komfortable Kommunikationsmöglichkeit mittels dem angebotenenLowLevel Interface zurückgegriffen werden. Informationen dazu sind unter der Befehlsbeschreibung'SendRawData' und im Kapitel Low Level Kommunikation [} 41] zu finden.

Informationen zu den Eigenschaften und Eigenarten der proprietären Protokolle sind zu jedem Modell vomHersteller zu beziehen und werden meist mit dem Gerät mitgeliefert. Diese Protokoll-Spezifikationen solltenzumindest beim Anwender vorhanden sein, um Detailfragen recherchieren zu können und Eigenarten desRFID Readers nachzulesen. Auf die Eigenarten der einzelnen RFID Reader wird bereits soweit möglich anden speziellen Stellen innerhalb dieser Dokumentation hingewiesen. Allerdings bleibt der Hersteller derRFID Geräte weiterhin selber in der Verantwortung seine Geräte zu beschreiben und deren Verhalten undEigenschaften zu gewährleisten. Eine detaillierte Beschreibung jedes Befehls und des speziellen Verhaltensdes RFID Readers ist in den proprietären Protokoll-Spezifikationen gegeben. Welcher herstellerproprietäreBefehl dem hier gelisteten Befehl entspricht wird im Folgenden jeweils kursiv angegeben. Details könnenebenso der Ausgangsstruktur ST_RFID_RawData [} 45] des Funktionsbausteines FB_RFIDReaderentnommen werden.

TC3 RFID Reader Communication 21Version: 1.1

Page 22: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Command Balluff BIS M-40xBISL-60x0

BaltechIDE SDANT1F

DeisterelectronicRDL90

DeisterelectronicUDL 500

DeisterelectronicPRM5M/2V

LeuzeelectronicRFM12;RFM32;RFM32ex

Pepperl+FuchsIDENTControlCompact

GetReaderVersion[} 22]

x x x x x x

GetConfig [} 22] x x x x

SetConfig [} 23] x x x x

GetInventory[} 23]

x x x x x

Polling [} 23] x x x

TriggerOn [} 23] x x x

TriggerOff [} 23] x x x

AbortCommand[} 24]

x x x

ResetReader[} 24]

x x x x x x x

ReadBlock [} 24] x x x x x x

WriteBlock [} 24] x x x x x x

OutputOn [} 25] x x x

OutputOff [} 25] x x x

FieldOn [} 25] x x x x

FieldOff [} 25] x x x x

SendRawData[} 25]

x x x x x x x

ChangeDCType[} 25]

x

Diese Liste ist analog zur Enumeration E_RFID_Command [} 64] in der RFID SPS Bibliothek.Eine erfolgreiche Bearbeitung des angefragten Befehls durch den RFID Reader ist an den Statusausgängendes Funktionsbausteines sowie an der jeweiligen Response zu erkennen. Eine Liste möglicher Responsesist unter E_RFID_Response [} 65] einzusehen.

Im Folgenden werden die Befehle im Einzelnen erläutert:

GetReaderVersion [16#01]Mit diesem Befehl können Informationen zum RFID Reader abgefragt werden. Je nach Verfügbarkeit wirddie Modellbezeichnung, die Hard- und Softwareversion des Readers etc. am Bausteinausgang in derStruktur ST_RFID_ReaderInfo [} 43] ausgegeben.

Entsprechung im proprietären Protokoll:Deister: 0x02Leuze: 'V'Pepperl+Fuchs: 'VE'Baltech: System GetInfo

GetConfig [16#02]Mit diesem Befehl wird die aktuelle Konfiguration des RFID Readers abgefragt. Alle relevantenempfangenen Parameter werden unter ST_RFID_Config [} 51] erläutert.

Weitere Informationen sind im Kapitel Konfiguration [} 40] zusammengefasst.

TC3 RFID Reader Communication22 Version: 1.1

Page 23: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Entsprechung im proprietären Protokoll:Deister: 0x09Leuze: 'G'Pepperl+Fuchs: 'GS'

SetConfig [16#03]Parametrierte Konfigurationseinstellungen können auf den RFID Reader übertragen werden. NähereInformationen zur möglichen Konfiguration des RFID Readers befinden sich unter ST_RFID_ConfigIn [} 50].

Es wird empfohlen nach einem Konfigurationsbefehl erneut die aktuelle Konfiguration des Readers mittelsdem Befehl GetConfig abzufragen.Weitere Informationen sind im Kapitel Konfiguration [} 40] zusammengefasst.

Entsprechung im proprietären Protokoll:Baltech: System CfgWriteTLVBlockDeister: 0x09Leuze: 'C'

GetInventory [16#04]Mit diesem Befehl wird der Typ und die Seriennummer eines aktuell im Lesefeld befindlichen Transpondersabgefragt. Falls kein Transponder gefunden wird folgt eine entsprechende Response.

Hinweis: Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wirdfestgelegt für welchen Lesekopf der Befehl auszuführen ist.

Entsprechung im proprietären Protokoll:Balluff: 'U'Deister: 0x82Leuze: 'I'Pepperl+Fuchs: 'SF' & 'EF'Baltech: VHLSelect + VHLGetSnr

Polling [16#05]Informationen aus dem Stack des RFID Readers werden abgefragt. Dabei kann es sich beispielsweise umdie Seriennummer des letzten Transponders handeln. Es ist zu beachten, dass unterschiedliche RFIDReader verschieden große Stacks besitzen und teils nur eine Nachricht gespeichert wird.

Hinweis zur Präsenzerkennung: Falls dies nicht über einen Konfigurationsparameter eingestellt werdenkann, ist es nötig den Reader mittels zyklischem Polling Kommando lesebereit zu halten, so dass einTransponder in Reichweite automatisch detektiert wird.

Entsprechung im proprietären Protokoll:Deister: 0x0B

TriggerOn [16#06]Falls der Trigger Mode aktiv ist kann mit diesem Befehl ein Software Trigger anstatt eines Hardware Triggersausgelöst werden.

Das darauffolgende Antworttelegramm wird vom Funktionsbaustein der Tc RFID Bibliothek empfangen. EineZuweisung von gelesenen Transponderdaten ist in dem Fall nicht gegeben. Die empfangenen Rohdatenkönnen zur weiteren Verarbeitung dem Bausteininterface entnommen werden.

Entsprechung im proprietären Protokoll:Deister: 0x85Leuze: '+'

TriggerOff [16#07]Siehe TriggerOn.

TC3 RFID Reader Communication 23Version: 1.1

Page 24: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Entsprechung im proprietären Protokoll:Deister: 0x85Leuze: '-'

AbortCommand [16#08]Falls ein Befehl seitens des RFID Readers in Bearbeitung ist, wird er mit diesem Kommando abgebrochen.

Hinweis: Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wirdfestgelegt für welchen Lesekopf der Befehl auszuführen ist.

Entsprechung im proprietären Protokoll:Leuze: 'H'Pepperl+Fuchs: 'QU'

ResetReader [16#09]Dieses Kommando veranlasst den RFID Reader, ein Reset durchzuführen.

Entsprechung im proprietären Protokoll:Balluff: 'Q'Deister: 0x01Leuze: 'R'Pepperl+Fuchs: 'RS'Baltech: System Reset

ReadBlock [16#0A]Mit diesem Befehl wird eine bestimmte Anzahl von Datenbytes in Form von Blöcken definierter Größe ausdem Speicher des Transponders gelesen.

Für diesen Befehl ist die Übergabe der Eingangsstruktur ST_RFID_AccessData [} 52] nötig.Bevor Daten vom Transponder gelesen werden, ist es üblich den Transponder zu erkennen undauszuwählen (siehe Befehl GetInventory).

Hinweis: Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wirdfestgelegt für welchen Lesekopf der Befehl auszuführen ist.

Entsprechung im proprietären Protokoll:Balluff: 'L'Deister: 0x83Leuze: 'N'Pepperl+Fuchs: 'SR' & 'ER'Baltech: VHLRead

WriteBlock [16#0B]Mit diesem Befehl wird eine bestimmte Anzahl von Datenbytes in Form von Blöcken definierter Größe in denSpeicher des Transponders geschrieben.

Für diesen Befehl ist die Übergabe der Eingangsstruktur ST_RFID_AccessData [} 52] nötig.Bevor Daten auf einen Transponder geschrieben werden, ist es üblich den Transponder zu erkennen undauszuwählen (siehe Befehl GetInventory).

Hinweis: Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wirdfestgelegt für welchen Lesekopf der Befehl auszuführen ist.

Entsprechung im proprietären Protokoll:Balluff: 'P'Deister: 0x84Leuze: 'W'Pepperl+Fuchs: 'SW' & 'EW'Baltech: VHLWrite

TC3 RFID Reader Communication24 Version: 1.1

Page 25: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

OutputOn [16#0C]Der Befehl setzt den Schaltausgang des RFID Readers permanent auf TRUE.Hinweis: Dies ist nur möglich, falls der Schaltausgang nicht per Konfiguration automatisch angesprochenwird.

Entsprechung im proprietären Protokoll:Deister: 0x0FLeuze: 'A0FF'

OutputOff [16#0D]Der Befehl setzt den Schaltausgang des RFID Readers permanent auf FALSE.Hinweis: Dies ist nur möglich, falls der Schaltausgang nicht per Konfiguration automatisch angesprochenwird.

Entsprechung im proprietären Protokoll:Deister: 0x0FLeuze: 'A000'

FieldOn [16#0E]Mit diesem Befehl kann das RFID Feld angeschaltet werden.

Entsprechung im proprietären Protokoll:Deister: 0x81Leuze: 'F1'Baltech: System HFReset

FieldOffMit diesem Befehl kann das RFID Feld ausgeschaltet werden.Je nach RFID Reader Modell wird das Feld bei Trigger o.a. automatisch wieder aktiv.

Entsprechung im proprietären Protokoll:Deister: 0x81Leuze: 'F2'Baltech: System HFReset

SendRawData [16#10]Mit diesem Kommando kann der RFID Funktionsbaustein als Low Level Schnittstelle genutzt werden. Die zuübermittelnden Daten werden in der Control Struktur [} 45] als Pointer übergeben. Bibliotheksintern wirdein Telegramm zusammengesetzt und versendet. Es können auf diese Art und Weise beliebige Daten anden RFID Reader gesendet werden.Die daraufhin empfangenen Daten stehen am Ausgang des Funktionsbausteines in der Rohdaten Struktur[} 45] als adressiertes Datenfeld zur Verfügung. Weitere Informationen zum Ablauf im Kapitel Low LevelKommunikation [} 41].

Bei Nutzung des Kommandos SendRawData kann eine Auswertung der empfangenen Antwort nichtgarantiert werden.Beispiel: Wird ein Lesebefehl manuell als Bytefolge mittels des Kommandos SendRawData versandt, sowerden empfangene Transponderdaten nicht auf eine in ST_RFID_AccessData [} 52] angegebene Adressegeschrieben. Eine Auswertung/Speicherung der Daten sollte demnach auch manuell mit Hilfe der immerangegebenen Rohdaten Struktur [} 45] geschehen.

ChangeDCType [16#11]Mit dem Befehl 'ChangeDCType' kann der Transpondertyp am Lesekopf eingestellt werden. Dazu wirdmittels iDCType in ST_RFID_Control [} 45] der Typ angegeben.

TC3 RFID Reader Communication 25Version: 1.1

Page 26: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Technische Einführung

Hinweis: Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wirdfestgelegt für welchen Lesekopf der Befehl auszuführen ist.

Entsprechung im proprietären Protokoll:Pepperl+Fuchs: 'CT'

TC3 RFID Reader Communication26 Version: 1.1

Page 27: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

5 Konfiguration

5.1 RFID Reader Einstellungen und HandhabungDieses Kapitel gibt wichtige Hinweise zu den einzelnen RFID Reader Modellen.

Für jedes Gerät werden die nötigen Einstellungen beschrieben, sowie die Art der Handhabung.

Hier finden Sie Informationen entsprechend der Gerätehersteller.

5.1.1 Balluff

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

Für alle unterstützten RFID Reader Modelle hat sich diese Standardeinstellung der Datenübertragungbewährt:

Einstellung WertBaudrate (RS232 und RS485) 9600 BaudParity Bit noneDatenbits 8Stopbits 1

Bei Bedarf lassen sich je nach Hardware auch andere Parameter einstellen oder es können dieWerkseinstellungen des RFID Readers verwendet werden. Diese müssen dann auch in der softwareseitigenReader Anbindung [} 19] übernommen werden.

Mittels der proprietären Tools müssen vor Systemstart folgende spezielle Einstellungen parametriert werden.

Einstellung WertParameter der Datenübertragung (s.o.) Einstellung in Analogie zu den im PLC Programm gewählten

WertenProtokolltyp - Telegramm Endekennung LF CRDatenträgertyp All Types (oder Einstellung je nach Bedarf)CT-Daten sofort senden deaktiviert (oder aktiviert - es erfolgt jedoch keine Auswertung)Dynamik-Betrieb deaktiviertEinschaltmeldung senden deaktiviert (oder aktiviert - es erfolgt jedoch keine Auswertung)CRC16 Datenprüfung deaktiviertTyp und serial number bei CT pres. deaktiviert (oder aktiviert, je nach Bedarf)

Hinweis: Falls ' Typ und serial number bei CT pres.' aktiviert ist, so sendet der RFID Reader automatischden Transponder Typ und dessen Seriennummer sobald ein Transponder erkannt wurde. Wenn ein Befehlunverzüglich nach der Detektion eines Transponders und Erhalt dieser eingestellten Meldung abgesendetwird, so kann eine korrekte Zuordnung der Art der folgenden Response und eine zugehörige Auswertungnicht garantiert werden. Es wird empfohlen vorhandene Transponder manuell per Befehl 'Get Inventory'abzufragen. Es sollte andernfalls zumindest eine kurze Wartezeit bis zum Absenden des Befehleseingehalten werden und der Aufbau einem Testzyklus unterzogen werden.

TC3 RFID Reader Communication 27Version: 1.1

Page 28: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

Hinweis

HinweisIst der RFID Reader so eingestellt, dass automatisch Telegramme vom Reader zur Steue-rung gesendet werden (beispielsweise bei Detektion eines Transponders durch ' Typ undserial number bei CT pres.') muss folgendes beachtet werden: Die Endekennung (LF CR)wird in dem Fall als Suffix zur Erkennung von Telegrammen genutzt. Sobald diese 2 Bytesim Datenstrom erkannt werden, werden vorherige Daten zu einem Telegramm zusammen-gefasst. Ggf. führt dies zu einem Fehler und fehlender Auswertung des Telegrammes. Soll-te der Fall auftreten können, dass die Endekennung in automatisch gesendeten Telegram-men innerhalb der Daten vorhanden ist, so muss anstatt der automatischen Übertragungeine Datenabfrage mittels Befehlsaufruf gewählt werden. Durch diese Maßnahme werdendie Telegramme sicher erkannt.

RFID Reader HandhabungDie Funktionsbausteine der Bibliothek unterstützen die Kommunikation von Balluff Readern zu Transpondermit 4-8 Bytes Seriennummer.

Bei Verwendung von Balluff RFID Readern wird die Seriennummer bei 13,56Mhz Transpondern imGesamten byteweise vom Bibliotheksbaustein gedreht. Dies geschieht, weil die ausgelesene Seriennummereines Transponders andernfalls nicht mit der an einem anderen Reader ausgelesenen Seriennummerübereinstimmen würde. So lassen sich Geräte verschiedener Hersteller gemeinsam in einem Verbundbetreiben.

Bei Verwendung eines Balluff BIS-L60x0:- Es muss die Variable iDCType = 0 (siehe Eingangsstruktur stCtrl [} 45]) gesetzt werden.- Beim Aufruf des Befehls 'Get Inventory' werden Informationen von beiden Leseköpfen über die serielleSchnittstelle zurückgeliefert. Ausgewertet und am Ausgang stTranspInfo ausgegeben wird jedoch nur dieInformation von dem per stCtrl.iHeadNumber ausgewählten Lesekopfes.- Falls ' Typ und serial number bei CT pres.' aktiviert ist, so sendet der RFID Reader automatisch denTransponder Typ und dessen Seriennummer sobald ein Transponder erkannt wurde. Dies betrifft per defaultnur den ersten Lesekopf. Ein Umschalten auf den zweiten Lesekopf wird hierbei von der Bibliothek nichtdirekt unterstützt. Des Weiteren kann die Nummer des Lesekopfes an dem der Tag erkannt wurde nichtzugewiesen werden (iHeadNumber = 0).

Hinweis: Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID Reader Modellshier genannt werden können. Deshalb wird für detaillierte Informationen auf die herstellereigenenDokumentationen hingewiesen.

5.1.2 BaltechFalls ein unterstütztes Baltech RFID Stand-Alone Gerät verwendet wird, kann die TwinCAT SPS Bibliothekals Schnittstelle genutzt werden.

Eine Alternative ist die Verwendung mit bestimmten Beckhoff Control-Panels oder Panel-PCs. In diesenGeräten kann als Option ein RFID Reader integriert werden.In diesem Fall wird ein SDK mitgeliefert, in dem sich die proprietären Dokumentationen befinden.

TC3 RFID Reader Communication28 Version: 1.1

Page 29: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

In beiden Fällen ist der Funktionsumfang der TwinCAT Bibliothek derselbe.

RFID Reader EinstellungenFür eine reibungslose Kommunikation zwischen Steuerung und RFID Reader müssen manche Einstellungenvor Systemstart vorgenommen werden. Hierzu zählt beispielsweise die Baudrate der seriellenKommunikation. Um diese Einstellungen auf den RFID Reader zu übertragen kann das proprietäre Tool'Baltech id-engine explorer' des RFID Reader Herstellers verwendet werden. Ebenso kann mit dem Tool einFunktionstest gemacht werden, um festzustellen, ob das RFID Gerät erkannt wird und ob die TransponderKarten erkannt werden.

Es hat sich diese Standardeinstellung der Datenübertragung bewährt:

Einstellung WertBaudrate 115200 BaudParity Bit noneDatenbits 8Stopbit 1

Dies entspricht der Werkseinstellung der unterstützten Baltech RFID Geräte. Bei Bedarf lassen sich auchandere Parameter einstellen. Diese müssen dann auch in der softwareseitigen Reader Anbindung [} 19]übernommen werden.Die Baudrate der Lesegeräte kann mit dem Tool 'Baltech id-engine explorer' geändert werden. (sieheBaltech Dokumentation: IdEngineExplorer.pdf)

Hinweis: Das Tool 'Baltech id-engine explorer' ist nur unter Windows XP lauffähig. Es ist nicht für WindowsCE verfügbar. Somit ist die Baudrate unter Windows CE nicht konfigurierbar.Hinweis: In der SPS wird eine schnelle Task benötigt, um die ankommenden Daten zu verarbeiten. BeimAnschluss des RFID Gerätes an einen COM-Port und einer Baudrate von 115200 Baud ist eine Zykluszeitvon 1ms notwendig. (siehe Kapitel Reader Anbindung [} 19])Hinweis: Um die Baudrate aus der SPS zu konfigurieren, kann folgende Bytefolge [ 0x 1C 00 09 06 00 0103 00 02 xx xx - wobei xx xx für die Baudrate steht, so beispielsweise 9600 Baud: 96 Einheiten a 100Baud -> 0x 00 60 ] als Rohdatenblock übertragen werden. Näheres ist im Kapitel Low Level Kommunikation [} 41]erläutert. Dies ist auch unter Windows CE möglich, sofern eine Übertragung mit der derzeitig eingestelltenBaudrate möglich ist.

Verwendung vom virtuellen seriellen COM Port (USB)

Ist das Gerät mittels USB verbunden, so muss der passende Usb-To-Virtual-Com-Port Treiber installiertsein. Handelt es sich um einen Beckhoff Panel-PC, so ist der Treiber bereits vorinstalliert. Ebenso beinhaltetdas SDK des RFID Gerätes den Treiber. Der virtuelle COM Port wird im Windows Gerätemanagerangezeigt.Die Kommunikation zum Treiber erfolgt über die Beckhoff TwinCAT 'Serielle Kommunikcation'. Jedoch wirdkein entsprechendes Gerät im TwinCAT System Manager angelegt und auf eine dortige Verknüpgungverzichtet. Weitere Informationen sind in der Dokumentation der SPS Bibliothek Serielle Kommunikation zufinden.

TC3 RFID Reader Communication 29Version: 1.1

Page 30: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

RFID Reader HandhabungDie Bibliothek unterstützt die üblichen Standardeinstellungen der Baltech Kommunikation. Als 'OperationalMode' wird der Mode 'Host Operation' unterstützt. Andere Modi werden nicht unterstützt. Der Zugriff erfolgtintern über das BRP (Baltech Reader Protocol) im 'Communication Mode' 'Normal Mode'. Falls Rohdatenüber die Low Level Kommunikationsmöglichkeit gesendet werden ist darauf zu achten, dass obigeEinstellungen korrekt innerhalb des Frames angegeben werden.

Hinweis: Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID Reader Modellshier genannt werden können. Deshalb wird für detaillierte Informationen auf die herstellereigenenDokumentationen hingewiesen.

Konfiguration

Falls mit verschlüsselten Transponderkarten gearbeitet wird, so ist es nötig, dass derselbe Schlüssel auchim RFID Gerät bekannt ist. Der Baltech RFID Reader wird einmal konfiguriert. Daraufhin muss der Schlüsselnicht mehr angegeben werden. Ebenso kann der Schlüssel aus Sicherheitsgründen nicht aus derGerätekonfiguration herausgelesen werden. Passend zur Verschlüsselung einer Transponderkarte wird inder Gerätekonfiguration ein VHL-file abgespeichert. Es können mehrere solcher VHL-files abgespeichertwerden, um auf verschiedene Karten Zugriff ohne Umkonfiguration zu erhalten.

Es gibt drei Möglichkeiten, ein solches VHL-file in die Konfiguration des RFID Gerätes zu übertragen.

Konfigurationsart BeschreibungKonfigurationskarte Eine Konfiguration kann über eine Konfigurationskarte übertragen

werden. Dies ist die bevorzugte Variante.Tool 'Baltech id-engine explorer' Mit dem Tool ist die Übertragung einer Konfiguration in den Speicher des

Baltech RFID Gerätes möglich. (siehe Baltech Dokumentation:IdEngineExplorer.pdf)Die spezifische Konfiguration kann in einfachen Fällen direkt in dem Toolerstellt werden. Alternativ bietet die Firma Baltech Unterstützung bei derErstellung an und kann eine Datei mit der Konfiguration zusenden. Hinweis: Das Tool 'Baltech id-engine explorer' ist nur unter Windows XPlauffähig. Es ist nicht für Windows CE verfügbar.

aus der SPS Für Mifare Classic Karten kann die Übertragung einer VHL-fileKonfiguration im SPS Programmcode programmiert werden. Der BefehlSetConfig überträgt die Konfiguration welche am Eingang inST_RFID_ConfigIn [} 50] angegeben ist. Die Struktur einer Mifare Karteund die möglichen Einstellungen zur Schlüsselvergabe sind auf derDetailseite von ST_RFID_CfgStruct_BaltechMifVHLFile [} 53] erläutert.(Ausführliche Informationen zu Mifare Karten finden sich zudem in demBaltech Dokument: Mifare.pdf)

TransponderPassende Transponderkarten für Baltech RFID Geräte können von verschiedenen Herstellern bezogenwerden. Sollen die Karten mit Verschlüsselung genutzt werden, so bietet die Firma Baltech den Vertrieb vonbereits vorkonfigurierten Karten an.

Herstellerkontakt

http://www.baltech.de

TC3 RFID Reader Communication30 Version: 1.1

Page 31: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

5.1.3 Deister electronic

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

Für alle unterstützten RFID Reader Modelle hat sich diese Standardeinstellung der Datenübertragungbewährt:

Einstellung WertBaudrate (RS232 und RS485) 9600 BaudParity Bit noneDatenbits 8Stopbit 1

Bei Bedarf lassen sich je nach Hardware auch andere Parameter einstellen oder es können dieWerkseinstellungen des RFID Readers verwendet werden. Diese müssen dann auch in der softwareseitigenReader Anbindung [} 19] übernommen werden.

Mittels der proprietären Tools müssen gegebenenfalls vor Systemstart folgende spezielle Einstellungenparametriert werden.

Einstellung WertParameter der Datenübertragung (s.o.) Einstellung in Analogie zu den im PLC Programm gewählten

Werten

RFID Reader Handhabung

Hier sei erneut auf die Funktionsweise Polling hingewiesen (siehe Befehlsbeschreibung [} 21]), welche einenmehrfachen Aufruf des Befehls sinnvoll macht, falls auf aktuelle Transponderinformationen Wert gelegt wird.Hinzu kommt die Eigenart, dass bei den proxEntry Modellen ein Polling Befehl anliegen muss, um dieVerbindung zum Transponder aufzubauen. Bei den UDL Modellen sieht die Konfiguration wiederum einenautomatischen Verbindungsaufbau zu detektierten Transpondern vor, so dass kein Polling Befehlzwangsweise nötig ist.

In der RFID Reader Konfiguration muss die dem Tag entsprechende Blockgröße konfiguriert sein.Die Deister RDL Geräte unterstützen 4 Bytes oder 8 Bytes Blockgröße.Beispiel: Falls für den Transponder eine Blockgröße von 8 Byte angegeben ist, muss der Reader mit demParameter iBlocksize:=8 konfiguriert sein und der Lese- bzw. Schreibzugriff über die StrukturST_RFID_AccessData [} 52] muss mit 8 Byte Blockgröße geschehen.

Deister RDL: Mit einem Schreibbefehl können maximal 36 Bytes Daten am Stück geschrieben werden.Sollen mehr Daten auf den Transponder geschrieben werden, müssen diese auf mehrere Befehle aufgeteiltwerden.

Hinweis: Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID Reader Modellshier genannt werden können. Deshalb wird für detaillierte Informationen auf die herstellereigenenDokumentationen hingewiesen.

Konfiguration

Wird eine neue Konfiguration auf das RFID Gerät geschrieben (Befehl 'SetConfig') muss Folgendes beachtetwerden:

Deister RDL Geräte: Nicht jede Kombination von Konfigurationparametern (Struktur ST_RFID_CfgStruct_DeisterRDL [} 56]) istzulässig. Eine Missachtung der erforderlichen Abhängigkeiten führt zu einem Fehler (eRFERR_InvalidCfg):

TC3 RFID Reader Communication 31Version: 1.1

Page 32: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

Konfigurationsparameter erforderliche AbhängigkeiteneReadMode = eRFRD_ContinuousRead eTriggerMode = eRFTR_ImmediateRead

eWriteMode = eRFWR_ImmediateWriteeWriteMode = eRFWR_WriteToNextTag eTriggerMode = eRFTR_ReadWithTriggerbMultiTranspMode = TRUE bSerialNumberMode = TRUE

eWriteMode = eRFWR_ImmediateWriteeReadMode = eRFRD_SingleShot

Wird die Konfiguration als Register übertragen bestehen diese Abhängigkeiten ebenso und das RFID Gerätwird bei Unzulässigkeit einen Fehlercode zurückliefern.

5.1.4 Leuze electronic

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

Für alle unterstützten RFID Reader Modelle hat sich diese Standardeinstellung der Datenübertragungbewährt:

Einstellung WertBaudrate (RS232 und RS485) 9600 BaudParity Bit noneDatenbits 8Stopbit 1

Bei Bedarf lassen sich je nach Hardware auch andere Parameter einstellen oder es können dieWerkseinstellungen des RFID Readers verwendet werden. Diese müssen dann auch in der softwareseitigenReader Anbindung [} 19] übernommen werden.

Mittels der proprietären Tools müssen gegebenenfalls vor Systemstart folgende spezielle Einstellungenparametriert werden.

Einstellung WertParameter der Datenübertragung (s.o.) Einstellung in Analogie zu den im PLC Programm gewählten

Werten

Sollte der RFID Reader mittels eines Triggers angesteuert werden, so wird das darauffolgendeAntworttelegramm vom Funktionsbaustein der Tc RFID Bibliothek empfangen. Eine Zuweisung vongelesenen Transponderdaten ist in dem Fall nicht gegeben. Die empfangenen Rohdaten können zurweiteren Verarbeitung dem Bausteininterface entnommen werden.

RFID Reader HandhabungIn der RFID Reader Konfiguration muss die dem Tag entsprechende Blockgröße konfiguriert sein.Die Leuze Geräte unterstützen 4 Bytes oder 8 Bytes Blockgröße.Beispiel: Falls für den Transponder eine Blockgröße von 8 Byte angegeben ist, muss der Reader mit demParameter iBlocksize:=8 konfiguriert sein und der Lese- bzw. Schreibzugriff über die StrukturST_RFID_AccessData [} 52] muss mit 8 Byte Blockgröße geschehen.

Mit einem Schreibbefehl können maximal 36 Bytes Daten am Stück geschrieben werden. Sollen mehr Datenauf den Transponder geschrieben werden, müssen diese auf mehrere Befehle aufgeteilt werden.

Hinweis: Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID Reader Modellshier genannt werden können. Deshalb wird für detaillierte Informationen auf die herstellereigenenDokumentationen hingewiesen.

TC3 RFID Reader Communication32 Version: 1.1

Page 33: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

Konfiguration

Wird eine neue Konfiguration auf das RFID Gerät geschrieben (Befehl 'SetConfig') muss Folgendes beachtetwerden:

Nicht jede Kombination von Konfigurationsparametern (Struktur ST_RFID_CfgStruct_LeuzeRFM [} 61]) istzulässig. Eine Missachtung der erforderlichen Abhängigkeiten führt zu einem Fehler (eRFERR_InvalidCfg):

Konfigurationsparameter erforderliche AbhängigkeiteneReadMode = eRFRD_ContinuousRead eTriggerMode = eRFTR_ImmediateRead

eWriteMode = eRFWR_ImmediateWriteeWriteMode = eRFWR_WriteToNextTag eTriggerMode = eRFTR_ReadWithTriggerbMultiTranspMode = TRUE bSerialNumberMode = TRUE

eWriteMode = eRFWR_ImmediateWriteeReadMode = eRFRD_SingleShot

Wird die Konfiguration als Register übertragen bestehen diese Abhängigkeiten ebenso und das RFID Gerätwird bei Unzulässigkeit einen Fehlercode zurückliefern.

5.1.5 Pepperl+Fuchs

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

Für alle unterstützten RFID Reader Modelle hat sich diese Standardeinstellung der Datenübertragungbewährt:

Einstellung WertBaudrate (RS232 und RS485) 9600 BaudParity Bit noneDatenbits 8Stopbit 1

Bei Bedarf lassen sich je nach Hardware auch andere Parameter einstellen oder es können dieWerkseinstellungen des RFID Readers (38400 Baud) verwendet werden. Diese müssen dann auch in dersoftwareseitigen Reader Anbindung [} 19] übernommen werden.

RFID Reader HandhabungBei Systemstart müssen die Modellinformationen (Befehl 'GetReaderVersion') und die aktuelle ReaderKonfiguration (Befehl 'GetConfig') ausgewertet werden.

Der empfangene Status des Gerätes wird über den Ausgang iErrCodeRcv des FunktionsbausteinesFB_RFIDReader angezeigt und im Fehlerfall durch bError=TRUE und iErrorId=eRFERR_ErrorRcvsignalisiert. Die Leseköpfe besitzen ebenfalls eigene Status. Diese können mit der über 'GetConfig'gelesenen Konfigurationsstruktur [} 63] 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önnendiese 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 zudemden Datenträger schneller.

Beim Lese- sowie Schreibzugriff auf den Datenspeicher eines Transponders muss für alle Pepperl+FuchsRfid Geräte eine Blockgröße (siehe ST_RFID_AccessData [} 52]) passend zum Transponder verwendetwerden!

TC3 RFID Reader Communication 33Version: 1.1

Page 34: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

Blockgrößen möglicher Transponder:

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

HINWEIS! Hier sei darauf hingewiesen, dass nicht alle Eigenarten jedes unterstützten RFID ReaderModells hier genannt werden können. Deshalb wird für detaillierte Informationen auf dieherstellereigenen Dokumentationen hingewiesen.

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

Buffered Command - Gepufferter Befehl

Mit der Eingangsvariablen bBufferedCmd in ST_RFID_Control [} 45] können Befehle abgesetzt werden, diefü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.

HINWEIS! Ist an einem Lesekopf ein solch gepufferter Befehl aktiv, darf der Trigger Mode nicht fürdiesen 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 alleKanä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 folgendeMöglichkeit:Der Trigger liefert eine Meldung, ob er gerade ausgelöst oder ob der Triggerbereich verlassen wird. DieseMessages werden empfangen und als eResponse = eRFR_CmdConfirmation oder eRFR_NoTransponderangezeigt. 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örigeIdentkanal = 0 sein. Der notwendige Rohdatenbefehl ist im nächsten Absatz erläutert.

HINWEIS! Die Triggereinstellung darf nicht vom herstellereigenen Tool aus vorgenommen werden.Andernfalls sind die daraufhin eintreffenden Meldungen des Sensorkanals nicht von dem Baustein derTwinCAT Bibliothek lesbar.

HINWEIS! Die korrekte Einstellung des Trigger Mode sollte mit dem Befehl 'GetConfig' und derAuswertung der gelesenen Konfigurationsstruktur überprüft werden. So kann die Einstellung fallsnötig bei Programmstart nachgeholt werden.

Einstellungen per Rohdatenbefehle absetzen

Details sind dem Kapitel LowLevelKommunikation [} 41] und der Beschreibung der StrukturenST_RFID_Control [} 45] sowie ST_RFID_RawData [} 45] zu entnehmen.

Baudrate:

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

ASCII hexCI0,9600 43 49 30 2C 39 36 30 30

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

TC3 RFID Reader Communication34 Version: 1.1

Page 35: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Konfiguration

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 hexTM300 54 4D 33 30 30

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

ASCII hexTM201 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 gesendetwurde.

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

ASCII hexTM402 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 gesendetwurde.

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

TC3 RFID Reader Communication 35Version: 1.1

Page 36: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

6 API

6.1 SPS Referenz

6.1.1 Funktionsbaustein FB_RFIDReader

6.1.1.1 Funktionsbaustein-Schnittstelle

Die TwinCAT RFID Bibliothek besteht lediglich aus einem Funktionsbaustein.

Dessen Schnittstelle ist weitgehend selbsterklärend. Für einen schnellen Einstieg in die Handhabung derBibliothek folgt eine Erläuterung der Schnittstellenvariablen.Ebenso sei auf das Tutorial [} 69] und die Beispiele hingewiesen.

Die einheitliche Handhabung für alle RFID Reader Modelle und die damit verbundenen aufbereitetenSchnittstellendeklarationen sind besonders anwenderfreundlich.

Allerdings sei darauf hingewiesen, dass der Funktionsbaustein der RFID Bibliothek aufgrund derUnterschiede einiger RFID Reader Modelle einen geringfügigen Overheat besitzt. Diese unabdingbareEigenschaft wird jedoch stark durch die Vorteile überwogen, welche die verfügbare Flexibilität bietet.

EingangsvariablenVAR_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

bExecute

Um Nachrichten des RFID Readers zu empfangen wird der Funktionsbaustein mit FALSE an diesemEingang aufgerufen.Der Funktionsbaustein reagiert auf eine positive Flanke von bExecute indem der ausgewählte BefehleCommand ausgeführt bzw. beim RFID Reader angefragt wird.

eCommand

Der Eingang eCommand bietet eine Auswahl an Befehlen, wie beispielsweise Lesen oder Schreiben einesTransponders, in Form einer Enumeration an. Siehe Beschreibung des Befehlssatzes [} 21]. Ein Befehl wirdausgeführt indem der Eingang bExecute gesetzt wird.

TC3 RFID Reader Communication36 Version: 1.1

Page 37: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

stAccessData

Falls ein Schreib- oder Lesebefehl ausgeführt werden soll müssen mit dieser Eingangsstruktur Parameterübergeben werden. Details zu dieser Struktur: ST_RFID_AccessData [} 52]

stCtrl

Mit stCtrl können unterschiedliche Kontrollparameter am Eingang übergeben werden. Dazu gehört unteranderem auch die Möglichkeit, Verzögerungszeiten anzugeben. Details zu dieser Struktur: ST_RFID_Control[} 45]

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 Beschreibung der Konfigurationsmöglichkeiten [} 40].Details zu dieser Struktur: ST_RFID_ConfigIn [} 50]

eManufacturer

An diesem Eingang wird der Hersteller des verwendeten RFID Reader Modells angegeben. Details zu dieserEnumeration: E_RFID_ReaderManufacturer [} 67]

tTimeOut

Gibt eine maximale Zeitdauer für die Ausführung des Funktionsbausteines an. Der Defaultwert ist 5Sekunden.

Hinweis: Es gilt die Bedingung 'tTimeOut > tPreSendDelay + tPostSendDelay'. Andernfalls wird ein Fehler amAusgang ausgegeben. Siehe Details zu den Verzögerungszeiten in ST_RFID_Control [} 45].

Ein-/AusgangsvariablenVAR_IN_OUT    RxBuffer        : ComBuffer;    TxBuffer        : ComBuffer;END_VAR

RxBuffer

Es wird der Empfangspuffer angegeben, welcher als Eingangsvariable deklariert und im TwinCAT SystemManager mit der seriellen Klemme verlinkt wurde.Siehe dazu die Beschreibung der seriellen Anbindung eines RFID Readers [} 19].

TxBuffer

Es wird der Ausgangspuffer angegeben, welcher als Ausgangsvariable deklariert und im TwinCAT SystemManager mit der seriellen Klemme verlinkt wurde.Siehe dazu die Beschreibung der seriellen Anbindung eines RFID Readers [} 19].

AusgangsvariablenVAR_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

bBusy

TC3 RFID Reader Communication 37Version: 1.1

Page 38: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Der Ausgang bBusy wird bei einem gültigen Kommandoaufruf für mindestens einen Takt TRUE. DerFunktionsbaustein 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 Sendezustandist. Somit können, wenn bBusy = FALSE erkannt wird, wiederum alle weiteren AusgangsvariablenbResponseRcv, eResponse, bError, iErrCodeRcv, ... und stRawData ausgewertet werden. Wird zu einemgetätigten Kommandoaufruf eine Response erwartet, so bleibt der Funktionsbaustein so lange bBusy =TRUE bis ein Telegram empfangen wird oder das Timeout tTimeOut erreicht wird.Falls dem Funktionsbaustein Verzögerungszeiten tPreSendDelay und/oder tPostSendDelay mitgegebenwurden, ist bBusy mindestens so lange TRUE wie die Summe dieser Zeiten. Siehe zu dieserKonfigurationseinstellung ST_RFID_Control [} 45].

bResponseRcv

Sobald eine Response vom RFID Reader bei der Steuerung eingetroffen ist, wird dieses Flag für mindestenseinen Zyklus gesetzt. Mit steigender Flanke zu bResponseRcv = TRUE wird allgemein das Eintreffen einesTelegrams signalisiert. Somit können, wenn dieses Flag erkannt wird, wiederum auch unerwarteteTelegramme und die dazugehörigen Ausgangsvariablen eResponse, bError, iErrCodeRcv, ... undstRawData ausgewertet werden.Wird zu einem getätigten Kommandoaufruf eine Response erwartet, so bleibt der Funktionsbaustein solange bBusy = TRUE bis ein Telegram empfangen wird. Je nach Kommandoaufruf kann mehr als eineResponse eintreffen bevor die Aktion abgeschlossen und bBusy = FALSE ist.Je nach Konfigurationseinstellung der Verzögerungszeiten in ST_RFID_Control [} 45] kann bResponseRcvbereits TRUE werden bevor bBusy wieder auf FALSE wechselt.

eResponse

Sobald bResponseRcv TRUE anzeigt, gibt diese Enumeration die Art der empfangenen Nachricht an. Jenach Art kann beispielsweise die entsprechende Auswertung folgen.Details zu dieser Enumeration: E_RFID_Response [} 65]

bError

Der Ausgang bError wird TRUE, sobald ein Fehler auftritt. Dabei kann es sich um fehlerhafteEingangsparameter, um Übertragungsfehler, um Fehler seitens des RFID Readers oder um ein Timeouthandeln.Welche Art von Fehler aufgetreten ist wird mit der folgenden Ausgangsvariablen iErrorID angezeigt. Detailszur Fehlerdarstellung sind im Kapitel Fehlercodes [} 77] angegeben.

iErrorID

Falls ein Fehler auftritt wird die Art dieses Fehler am Ausgang iErrorID angezeigt.Details zu den möglichen FehlerIDs sind im Kapitel Fehlercodes [} 77] angegeben.

iErrCodeRcv

Der am Ausgang iErrCodeRcv angegebene Fehlercode entspricht dem vom RFID Reader an die Steuerunggesendetem Fehlercode.Details zur Fehlerdarstellung sind im Kapitel Fehlercodes [} 77] 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ügunggestellt. Details zu dieser Struktur: ST_RFID_Config [} 51]

stReaderInfo

Jeder RFID Reader besitzt eigene Kenndaten wie Bezeichnung, Hardwareversion etc. Diese Werte, welcheunter anderem über den Befehl 'GetReaderVersion' abgefragt werden können, sind in der AusgangsstrukturstReaderInfo angegeben. Details zu dieser Struktur: ST_RFID_ReaderInfo [} 43]

stTranspInfo

TC3 RFID Reader Communication38 Version: 1.1

Page 39: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Die Struktur stTranspInfo enthält Informationen zu dem zuletzt gelesenen Transponder. Hier wird unteranderem die Seriennummer des Transponders ausgegeben. Details zu dieser Struktur: ST_RFID_TranspInfo[} 42]

stRawData

Die Ausgangsstruktur stRawData gibt die gesendeten sowie die empfangenen Rohdaten aus. Details zudieser Struktur: ST_RFID_RawData [} 45]

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.1.2 Handhabung

RFID Bibliothek HandhabungWenn Sie die Bibliotheksdatei Tc2_RFID eingebunden haben, erhalten Sie Zugriff auf alle Funktionen. DieBibliothek stellt zur Kommunikation mit einem RFID Reader einen Funktionsbaustein zur Verfügung.Es kann der generelle Funktionsbaustein FB_RFIDReader genutzt werden, welcher für alle RFID ReaderModelle verwendbar ist oder einer der herstellerspezifischen Funktionsbausteine. Diese bieten denidentischen Funktionsumfang, annähernd das gleiche Interface, das gleiche Handling und sind zudem code-und performanceoptimiert.

Der, zur RFID Reader Kommunikation zur Verfügung gestellte, Funktionsbaustein bietet High-LevelKommunikation mit High-Level Interface. Ein Befehlssatz [} 21] stellt unterschiedlichste Kommandos zurVerfügung.Zusätzlich ermöglicht die integrierte Low-Level Kommunikation [} 41] das Senden und Empfangen vonRohdaten.

Hinweis: Die Tc2_RFID Bibliothek stellt an die RFID Reader die Erwartung, dass eine auf einen Befehlfolgende Response unmittelbar nach dem Befehl erfolgt und der Dialog nicht durch ein anderes Telegramunterbrochen wird. Andernfalls ist eine Auswertung ggf. nicht möglich.

Allgemeine Handhabung des FunktionsbausteinesJe nach RFID Reader Modell kann das Gerät ohne vorherige Aufforderung ein Telegram zur Steuerungsenden. Zum Empfang reicht ein zyklischer Aufruf des RFID Funktionsbausteines mit bExecute = FALSE.Alle möglichen aktiven Zugriffe auf das RFID Gerät sind im Befehlssatz [} 21] gelistet. Allen Befehlen istfolgende Vorgehensweise gleich. Der Funktionsbaustein wird mit einer positiven Flanke am EingangbExecute aufgerufen. Danach liefert zyklisches Aufrufen des Funktionsbausteines (bExecute = FALSE) dasErgebnis der Abfrage am Ausgang sobald die Bearbeitung der Abfrage abgeschlossen ist (bBusy = FALSE).Weitere Handhabungshinweise liefert die Beschreibung der Ein- und Ausgangsvariablen [} 36] desFunktionsbausteines sowie das Tutorial/Beispiel in dieser Dokumentation. Der Funktionsbaustein musssolange aufgerufen werden (bExecute = FALSE) bis die interne Bearbeitung abgeschlossen (bBusy =FALSE) ist. Währenddessen sind alle Eingänge des Funktionsbausteine unverändert zu belassen.

Hinweis

HinweisBei Systemstart sind folgende Aktionen zur Initialisierung eines über die TwinCAT Biblio-thek integrierten RFID Readers notwendig. Soweit laut Befehlssatz verfügbar müssen dieModellinformationen (Befehl 'GetReaderVersion') und die aktuelle Reader Konfiguration(Befehl 'GetConfig') ausgewertet werden. Weil eine erfolgreiche Kommunikation mit demRFID Reader von diesen Daten abhängig ist, muss sichergestellt werden, dass immer dieaktuellen Werte vorliegen und bei Bedarf abgefragt werden.

Alle empfangenen Nachrichten werden zusätzlich als Rohdaten in nicht aufbereiteter Form komplett amAusgang zur Verfügung gestellt.

TC3 RFID Reader Communication 39Version: 1.1

Page 40: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

RFID Reader Handhabung

Im Kapitel RFID Reader Einstellungen und Handhabung [} 27] werden Eigenarten der unterstützten ReaderModelle genannt.Die dort aufgeführten Hinweise sind den speziellen RFID Reader Herstellern zugeordnet:

6.1.1.3 Konfiguration

Alle unterstützten RFID Reader lassen sich mit demselben Befehl konfigurieren. Dieser muss gemäß demBefehlssatz [} 21] für das spezielle Modell verfügbar sein.

Zu jeden Programmstart sollte neben der Reader Version auch die aktuelle Konfiguration des Readersangefordert werden.

Weil die RFID Reader unterschiedlicher Hersteller nie identische Konfigurationsmöglichkeiten besitzen,bietet die PLC RFID Library neben der Eingangs-Konfigurationsstruktur jeweils eine Unterstruktur proHersteller mit den spezifischen Parametern. (ST_RFID_CfgStruct_DeisterUDL,ST_RFID_CfgStruct_LeuzeRFM, ...) Die dort gelisteten Parameter sind vom Nutzer im Rahmen der gültigenWertebereiche beliebig zu parametrieren. Die Bedeutung der Parameter ist entweder der Strukturdeklarationoder den proprietären Spezifikationen zu entnehmen.

Konfiguration lesen

Um die aktuelle RFID Reader Konfiguration auszulesen wird der Befehl 'Get Config' aus dem Befehlssatz[} 21] verwendet. Daraufhin können bei erfolgreicher Abfrage die Konfigurationsdaten am Ausgang desFunktionsbausteines entnommen werden. Sie liegen dort in der Struktur ST_RFID_Config [} 51] alsKonfigurationsstruktur sowie auch als Konfigurationsregister vor.

Konfiguration ändern

Um eine RFID Reader Konfiguration zu schreiben wird der Befehl 'Set Config' aus dem Befehlssatz [} 21]verwendet.Nach einem 'Set Config' Befehl muss die aktuelle Konfiguration einmal mit dem Befehl 'Get Config'ausgelesen werden.

Falls der Nutzer weitergehende spezielle Konfigurationsparameter über ein externes Tool einstellt und diesebeibehalten will, sollte das Flag für 'Default Values' bUseCfgDefault in der Struktur ST_RFID_ConfigIn [} 50]deaktiviert werden.

Hinweis

HinweisTeilweise sind bestimmte Kombinationen von Konfigurationsparametern unzulässig. Wel-che Parameterwerte sich bei welcher Kombination ausschließen ist den proprietären Proto-kollspezifikationen der RFID Reader Hersteller zu entnehmen. Bei fehlerhafter Eingabe derParameter wird entweder bereits vor Konfigurationsanfrage ein Fehler generiert oder derRFID Reader signalisiert durch seine Response, dass die Konfigurationsdaten nicht über-nommen werden konnten.

KonfigurationsdatenJede Konfiguration kann als Register (Byte Array) oder als Struktur gesehen werden. Dabei handelt es sichnicht um die Parametrierung der PLC RFID Bibliothek sondern um die proprietäre Konfiguration des RFIDReaders. So gibt es in der PLC RFID Bibliothek verschiedene Konfigurationsstrukturen, welche dieRohdaten der Konfigurationsregister unterschiedlicher RFID Reader aufarbeiten. Am Ausgang desFunktionsbausteines der Bibliothek werden sofern verfügbar beide Varianten in ST_RFID_Config [} 51] zurVerfügung gestellt. Dies geschieht über Pointer.

Baltech

TC3 RFID Reader Communication40 Version: 1.1

Page 41: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Die Konfigurationsdaten werden für Baltech RFID Reader als Struktur verwendet.

ST_RFID_CfgStruct_BaltechMifVHLFile [} 53]

Die Struktur ist für das Schreiben mit dem Befehl eRFC_SetConfig geeignet. (siehe Befehlssatz [} 21])

Balluff

Es wird keine Möglichkeit der Konfiguration angeboten.

Deister

Die Konfigurationsdaten können für Deister RFID Reader sowohl als Struktur als auch als Registerverwendet werden.Falls ein Register (Byte Array) verwendet wird, muss dieses immer die Größe der vollständigenKonfigurationsdaten besitzen. Bei den unterstützten Deister RDL Geräten ist dies 88 Byte und bei den UDLGeräten 117 Byte.

ST_RFID_CfgStruct_DeisterRDL [} 56] ST_RFID_CfgStruct_DeisterUDL [} 58]

Die Strukturen sind für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet.(siehe Befehlssatz [} 21])

Leuze

Die Konfigurationsdaten können für Leuze RFID Reader sowohl als Struktur als auch als Register verwendetwerden.Falls ein Register (Byte Array) verwendet wird, muss dieses immer die Größe der vollständigenKonfigurationsdaten besitzen. Bei den unterstützten Leuze Geräten ist dies 88 Byte.

ST_RFID_CfgStruct_LeuzeRFM [} 61]

Die Struktur ist für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet.(siehe Befehlssatz [} 21])

Pepperl+Fuchs

Die Konfigurationsdaten werden für Pepperl+Fuchs RFID Reader als Struktur verwendet.

ST_RFID_CfgStruct_PepperlFuchsIDENT [} 63]

Die Struktur ist für das Lesen mit eRFC_GetConfig geeignet. (siehe Befehlssatz [} 21])

6.1.1.4 Low Level Kommunikation

Die PLC RFID Bibliothek bietet neben dem High Level Befehlssatz [} 21] auch die Möglichkeit der Low LevelKommunikation. Dies ist implizit gelöst. Es wird derselbe Funktionsbaustein verwendet.Es können beliebige Telegramme bis zu einer maximalen Größe von 1024 Bytes empfangen und bis zueiner Größe von 300 Bytes versendet werden.

Ein gesamtes Telegramm setzt sich dabei wie folgt zusammen:| Prefix | Adressierung | Rohdaten | CRC | Suffix |

Je nach proprietärer Protokollspezifikation können einzelne Bestandteile fehlen. Generell ist dieZusammensetzung aber gleich.

SendenDazu wird als Befehl eRFC_SendRawData aus dem Befehlssatz verwendet und die zu sendendenRohdaten in der Eingangsstruktur ST_RFID_Control [} 45] angegeben.Um ein Low Level Telegramm abzusenden werden nur die Rohdaten angegeben. Die anderen Bestandteiledes Telegramms werden automatisch von der PLC RFID Library ergänzt. Ebenso werden Prüfdaten wieCRC intern erzeugt und eingefügt.

TC3 RFID Reader Communication 41Version: 1.1

Page 42: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Hinweis: Falls das Protokoll eine Umkodierung von bestimmten Bytes innerhalb der Rohdaten verlangt, wirddies ebenfalls automatisch von der PLC RFID Library vorgenommen und muss nicht mitbedacht werden.

Hinweis: Falls es sich um eine RS485 Schnittstelle handelt, so muss die Adressierung gesondertangegeben werden. Sie darf nicht mit in den angegebenen Rohdaten enthalten sein. Per Default wird dieAdressierung automatisch von der Bibliothek übernommen. Sie kann allerdings über Eingangsvariablen inST_RFID_Control [} 45] parametriert werden.

Die zuletzt gesendeten Rohdaten können jederzeit am Ausgang des Funktionsbausteines mit Hilfe derStruktur ST_RFID_RawDatata [} 45] eingesehen werden. Dies ist unabhängig vom verwendeten Befehl.

EmpfangenDie zuletzt empfangenen Rohdaten können jederzeit am Ausgang des Funktionsbausteines mit Hilfe derStruktur ST_RFID_RawData [} 45] eingesehen werden.Die zugehörige Adressierung ist in der Struktur ST_RFID_ReaderInfo [} 43] ausgegeben.

Bei Nutzung des Kommandos SendRawData kann eine direkte Auswertung der empfangenen Antwort nichtgarantiert werden.Beispiel: Wird ein Lesebefehl manuell als Bytefolge mittels des Kommandos SendRawData versandt, sowerden empfangene Transponderdaten nicht auf eine in ST_RFID_AccessData [} 52] angegebene Adressegeschrieben. Eine Auswertung/Speicherung der Daten sollte demnach auch manuell mit Hilfe der immerangegebenen Rohdaten Struktur ST_RFID_RawData [} 45] geschehen. Bei den angegebenen Rohdatenhandelt es sich um das empfangene Telegramm, allerdings ohne Prefix, Suffix, Checksum, CRC oder Shift-Sequence-Kodierung.Falls das empfangene Telegram nicht regulär von dem Funktionsbaustein ausgewertet wurde, wird dieszudem über einen Fehler signalisiert.

Um die empfangenen Daten nutzen zu können, müssen diese beispielsweise auf ein Bytearray kopiertwerden.Beispiel einer Zuweisung von empfangenen Daten mit Hilfe der Funktion MEMCPY():fbRFIDReader : FB_RFIDReader;arrReceivedData : ARRAY [0..511] OF BYTE;

MEMSET( ADR(arrReceivedData), 0, SIZEOF(arrReceivedData) );MEMCPY( ADR(arrReceivedData), fbRFIDReader.stRawData.pReceivedRsp, MIN(fbRFIDReader.stRawData.iRe-ceivedRspLen, SIZEOF(arrReceivedData)) );

Hinweis: Balluff RFID Reader: Die Endekennung (LF CR) wird als Suffix zur Erkennung von Telegrammengenutzt. Sobald diese 2 Bytes im Datenstrom erkannt werden, werden vorherige Daten zu einem Telegrammzusammengefasst.

6.1.2 Datentypen

6.1.2.1 Strukturen

6.1.2.1.1 ST_RFID_TranspInfoTYPE ST_RFID_TranspInfo :STRUCT    sSerialNumber : T_RFID_TranspSRN; (* serial number shown as hex coded string(ascii) *)    eType         : E_RFID_TranspType;    iHeadNumber   : USINT;         (* read head where the last transponder was detected *)END_STRUCTEND_TYPE

Die Struktur ST_RFID_TranspInfo gibt den Typ und die Seriennummer des zuletzt detektierten RFIDTransponders an.Mit dem Befehl 'GetInventory' werden diese Informationen abgefragt und aktuallisiert.

TC3 RFID Reader Communication42 Version: 1.1

Page 43: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

alle Hersteller:

sSerialNumber Die Seriennummer des Transponders (häufig 8 Byte) wird im String sSerialNumberin hexadezimaler Darstellung angegeben. Der Datentyp ist T_RFID_TranspSRN[} 68].Hinweis: Bei Verwendung von Balluff RFID Readern wird die Seriennummer bei13,56Mhz Transpondern im Gesamten byteweise vom Bibliotheksbausteingedreht. Dies geschieht, weil die ausgelesene Seriennummer eines Transpondersandernfalls nicht mit der an einem anderen Reader ausgelesenen Seriennummerübereinstimmen würde. So lassen sich Geräte verschiedener Herstellergemeinsam in einem Verbund betreiben.

eType Der Typ des Transponders wird als Enumerationswert der EnumerationE_RFID_TranspType [} 67] angegeben.

Pepperl+Fuchs:

iHeadNumber Falls ein RFID Reader mit mehreren Leseköpfen angeschlossen ist, so gibtiHeadNumber an von welchem Kopf der RFID Transponder detektiert wurde.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.2 ST_RFID_ReaderInfoTYPE ST_RFID_ReaderInfo :STRUCT    dDate         : DATE;    eType         : E_RFID_ReaderType;    eGroup        : E_RFID_ReaderGroup;    eManufacturer : E_RFID_ReaderManufacturer;    iReserved     : UINT;    sSWVersion    : STRING(31);    sHWVersion    : STRING(31);    sCode         : STRING(39);    sSerialNumber : STRING(39);

    iSrcAddrRcv   : UDINT;            (* RS485 address *)    iDstAddrRcv   : UDINT;            (* RS485 address *)END_STRUCTEND_TYPE

Nach dem Befehl GetReaderVersion aus dem Befehlssatz [} 21] werden die empfangenen Daten in dieserAusgangsstruktur aufbereitet.

Nicht jede Variable wird dabei von jedem RFID Reader Modell in Form der Versionsinformation bedient. Sogibt ein Reader Modell beispielsweise das Produktionsdatum bekannt, während ein anderes Reader Modelldie Hardwareversion übermittelt.Nähere Informationen zu den Angaben finden sich in den herstellereigenen Protokollspezifikationen und -handbüchern.

TC3 RFID Reader Communication 43Version: 1.1

Page 44: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

alle Hersteller:

eType An diesem Ausgang wird der RFID Reader Typ als Enumeration angegeben.eGroup An diesem Ausgang wird die RFID Reader Gruppe/Serie angegeben. Durch diese

Gruppenzuordnung wird die bibliotheksinterne Verarbeitung aller Telegrammefestgelegt.

eManufacturer An diesem Ausgang wird der Hersteller des angeschlossenen RFID Readersangegeben.Die Enumeration gibt folgende Auswahl:TYPE E_RFID_ReaderManufacturer : (     eRFRM_Unknown,     eRFRM_Balluff,     eRFRM_Deister,     eRFRM_Leuze,     eRFRM_PepperlFuchs,     eRFRM_Baltech ); END_TYPE

iSrcAddrRcv Im Falle der RS485 Schnittstelle wird hier die empfangene Quelladresseangegeben.

iDstAddrRcv Im Falle der RS485 Schnittstelle wird hier die empfangene Zieladresseangegeben.

Baltech:

dDate An diesem Ausgang wird das Produktionsdatum des RFID Readers angegeben.Hinweis: Das Datum 01.01.1970 bedeutet, dass kein Produktionsdatum übermitteltwurde.

sSWVersion Gibt die Softwareversion als Text an.sCode Der spezielle Typ des RFID Readers wird als Zahlencode übermittelt. Dieser ist

am Ausgang sCode als String ausgegeben.sSerialNumber Die Seriennummer des RFID Readers wird am Ausgang sSerialNumber als String

in hexadezimaler Darstellung ausgegeben.Hinweis: Diese ist nicht zu verwechseln mit der Transponderseriennummer.

Deister:

sSWVersion Gibt die Softwareversion als Text an.sHWVersion Gibt die Hardwareversion als Text an.sCode Der spezielle Typ des RFID Readers wird als Zahlencode übermittelt. Dieser ist

am Ausgang sCode als String ausgegeben.sSerialNumber Die Seriennummer des RFID Readers wird am Ausgang sSerialNumber als String

in hexadezimaler Darstellung ausgegeben.Hinweis: Diese ist nicht zu verwechseln mit der Transponderseriennummer.

Leuze:

dDate An diesem Ausgang wird das Produktionsdatum des RFID Readers angegeben.Hinweis: Das Datum 01.01.1970 bedeutet, dass kein Produktionsdatum übermitteltwurde.

sCode Der spezielle Typ des RFID Readers wird als Zahlencode übermittelt. Dieser istam Ausgang sCode als String ausgegeben.

TC3 RFID Reader Communication44 Version: 1.1

Page 45: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Pepperl+Fuchs:

dDate An diesem Ausgang wird das Produktionsdatum des RFID Readers angegeben.Hinweis: Das Datum 01.01.1970 bedeutet, dass kein Produktionsdatum übermitteltwurde.

sSWVersion Gibt die Softwareversion als Text an.sCode Der spezielle Typ des RFID Readers wird als Zahlencode übermittelt. Dieser ist

am Ausgang sCode als String ausgegeben.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.3 ST_RFID_RawDataTYPE ST_RFID_RawData :STRUCT    pReceivedRsp :POINTER TO BYTE;    pSentCommand :POINTER TO BYTE;

    iReceivedRspLen :UINT;    iSentCommandLen :UINT;END_STRUCTEND_TYPE

Diese Struktur gibt die gesendeten und empfangenen Daten als Rohdaten aus.Dabei handelt es sich immer um das komplette Telegramm, allerdings ohne Prefix, Suffix, Checksum, CRCoder Shift-Sequence-Kodierung. Die Low Level Kommunikation ist näher im Kapitel Low LevelKommunikation [} 41] beschrieben.

Über die angegebenen Pointer können die Bytefolgen eingesehen werden.Hinweis: Zur Auswertung kann die Funktion MEMCPY genutzt werden.

pReceivedRsp Ein empfangenes Telegramm ist als Bytefolge abgelegt und der Pointer pReceivedRsp zeigt auf dieseBytefolge.

pSentCommand Ein gesendetes Telegramm ist als Bytefolge abgelegt und der Pointer pSentCommand zeigt auf dieseBytefolge.

iReceivedRspLen Gibt die Länge der abgelegten Bytefolge in Bytes an.

iSentCommandLen Gibt die Länge der abgelegten Bytefolge in Bytes an.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.4 ST_RFID_ControlTYPE ST_RFID_Control :STRUCT    sSelTranspSRN      :T_RFID_TranspSRN; (* serial number shown as hex coded string(ascii) *)

    tPreSendDelay      :TIME;         (* condition: tTimeOut > tPreSendDelay + tPostSendDelay *)    tPostSendDelay     :TIME;         (* condition: tTimeOut > tPreSendDelay + tPostSendDelay *)

    iSrcAddrSnd        :UDINT;        (* RS485 address *)    iDstAddrSnd        :UDINT;        (* RS485 address *)    bAddrAutoMode      :BOOL := TRUE; (* if AutoMode is activated the communication addresses are

TC3 RFID Reader Communication 45Version: 1.1

Page 46: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

handled automatically and set addresses are not used. *)

    bLogging           :BOOL;

    iHeadNumber        :USINT := 1;   (* if multiple read heads are installed at the reader unit,one can be selected *)    iDCType            :USINT := 1;

    pRawDataCommand    :POINTER TO BYTE; (* data input for low level communication *)    iRawDataCommandLen :UINT;

    bBufferedCmd       :BOOL;

    iVHLFileID         :USINT := 16#FF;  (* selection of VHL file; default 0xFF (ad hoc VHL file ofvhlSetup) *)

    iCardTypeMask      :UINT := 16#FFFF; (* select which card type should be detected via GetInven-tory; default 0xFFFF (all types) *)    bReselect          :BOOL := TRUE;    (* with Reselect every GetInventory gets the first item ofthe reader's detected card list *)    bAcceptConfCard    :BOOL := TRUE;    (* a read command also accept configuration cards to confi-gure the rfid reader *)END_STRUCTEND_TYPE

Die Eingangsstruktur stCtrl beinhaltet Variablen mit denen sich das Verhalten des Funktionsbausteinesparametrieren lässt.

Die zwei Variablen tPreSendDelay und tPostSendDelay bieten optional die Möglichkeit Verzögerungszeitenzu parametrieren. Weitere Hinweise finden sich am Ende der Seite.

Hinweis

RS485Eine Unterstützung mehrerer RFID Reader an einem RS485 Netz ist mit der PLC RFID Li-brary vorerst nicht gegeben. Es muss je RFID Reader eine separate Verbindung zu einerseparaten Klemme erfolgen. In diesem Stand Alone Betrieb ist eine individuelle Adressie-rung mit iSrcAddrSnd und iDstAddrSnd nicht nötig. Die Adressierung kann demnach auto-matisch von der PLC RFID Library übernommen werden, wozu die Eingangsvariable bAd-drAutoMode auf TRUE belassen werden kann.

TC3 RFID Reader Communication46 Version: 1.1

Page 47: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

alle Hersteller:tPreSendDelay Vor dem Senden eines Kommandos an den RFID Reader wartet der

Funktionsbaustein die mit tPreSendDelay angegebene Zeit ab.tPostSendDelay Nach dem Senden eines Kommandos an den RFID Reader wartet der

Funktionsbaustein mindestens die mit tPostSendDelay angegebene Zeit ab. Fallsbis dahin die erwartete Response noch nicht eingetroffen ist, wartet derFunktionsbaustein weiter auf die Response bis maximal die angegebene TimeoutZeit tTimeOut abgelaufen ist.

iSrcAddrSnd Quelladresse im Falle der RS485 Kommunikation. Diese Adresse wird verwendetfalls bAddrAutoMode nicht gesetzt ist.

iDstAddrSnd Zieladresse im Falle der RS485 Kommunikation. Diese Adresse wird verwendetfalls bAddrAutoMode nicht gesetzt ist.

bAddrAutoMode Auswahlmöglichkeit im Falle der RS485 Kommunikation. Falls bAddrAutoModegesetzt ist (Default = TRUE), werden die RS485 Adressen automatischzugewiesen. Die oben angegebenen Adressen werden nicht verwendet. FallsbAddrAutoMode deaktiviert (FALSE) ist, so werden oben angegebene Adressenverwendet.

bLogging Mit bLogging lässt sich eine zusätzliche Ausgabe aktivieren. Mit Hilfe von LogView Messages kann so die serielle Kommunikation nachvollzogen werden.Diese Messages werden im Windows Event Viewer sowie im TwinCAT SystemManager sichtbar. Dies ist sinnvoll für Test- und Analysezwecke. Das Format derAusgabe ist nicht festgelegt, um Erweiterungen zu ermöglichen.

Beim ersten Aufruf des Funktionsbausteines mit bLogging=TRUE wird dieAusgabe 'Logging initialized.' erzeugt. In diesem ersten Zyklus werden keineKommunikationsdaten überwacht.

pRawDataCommand Der reguläre Funktionsbaustein der PLC RFID Library kann ebenso zur LowLevelKommunikation verwendet werden. In dem Fall können Rohdaten direkt an denRFID Reader gesendet werden. Die zu sendenden Rohdaten (z.B. als Bytearray)müssen in dieser Eingangsvariablen angegeben werden. Dabei handelt es sichum einen Pointer auf die zu sendenden Rohdaten. Auf diese Adresse wird vondem Bibliotheksbaustein nur lesend zugegriffen. Weitere Informationen zumAblauf der Low Level Kommunikation sind in dem Kapitel Low LevelKommunikation [} 41] zusammengefasst. Am Ausgang können die gesendetensowie die empfangenen Rohdaten jederzeit mittels der Struktur ST_RFID_RawData[} 45] eingesehen werden.

iRawDataCommandLen Die Eingangsvariable iRawDataCommandLen gibt die Länge in Bytes der mittelsdem Pointer pRawDataCommand angegebenen Rohdaten an.

Balluff:iHeadNumber Falls ein RFID Lesegerät mit mehreren Leseköpfen angesprochen wird, so wird in

der Eingangsvariablen iHeadNumber eine Wahl des Lesekopfes angegeben.iDCType Es kann bei Verwendung von Balluff Readern über iDCType die Blockgröße des

Chipspeichers (0->64bytes, 1->32bytes) angegeben werden.

TC3 RFID Reader Communication 47Version: 1.1

Page 48: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Baltech:iVHLFileID Schreib- und Lesebefehle werden mit der hier ausgewählten VHL Datei

ausgeführt. Diese muss in der Konfiguration des RFID Gerätes hinterlegt sein.Falls iVHLFileID den Wert 0xFF [default] hat, so wird der RFID Leser keinenormale VHL Datei aus seiner Konfiguration nehmen, sondern eine einfache Ad-Hoc-Datei, welche gewählt werden kann, um nicht konfigurierte/unverschlüsselteBlankokarten zu verwenden.

iCardTypeMask Mit Hilfe der iCardTypeMask lassen sich bestimmte Transponderkartenfamilieneinstellen. Nur die gesetzten Kartentypen werden mit dem Befehl GetInventoryerkannt. Alle anderen Kartentypen werden herausgefiltert. Sollen alle Kartentypenerkannt werden, muss dieser Wert nicht verändert werden [default: 0xFFFF]. Fürjede akzeptierte Kartenfamilie wird in der iCardTypeMask das jeweilige Bitgesetzt.

bReselect Wenn bReselect gesetzt ist [default: TRUE], wird bei jeder Abfrage mit demBefehl GetInventory ein Transponder am Ausgang angegeben, sofern sich einTransponder im HF Feld befindet. Falls sichergestellt ist, dass sich jeweils nureine Karte vor dem RFID Reader befindet, sollte diese Einstellung beibehaltenwerden. Wenn sich mehr als eine Transponderkarte im HF Feld befindet, existiertim RFID Gerät eine Liste erkannter Karten. Um alle Transponder mit dem BefehlGetInventory anwählen zu können, sollte bReselect ausgeschaltet [FALSE]werden. Der Befehl GetInventory geht diese Liste dann durch mehrfachesAufrufen einem nach dem anderen durch. Nachdem die letzte Karte angewähltwurde, folgt die Rückmeldung eRFR_NoTransponder. Erst wenn eine Karte ausden HF Feld herausgenommen und erneut hineingeführt wird, gibt der BefehlGetInventory den Transponder wieder samt Seriennummer am Ausgang an.

bAcceptConfCard Falls bAcceptConfCard gesetzt ist [default: TRUE], werden mit dem BefehlGetInventory auch Konfigurationskarten erkannt. Es wird automatisch versuchtdie darauf vorhandene Konfiguration auf den RFID Reader zu übertragen. Umeine Beeinflussung durch fremde Konfigurationskarten zu verhindern kann dieserParameter deaktiviert werden.

Leuze:sSelTranspSRN An der Eingangsvariablen sSelTranspSRN kann die Seriennummer des

Transponders, auf den der Befehl (z.B. Read/Write) angewendet werden soll, alsString angegeben werden. Der Datentyp ist T_RFID_TranspSRN [} 68].Dies ist in den meisten Fällen nicht notwendig. Falls eine bestimmte Reader-Konfiguration dies notwendig macht, sind Details hierzu bei der diesbezüglichenBeschreibung in der proprietären Spezifikation zu finden.

TC3 RFID Reader Communication48 Version: 1.1

Page 49: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Pepperl+Fuchs:iHeadNumber Falls ein RFID Lesegerät mit mehreren Leseköpfen angesprochen wird, so wird in

der Eingangsvariablen iHeadNumber eine Wahl des Lesekopfes angegeben.iHeadNumber wird auch als IdentChannel bezeichnet.

iDCType Es kann bei Pepperl+Fuchs Readern mit dieser Variablen und dem Befehl'ChangeDCType' der Transpondertyp am Lesekopf eingestellt werden. MöglicheWerte dafür sind im proprietären Protokoll beim Befehl 'ChangeTag' gelistet. (Siestimmen nicht mit den Werten der Enumeration E_RFID_TranspType überein.)Auszug unterstützter Transpondertypen:

bBufferedCmd Die meisten Befehle werden umgehend nach dem Aufruf einmal bearbeitet. Jenach RFID Reader können Befehle dauerhaft anstehen. Dies ermöglicht unteranderem einen Lesevorgang sobald der RFID Transponder ins Lesefeld kommtohne einen extra Befehl dazu abzuschicken. Entweder ist dies in der RFIDReader Konfiguration konfigurierbar (Balluff, Deister, Leuze) oder mit dieserEingangsvariablen auswählbar (Pepperl+Fuchs).Hinweis: Ist an einem Lesekopf ein solch gepufferter Befehl aktiv, darf derTrigger Mode nicht für diesen Kanal aktiviert werden bzw. aktiv sein! Ebenso darfkein Rohdatenbefehl abgesetzt werden, welcher diesen Kanal betrifft!

Verzögerungszeiten

Die zwei Variablen tPreSendDelay und tPostSendDelay bieten optional die Möglichkeit Verzögerungszeitenzu parametrieren.Beide Variablen stellen sicher, dass zwischen zwei Anfragen an den RFID Reader eine Verzögerungabgewartet wird. Wird die Verzögerungszeit als tPreSendDelay angegeben, so ist eine Verzögerungzwischen dem letzten Antworttelegram und dem nächsten Anfragetelegram sichergestellt. Soll dasAnfragetelegram möglichst direkt abgeschickt werden, so kann tPostSendDelay verwendet werden.Es gilt die Bedingung 'tTimeOut > tPreSendDelay + tPostSendDelay'. Andernfalls wird ein Fehler amAusgang ausgegeben.

Hinweis: Im proprietären Protokoll der Balluff RFID Reader ist eine Mindestverzögerungszeit zwischen zweiBefehlen von 300 ms spezifiziert.Hinweis: Im proprietären Protokoll der Leuze electronic RFID Reader ist eine Mindestverzögerungszeitzwischen Empfang und Befehl von 150 ms spezifiziert.

TC3 RFID Reader Communication 49Version: 1.1

Page 50: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.5 ST_RFID_ConfigIn(* defines the configuration input parameters.The data can be set via Config structure or Config register.Different RFID Reader in different ReaderGroups can differ in their configuration data. *)TYPE ST_RFID_ConfigIn :STRUCT    pCfg           : POINTER TO BYTE; (* pointer to config structure or register *)    iCfgSize       : UINT := 0;      (* size in bytes of the structure or register *)

    bUseCfgReg     : BOOL := FALSE;  (* Set Config via Register instead of CfgStructure *)    bUseCfgDefault : BOOL := TRUE;   (* Set Config using default parameters beside CfgStructure *)

    (* An additional option to demand/set a specific config parameter without transmission of thewhole config register.    Not possible at all reader models.    Set a desired value before calling GetConfig/SetConfig or keep the default for full register re-quest. *)    iRegIdx   : UINT := 0;    iRegGroup : USINT := 0;     (* 0:full register; 1:reg.00-0F; 2:single register *)

    bReserved : BOOL;END_STRUCTEND_TYPE

Am Eingang des RFID Funktionsbausteines gibt diese Struktur die Möglichkeit eine beliebige Konfigurationauf den RFID Reader zu übertragen.Die zuletzt gelesene RFID Reader Konfiguration ist am Ausgang mit der Struktur ST_RFID_Config [} 51]angegeben. In deren Beschreibung finden sich auch ergänzende Informationen zu den Konfigurationen.Konfigurationsdaten können in Form einer spezifischen Konfigurationsstruktur(ST_RFID_CfgStruct_DeisterUDL, ST_RFID_CfgStruct_LeuzeRFM, ...) oder auch in Form einesKonfigurationsregisters (Byte Array) vorliegen. Mit der Variable bUseCfgReg lässt sich diese Auswahltreffen.

Weitere Informationen zur RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Baltech:pCfg Dieser Pointer muss die Speicheradresse der zu schreibenden Konfiguration

beinhalten. Dabei handelt es sich um die KonfigurationsstrukturST_RFID_CfgStruct_BaltechMifVHLFile .

iCfgSize Diese Eingangsvariable gibt die Länge in Bytes der über den Pointer angegebenenKonfigurationsdaten an.

TC3 RFID Reader Communication50 Version: 1.1

Page 51: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Deister:pCfg Dieser Pointer muss die Speicheradresse der zu schreibenden Konfiguration

beinhalten. Dabei kann es sich um eine Konfigurationsstruktur sowie auch einKonfigurationsregister handeln.

iCfgSize Diese Eingangsvariable gibt die Länge in Bytes der über den Pointer angegebenenKonfigurationsdaten an.

bUseCfgReg Wird die Eingangsvariable bUseCfgReg gesetzt (TRUE), so kann über den Pointer pCfgein Konfigurationsregister (Byte Array) adressiert werden anstatt einerKonfigurationsstruktur. Per Default wird eine spezifische Konfigurationsstrukturangegeben.

bUseCfgDefault Dieser Parameter ist nur relevant, wenn die Konfigurationsdaten in Form einerspezifischen Konfigurationsstruktur anliegen. Eine Konfigurationsstruktur ist keinenamentliche Gesamtdarstellung des Konfigurationsregister. Die Struktur beinhaltet nurdie wichtigsten Konfigurationsparameter. Wird die Eingangsvariable bUseCfgDefaultgesetzt (TRUE), so werden für die nicht angegebenen KonfigurationsparameterStandardwerte verwendet. Andernfalls wird der Wert dieser Konfigurationsparameternicht verändert, weil die zuletzt gelesenen Werte wiederverwendet werden.

Leuze:pCfg Dieser Pointer muss die Speicheradresse der zu schreibenden Konfiguration

beinhalten. Dabei kann es sich um eine Konfigurationsstruktur sowie auch einKonfigurationsregister handeln.

iCfgSize Diese Eingangsvariable gibt die Länge in Bytes der über den Pointer angegebenenKonfigurationsdaten an.

bUseCfgReg Wird die Eingangsvariable bUseCfgReg gesetzt (TRUE), so kann über den Pointer pCfgein Konfigurationsregister (Byte Array) adressiert werden anstatt einerKonfigurationsstruktur. Per Default wird eine spezifische Konfigurationsstrukturangegeben.

bUseCfgDefault Dieser Parameter ist nur relevant, wenn die Konfigurationsdaten in Form einerspezifischen Konfigurationsstruktur anliegen. Eine Konfigurationsstruktur ist keinenamentliche Gesamtdarstellung des Konfigurationsregister. Die Struktur beinhaltet nurdie wichtigsten Konfigurationsparameter. Wird die Eingangsvariable bUseCfgDefaultgesetzt (TRUE), so werden für die nicht angegebenen KonfigurationsparameterStandardwerte verwendet. Andernfalls wird der Wert dieser Konfigurationsparameternicht verändert, weil die zuletzt gelesenen Werte wiederverwendet werden.

iRegIdx Wird an iRegIdx ein spezieller Index angegeben, so wird alleinig dieser Index desKonfigurationsregisters geändert/gelesen. Dazu muss iRegGroup zudem alsSingleRegister angegeben sein.Diese Konfigurationsvariante ist nur für Leuze electronic RFID Reader verfügbar.

iRegGroup Drei Werte stehen zur Verfügung: 0 um das gesamte Konfigurationsregister zu ändern/lesen; 1 um die Indizes 16#00-16#0F des Registers zu ändern/lesen; 2 um eineneinzelnen Index des Registers zu ändern/lesen, wozu dieser mit iRegIdx angegebenwerden muss.Diese Konfigurationsvariante ist nur für Leuze electronic RFID Reader verfügbar.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.6 ST_RFID_Config(* defines the configuration as structure and register.Different RFID Reader in different ReaderGroups can differ in their configuration data. *)TYPE ST_RFID_Config :STRUCT    pCfgStruct     : POINTER TO BYTE;    (* pointer to config structure *)    pCfgReg        : POINTER TO BYTE;    (* pointer to config register *)    iCfgStructSize : UINT := 0; (* size in bytes of the structure *)

TC3 RFID Reader Communication 51Version: 1.1

Page 52: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

    iCfgRegSize    : UINT := 0; (* size in bytes of the register *)END_STRUCTEND_TYPE

Die Struktur gibt die zuletzt gelesene RFID Reader Konfiguration an. Dabei handelt es sich nicht um dieParametrierung der PLC RFID Bibliothek sondern um die proprietäre Konfiguration des RFID Readers.Diese kann mit dem Befehl eRFC_GetConfig abgefragt werden (siehe Befehlssatz [} 21]).

Jede Konfiguration kann als Register (Byte Array) oder als Struktur gesehen werden. So gibt es in der PLCRFID Bibliothek verschiedene Konfigurationsstrukturen (ST_RFID_CfgStruct_DeisterUDL,ST_RFID_CfgStruct_LeuzeRFM, ...), welche die Rohdaten der Konfigurationsregister unterschiedlicher RFIDReader aufarbeiten. Am Ausgang des Funktionsbausteines der Bibliothek werden beide Varianten zurVerfügung gestellt. Dies geschieht über Pointer. Zur weiteren Auswertung kann die Funktion MEMCPY()genutzt werden mit der angegebenen Datenlänge in Bytes.

pCfgStruct Dieser Pointer gibt die Speicheradresse der spezifischen Konfigurationsstruktur an.

pCfgReg Dieser Pointer gibt die Speicheradresse des spezifischen Konfigurationsregisters an.

iCfgStructSize Diese Ausgangsvariable gibt die Länge in Bytes der spezifischen Konfigurationsstruktur an.

iCfgRegSize Diese Ausgangsvariable gibt die Länge in Bytes des spezifischen Konfigurationsregisters an. FallsiCfgRegSize = 0 sind die Konfigurationsdaten nicht als Register (Byte Array) verfügbar.

Weitere Informationen zur RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.7 ST_RFID_AccessData

Falls ein Lese- oder Schreibbefehl ausgeführt werden soll, ist es notwendig die EingangsstrukturstAccessData anzugeben.Mit dieser Struktur wird angegeben, wie viele und welche Daten gelesen und wo diese abgespeichertwerden sollen bzw. wie viele und welche Daten geschrieben werden sollen.TYPE ST_RFID_AccessData :STRUCT    (* access specific parameters *)    pData       : POINTER TO BYTE; (* pointer to write data or free space for read data *)    iDataSize   : UINT;     (* length of data buffer in Bytes *)    iStartBlock : UINT;     (* attend that the UserDataStartBlock which is not obligatory 0 is addedautomatically. *)    iBlockCount : UINT;     (* condition: Blockcount*Blocksize=Datasize *)    iBlockSize  : UINT := 1; (* in Bytes *)

    iUserDataStartBlock : UINT := 0; (* depending on the transponder type its user data memorystarts with block index 0 or higher *)    (* The upper parameter iStartBlock depends on the iUserDataStartBlock. The used StartBlock isiStartBlock+iUserDataStartBlock. *)    (* Different RFID Readers can differ in their interpretation of the first block. *)    iReserved : UINT;END_STRUCTEND_TYPE

TC3 RFID Reader Communication52 Version: 1.1

Page 53: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

pData Der Pointer pData zeigt auf die zu schreibenden Daten bzw. auf den freienSpeicherplatz für die zu lesenden Daten.

iDataSize Gibt die Größe der zu schreibenden/lesenden Daten in Bytes an.iStartBlock Gibt den ersten Blockindex an, ab dem gelesen bzw. auf den Speicher des

Transponders geschrieben werden soll.Verschiedene RFID Reader Modelle interpretieren diesen Index allerdings teilweiseunterschiedlich. Beispiel: Auf einen Lesebefehl mit Startindex 0 gibt Reader A denersten Block Nutzendaten zurück und Reader B die Seriennummer.

iBlockCount Gibt die Anzahl von Blöcken an, die gelesen bzw. geschrieben werden soll.iBlockSize Mit der Variablen iBlockSize kann die Blockgröße der Nutzdaten (in Bytes)

angegeben werden. Je nach Transponder und RFID Reader Modell sind hier nurbestimmte Einstellungen möglich (gebräuchlich sind z.B. 8,4 oder 1 Byte). Dies solltevorab aus den Transponderinformationen in Erfahrung gebracht und getestetwerden. Ebenso ist die Variable iBlockSize in Übereinstimmung mit der Einstellungin der RFID Reader Konfiguration zu wählen. Andernfalls ist es teilweise möglich,dass ein Zugriff auf den Transponder oder die Auswertung der empfangenen Datennicht erfolgen kann.

iUserDataStartBlock Mit der Variablen iUserDataStartBlock kann optional der Startblock (als Index vonBlöcken) der Nutzdaten auf dem Transponder angegeben werden. Die Blockgröße(iBlockSize) ist zu beachten.Je nach Transponder können dessen erste Blöcke für Systemdaten wie derSeriennummer reserviert sein. Der Bereich der Nutzdaten kann dementsprechendbei Index 0 beginnen oder auch bei einem höheren Wert. Falls dies der Fall ist kanndie Variable iUserDataStartBlock genutzt werden, um diesen zusätzlichen Parameteranzugeben und den eigentlichen Index iStartBlock gleich zu belassen. Intern werdenbeide Werte zusammen addiert.

Hinweis

HinweisFalls unterschiedliche RFID Reader auf denselben Transponder zugreifen sollen, so mussder Speicherzugriff auf dem Transponder vorher getestet werden. Es ist möglich, dass einReadermodell die Datenblöcke in verdrehter Bytereihenfolge auf dem Transponder ablegtim Vergleich zu einem anderen Reader Modell. Oder von einem Readermodell wird der ge-samte Speicherbereich in umgekehrter Reihenfolge gesehen als es ein anderes ReaderModell tut. Ebenso kann die lesbare Speichergröße des Transponders zwischen verschie-denen Readermodellen leicht variieren. Dies ist zusätzlich abhängig vom Transponderty-pen. Die RFID Library nimmt darauf keinen Einfluss. Der Anwender muss obige Ein-gangsparameter dementsprechend wählen.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.8 Konfigurationsdaten

6.1.2.1.8.1 ST_RFID_CfgStruct_BaltechMifVHLFile

Die Struktur ist für das Schreiben mit dem Befehl eRFC_SetConfig geeignet. (siehe Befehlssatz [} 21])Dabei handelt es sich nicht um die Parametrierung der PLC RFID Bibliothek, sondern um die proprietäreKonfiguration des RFID Readers.TYPE ST_RFID_CfgStruct_BaltechMifVHLFile :STRUCT    iVHLFile        : USINT := 1;         (* nr. of VHL file to configure *)    iNrOfKeys       : USINT(1..8) := 1;    iNrOfSectors    : USINT(1..56) := 16;     (* default: 16 sectors -> 1024 bytes mifare card with752 bytes user data *)    iRC500EEPOffset : USINT := 16#FF;    arrKeyList      : ARRAY [0..7] OF T_RFID_MifareKey; (* up to 8 keys, 6 byte each *)    arrSectorList   : ARRAY [0..55] OF BYTE        (* up to 56 sectors accessible *)

TC3 RFID Reader Communication 53Version: 1.1

Page 54: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

                := 0,1,2,3,4,5,6,7,8,9,10, (* default: 16 sectors -> 1024 bytes mifare card with 752bytes user data *)                11,12,13,14,15,16,17,18,19,20,                21,22,23,24,25,26,27,28,29,30,                31,32,33,34,35,36,37,38,39,40,                41,42,43,44,45,46,47,48,49,50,                51,52,53,54,55;    arrRdKeyAssign  : ARRAY [0..55] OF BYTE;        (* Key index for each sector *)    arrWrKeyAssign  : ARRAY [0..55] OF BYTE;        (* Key index for each sector *)    bMAD_Mode : BOOL := FALSE;         (* use MAD AID [default = FALSE] *)    iMAD_AID  : USINT;    iReserved : INT;END_STRUCTEND_TYPE

Struktur einer Mifare Karte (bis 2 KB Speicher):Eine Mifare Karte mit 1 KB Speicher besitzt 16 Sektoren a 64 Byte. Jeder Sektor beinhaltet 4 Blöcke. Sektor0 besteht aus Block 0-3, Sektor 1 aus Block 4-7 und folgende Sektoren bilden sich analog dazu. In derDarstellung entspricht eine Spalte jeweils einem Sektor, während ein Kästchen einen Block a 16 Byterepräsentiert.

Nur die weiß dargestellten Blöcke beinhalten für den Nutzer verwendbaren Speicherbereich. Die maximaleGröße der Nutzdaten ist demnach 752 Bytes (47 x 16 Byte) bei einer 1024 Byte großen Mifare Karte.

TC3 RFID Reader Communication54 Version: 1.1

Page 55: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

iVHLFile Mit iVHLFile wird die Nummer der zu konfigurierenden VHL Datei angegeben. In derKonfiguration des RFID Gerätes können mehrere VHL Dateien nebeneinanderexistieren.

iNrOfKeys Mit iNrOfKeys wird die erforderliche Anzahl an Schlüsseln vorgegeben. Es können 1bis 8 Schlüssel definiert werden.

iNrOfSectors Mit iNrOfSectors wird die Anzahl an Sektoren angegeben, die für Nutzdatenverwendet werden sollen. Eine 1 KB Mifare Karte besitzt 16 Sektoren (default = 16).Beispiel: Sollen nur die Sektoren 4-6 verwendet werden, so wird iNrOfSectors=3angegeben.

iRC500EEPOffset Dieser Parameter betrifft die interne Übertragung der Schlüssel innerhalb derHardware des RFID Gerätes. Die Standardeinstellung (default = 16#FF) garantierterhöhte Sicherheit. Eine Änderung wird nicht empfohlen.

arrKeyList In dem Array arrKeyList werden alle Schlüssel hinterlegt. Ein Schlüssel ist vom TypT_RFID_MifareKey und besteht aus 6 Byte.Beispiel: Sollen zwei Schlüssel verwendet werden, so werden bei arrKeyList[0] undarrLeyList[1] die jeweiligen Schlüssel hinterlegt.TYPE T_RFID_MifareKey :ARRAY[0..5] OF BYTE;END_TYPE

arrSectorList In dem Array arrSectorList werden alle Sektoren hinterlegt, die für Nutzdatenverwendet werden sollen.Beispiel: Sollen nur die Sektoren 4-6 verwendet werden, so wird arrSectorList[0]=4,arrSectorList[1]=5, arrSectorList[2]=6 angegeben.Hinweis: Das Array ist bereits mit durchlaufender Nummerierung initialisiert. In denmeisten Fällen muss deshalb hier keine Änderung vorgenommen werden.

arrRdKeyAssign In dem Array arrRdKeyAssign wird der Schlüsselindex für jeden verwendeten Sektorhinterlegt.Beispiel: Bei einer 1 KB Mifare Karte sollen alle Sektoren verwendet werden(iNrOfSectors = 16). Zwei Schlüssel werden verwendet (iNrOfKeys = 2) Die ersteHälfte der Sektoren auf dieser Karte ist mit dem ersten Schlüssel (arrKeyList[0]) zulesen und die zweite Hälfte mit dem zweiten Schlüssel (arrKeyList[1]). In dem ArrayarrRdKeyAssign müssen demnach die Indizes

stCfg:ST_RFID_CfgStruct_BaltechMifVHLFile:=(arrRdKeyAssign:=0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1); hinterlegt werden.Hinweis: Soll für alle Sektoren ein Schlüssel verwendet werden, handelt es sich füralle Sektoren um den Schlüsselindex 0. Das Array ist bereits mit 0 initialisiert. Deshalbmuss in diesem Fall hier keine Änderung vorgenommen werden.

arrWrKeyAssign In dem Array arrWrKeyAssign wird der Schlüsselindex für jeden verwendeten Sektorhinterlegt.Beispiel: Bei einer 1 KB Mifare Karte sollen alle Sektoren verwendet werden(iNrOfSectors = 16). Zwei Schlüssel werden verwendet (iNrOfKeys = 2) Die ersteHälfte der Sektoren auf dieser Karte ist mit dem ersten Schlüssel (arrKeyList[0]) zubeschreiben und die zweite Hälfte mit dem zweiten Schlüssel (arrKeyList[1]). In demArray arrWrKeyAssign müssen demnach die Indizes

stCfg:ST_RFID_CfgStruct_BaltechMifVHLFile:=(arrWrKeyAssign:=0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1); hinterlegt werden.Hinweis: Soll für alle Sektoren ein Schlüssel verwendet werden, handelt es sich füralle Sektoren um den Schlüsselindex 0. Das Array ist bereits mit 0 initialisiert. Deshalbmuss in diesem Fall hier keine Änderung vorgenommen werden.

bMAD_Mode Falls MAD (Mifare Application Directory) mit AIDs (Application Identifiers) anstatt derSektorzuweisung verwendet werden soll, so muss bMAD_Mode gesetzt (TRUE)werden. Als Standard wird jedoch die Sektorzuweisung verwendet (default = FALSE).

iMAD_AID Der Eingang wird nur benötigt, falls MAD (Mifare Application Directory) verwendet wird(bMAD_Mode = TRUE). Am Konfigurationseingang iMAD_AID wird die MAD AID(Application Identifier) für die VHL Datei angegeben.

Weitere Informationen zum Ablauf der RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

TC3 RFID Reader Communication 55Version: 1.1

Page 56: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Detaillierte Informationen zum Thema VHL Datei und Konfiguration von Baltech RFID Geräten finden sichzudem in den herstellereigenen Dokumentationen Mifare.pdf und ConfigurationValues.pdf.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.8.2 ST_RFID_CfgStruct_DeisterRDL

Die Struktur ist für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet.(siehe Befehlssatz [} 21])Dabei handelt es sich nicht um die Parametrierung der PLC RFID Bibliothek, sondern um die proprietäreKonfiguration des RFID Readers.TYPE ST_RFID_CfgStruct_DeisterRDL :STRUCT    eOpMode      : E_RFID_OpMode := eRFOP_ReadData;    eTriggerMode : E_RFID_TriggerMode := eRFTR_ImmediateRead;    eReadMode    : E_RFID_ReadMode := eRFRD_SingleShot;    eWriteMode   : E_RFID_WriteMode := eRFWR_ImmediateWrite;

    eNetworkMode : E_RFID_NetworkMode := eRFNM_StandAlone;    bAFI : BOOL := FALSE;     (* not implemented; ready for future extention *)    iAFI : BYTE;             (* not implemented; ready for future extention *)

    bSerialNumberMode : BOOL := FALSE;    bMultiTranspMode  : BOOL := FALSE;    bOutputAutomatic  : BOOL := TRUE;    iBlockSize        : USINT := 8;

    tOutputPulseTime : TIME := T#300ms;

    eTranspType : E_RFID_TranspType := eRFTT_TagItHfi;

    iCountBlocksRead  : USINT := 1;    iCountBlocksWrite : USINT := 1;

    iStartBlockRead  : UINT := 16#4000;    iStartBlockWrite : UINT := 5;    arrWriteData     : ARRAY [0..71] OF BYTE;END_STRUCTEND_TYPE

TC3 RFID Reader Communication56 Version: 1.1

Page 57: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

eOpMode Die Betriebsart legt fest, welche Funktion durch einen Triggerimpuls ausgelösst wird.Der Befehl eRFC_TriggerOn oder ein Impuls am optionalen Triggereingang lösst diehier eingestellte Aktion aus.Falls eRFOP_WriteData eingestellt ist, wird ein Schreibzugriff ausgeführt.Falls eRFOP_ReadData eingestellt ist, wird ein Lesezugriff ausgeführt. [default]Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein derRFID Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist indem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiterenVerarbeitung dem Bausteininterface entnommen werden.TYPE E_RFID_OpMode : (    eRFOP_WriteData,    eRFOP_ReadData,    eRFOP_ReadSerialNumber);END_TYPE

eTriggerMode Falls eRFTR_ImmediateRead eingestellt ist, ist das Gerät immer lesebereit. Durchdiese Einstellung gilt die Triggerbedingung immer als erfüllt. [default] Falls eRFTR_ReadWithTrigger eingestellt ist, liesst das Gerät nur beiTriggerbedingung. Dazu kann der Befehl eRFC_TriggerOn genutzt werden. (sieheBefehlssatz [} 21])Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein der TcRFID Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist indem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiterenVerarbeitung dem Bausteininterface entnommen werden.TYPE E_RFID_TriggerMode : (    eRFTR_ImmediateRead,    eRFTR_ReadWithTrigger);END_TYPE

eReadMode Falls eRFRD_ContinuousRead eingestellt ist, liesst das Gerät dauerhaft und gibtebenfalls dauerhaft gelesene Daten aus. Falls eRFRD_SingleShot eingestellt ist, liesst das Gerät genau einmal. [default]TYPE E_RFID_ReadMode : (    eRFRD_ContinuousRead,    eRFRD_SingleShot);END_TYPE

eWriteMode Falls eRFWR_ImmediateWrite eingestellt ist, muß der Transponder im Feld sein, umeinen Schreib- oder Lesebefehl korrekt auszuführen. [default] Falls eRFWR_WriteToNextTag eingestellt ist, werden die Daten einesSchreibbefehles in den nächst folgenden Transponder geschrieben. ('Vorspannen')TYPE E_RFID_WriteMode : (    eRFWR_ImmediateWrite,    eRFWR_WriteToNextTag);END_TYPE

eNetworkMode Falls eRFNM_Network eingestellt ist, können mehrere Geräte in einem RS485Netzwerk eingebunden sein. Falls eRFNM_StandAlone eingestellt ist, befindet sich das Gerät im Stand-AloneBetrieb. [default]Hinweis: Der Betrieb von mehreren Geräten innerhalb eines RS485 Netzwerkes wirdvon der Bibliothek nicht unterstützt.TYPE E_RFID_NetworkMode :(    eRFNM_Network,    eRFNM_StandAlone);END_TYPE

bSerialNumberMode Falls bSerialNumberMode TRUE ist, wird die Seriennummer bei Schreib- undLesebefehlen mit übertragen.Im Standardfall entspricht dies der zuletzt mit dem Befehl GetInventory detektiertenTransponderseriennummer. Anderfalls wird die Transponderseriennummer durchAngabe in ST_RFID_Control [} 45] festgelegt.

bMultiTranspMode Falls bMultiTranspMode TRUE ist, so ist Antikollision aktiv, wenn mehrereTransponder im Feld sind.

bOutputAutomatic Falls bOutputAutomatic TRUE ist, wird der Schaltausgang automatisch geschaltet.

TC3 RFID Reader Communication 57Version: 1.1

Page 58: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

iBlockSize Die Blöckgröße kann als 4 Byte oder 8 Byte eingestellt werden.Sie muss mit der zum Lesen und Schreiben in ST_RFID_AccessData [} 52]verwendeten Blöckgröße überein stimmen.

tOutputPulseTime Mit tOutputPulseTime wird die Aktionszeit des Ausganges konfiguriert. DieImpulsdauer des optionalen Ausgangssignales kann zwischen 30ms und 9000mseingestellt werden.

eTranspType Soll das RFID Gerät nur Transponder eines Types erkennen, kann dieser miteTranspType eingestellt werden. Mit dem Wert 16#FE wird keine Einschränkungvorgenommen.Folgende Werte sind möglich (E_RFID_TranspType [} 67]):eRFTT_ICodeeRFTT_STmLRI512eRFTT_TagIteRFTT_ICodeSlieRFTT_InfineonSRF55eRFTT_InsideeRFTT_TagItHfi

iCountBlocksRead Mit iCountBlocksRead wird die Anzahl der automatisch zu lesenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen4 und 9 Blöcke.

iCountBlocksWrite Mit iCountBlocksRead wird die Anzahl der automatisch zu schreibenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen4 und 9 Blöcke.

iStartBlockRead Mit iStartBlockRead wird die Startadresse für das automatische Lesen konfiguriert.iStartBlockWrite Mit iStartBlockRead wird die Startadresse für das automatische Schreiben

konfiguriert.arrWriteData Es können maximal 72 Bytes als Schreibdaten angegeben werden.

Hinweis: Es gibt Kombinationen von Werten, welche unzulässig sind. Die bestehenden Abhängigkeiten sindin der proprietären Spezifikation des Herstellers dargelegt. Falls versucht wird eine unzulässigeKonfiguration zu schreiben, tritt der Fehler eRFERR_InvalidCfg ein oder es wird ein Fehlercode vom RFIDGerät empfangen.

Weitere Informationen zum Ablauf der RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.8.3 ST_RFID_CfgStruct_DeisterUDL

Die Struktur ist für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet.(siehe Befehlssatz [} 21])Dabei handelt es sich nicht um die Parametrierung der PLC RFID Bibliothek, sondern um die proprietäreKonfiguration des RFID Readers.TYPE ST_RFID_CfgStruct_DeisterUDL :STRUCT    ePollingMode : E_RFID_PollingMode := eRFPO_PollingMode; (* CMD: 0x0A OR    Byte 32, Bit 5 *)    eTriggerMode : E_RFID_TriggerMode := eRFTR_ImmediateRead; (* Byte 15, Bit 1 *)    eOpMode      : E_RFID_OpMode := eRFOP_ReadSerialNumber; (* Byte 15, Bit 6,7 *)    eTranspType  : E_RFID_TranspType := eRFTT_EPC1Gen2; (* Byte 33 *)

    tOutputPulseTime  : TIME := T#300ms; (* Byte 38 and 39 *)    bOutputLevel      : BOOL;         (* TRUE = high; FALSE = low *)

    iReserved : USINT;

TC3 RFID Reader Communication58 Version: 1.1

Page 59: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

    iCountBlocksRead  : USINT := 1;     (* Byte 41 *)    iCountBlocksWrite : USINT := 1;     (* Byte 43 *)

    iStartBlockRead   : UINT := 0;     (* Byte 40 *)    iStartBlockWrite  : UINT := 0;     (* Byte 42 *)    arrWriteData      : ARRAY [0..31] OF BYTE; (* Byte 44 - 75 *)END_STRUCTEND_TYPE

Es muss ggf. der Unterschied zwischen Polling und Trigger beachtet werden. Hinzu kommt in diesemKontext, dass neben dem PollingMode dennoch der TriggerMode vorhanden sein kann.

TC3 RFID Reader Communication 59Version: 1.1

Page 60: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

ePollingMode Falls eRFPO_PollingMode eingestellt ist, sendet das RFID Gerät nur auf AnfrageDaten. [default] Falls eRFPO_ReportMode eingestellt ist, darf das RFID Gerät jederzeit von sich ausDaten übertragen.TYPE E_RFID_PollingMode :(    eRFPO_ReportMode,    eRFPO_PollingMode);END_TYPE

eTriggerMode Falls eRFTR_ImmediateRead eingestellt ist, ist das Gerät immer lesebereit. Durchdiese Einstellung gilt die Triggerbedingung immer als erfüllt. [default] Falls eRFTR_ReadWithTrigger eingestellt ist, liest das Gerät nur beiTriggerbedingung. Dazu kann der Befehl eRFC_TriggerOn genutzt werden. (sieheBefehlssatz [} 21])Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein der TcRFID Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist indem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiterenVerarbeitung dem Bausteininterface entnommen werden.TYPE E_RFID_TriggerMode : (    eRFTR_ImmediateRead,    eRFTR_ReadWithTrigger);END_TYPE

eOpMode Diese Betriebs-Modi sind nicht mit jedem Transpondertyp möglich.Falls eRFOP_WriteData eingestellt ist, wird ein Schreibzugriff ausgeführt sobald einTransponder erkannt wird.Falls eRFOP_ReadData eingestellt ist, wird ein Lesezugriff ausgeführt sobald einTransponder erkannt wird.Falls eRFOP_ReadSerialNumber eingestellt ist, wird keine Aktion ausgeführt. DerBefehl Polling liefert die Seriennummer. [default]Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein der RFIDBibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist in demFall nicht gegeben. Die empfangenen Rohdaten können zur weiteren Verarbeitungdem Bausteininterface entnommen werden.TYPE E_RFID_OpMode : (    eRFOP_WriteData,    eRFOP_ReadData,    eRFOP_ReadSerialNumber);END_TYPE

eTranspType Soll das RFID Gerät nur Transponder eines Types erkennen, kann dieser miteTranspType eingestellt werden. Mit dem Wert 16#FE wird keine Einschränkungvorgenommen.Folgende Werte sind möglich (E_RFID_TranspType [} 67]):eRFTT_EPC1Gen1eRFTT_EPC1Gen2

tOutputPulseTime Mit tOutputPulseTime wird die Aktionszeit des Ausganges konfiguriert. DieImpulsdauer des optionalen Ausgangssignals kann zwischen 30ms und 9000mseingestellt werden.

bOutputLevel Mit bOutputLevel wird die Kontrolle des optionalen digitalen Ausganges beeinflusst.Nach einem erfolgreichen Lesen kann der Ausgang auf HighLevel(bOutputLevel=TRUE) oder Lowlevel (bOutputLevel=FALSE) gesetzt werden.

iCountBlocksRead Mit iCountBlocksRead wird die Anzahl der automatisch zu lesenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen 4und 9 Blöcke. Die Blockgröße ist abhängig vom Transpondertyp.

iCountBlocksWrite Mit iCountBlocksRead wird die Anzahl der automatisch zu schreibenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen 4und 9 Blöcke. Die Blockgröße ist abhängig vom Transpondertyp.

iStartBlockRead Mit iStartBlockRead wird die Startadresse für das automatische Lesen konfiguriert.iStartBlockWrite Mit iStartBlockRead wird die Startadresse für das automatische Schreiben

konfiguriert.

TC3 RFID Reader Communication60 Version: 1.1

Page 61: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

arrWriteData Es können maximal 32 Bytes als Schreibdaten angegeben werden.

Weitere Informationen zum Ablauf der RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.8.4 ST_RFID_CfgStruct_LeuzeRFM

Die Struktur ist für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet.(siehe Befehlssatz [} 21])Dabei handelt es sich nicht um die Parametrierung der PLC RFID Bibliothek, sondern um die proprietäreKonfiguration des RFID Readers.TYPE ST_RFID_CfgStruct_LeuzeRFM :STRUCT    eOpMode      : E_RFID_OpMode := eRFOP_ReadData;    eTriggerMode : E_RFID_TriggerMode := eRFTR_ImmediateRead;    eReadMode    : E_RFID_ReadMode := eRFRD_SingleShot;    eWriteMode   : E_RFID_WriteMode := eRFWR_ImmediateWrite;

    eNetworkMode : E_RFID_NetworkMode := eRFNM_Network;    bAFI : BOOL := FALSE; (* not implemented; ready for future extention *)    iAFI : BYTE;         (* not implemented; ready for future extention *)

    bSerialNumberMode : BOOL         := FALSE;    bMultiTranspMode  : BOOL         := FALSE;    bOutputAutomatic  : BOOL         := TRUE;    iBlockSize        : USINT         := 8;

    tOutputPulseTime  : TIME         := T#300ms;

    eTranspType       : E_RFID_TranspType := eRFTT_TagItHfi;

    iCountBlocksRead  : USINT         := 1;    iCountBlocksWrite : USINT         := 1;

    iStartBlockRead   : UINT         := 16#4000;    iStartBlockWrite  : UINT         := 5;    arrWriteData      : ARRAY [0..71] OF BYTE;END_STRUCTEND_TYPE

TC3 RFID Reader Communication 61Version: 1.1

Page 62: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

eOpMode Die Betriebsart legt fest, welche Funktion durch einen Triggerimpuls ausgelöst wird. Der Befehl eRFC_TriggerOn oder ein Impuls am optionalen Triggereingang löst diehier eingestellte Aktion aus.Falls eRFOP_WriteData eingestellt ist, wird ein Schreibzugriff ausgeführt.Falls eRFOP_ReadData eingestellt ist, wird ein Lesezugriff ausgeführt. [default]Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein derRFID Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist indem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiterenVerarbeitung dem Bausteininterface entnommen werden.TYPE E_RFID_OpMode : (    eRFOP_WriteData,    eRFOP_ReadData,    eRFOP_ReadSerialNumber);END_TYPE

eTriggerMode Falls eRFTR_ImmediateRead eingestellt ist, ist das Gerät immer lesebereit. Durchdiese Einstellung gilt die Triggerbedingung immer als erfüllt. [default] Falls eRFTR_ReadWithTrigger eingestellt ist, liest das Gerät nur beiTriggerbedingung. Dazu kann der Befehl eRFC_TriggerOn genutzt werden. (sieheBefehlssatz [} 21])Hinweis: Das darauffolgende Antworttelegramm wird vom Funktionsbaustein der TcRFID Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist indem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiterenVerarbeitung dem Bausteininterface entnommen werden.TYPE E_RFID_TriggerMode : (    eRFTR_ImmediateRead,    eRFTR_ReadWithTrigger);END_TYPE

eReadMode Falls eRFRD_ContinuousRead eingestellt ist, liest das Gerät dauerhaft und gibtebenfalls dauerhaft gelesene Daten aus. Falls eRFRD_SingleShot eingestellt ist, liest das Gerät genau einmal. [default]TYPE E_RFID_ReadMode : (    eRFRD_ContinuousRead,    eRFRD_SingleShot);END_TYPE

eWriteMode Falls eRFWR_ImmediateWrite eingestellt ist, muss der Transponder im Feld sein,um einen Schreib- oder Lesebefehl korrekt auszuführen. [default] Falls eRFWR_WriteToNextTag eingestellt ist, werden die Daten einesSchreibbefehles in den nächst folgenden Transponder geschrieben. ('Vorspannen')TYPE E_RFID_WriteMode : (    eRFWR_ImmediateWrite,    eRFWR_WriteToNextTag);END_TYPE

eNetworkMode Falls eRFNM_Network eingestellt ist, können mehrere Geräte in einem RS485Netzwerk eingebunden sein. [default] Falls eRFNM_StandAlone eingestellt ist, befindet sich das Gerät im Stand-AloneBetrieb.Hinweis: Der Betrieb von mehreren Geräten innerhalb eines RS485 Netzwerkes wirdvon der Bibliothek nicht unterstützt.TYPE E_RFID_NetworkMode :(    eRFNM_Network,    eRFNM_StandAlone);END_TYPE

bSerialNumberMode Falls bSerialNumberMode TRUE ist, wird die Seriennummer bei Schreib- undLesebefehlen mit übertragen.Im Standardfall entspricht dies der zuletzt mit dem Befehl GetInventory detektiertenTransponder Seriennummer. Andernfalls wird die Transponder Seriennummer durchAngabe in ST_RFID_Control [} 45] festgelegt.

bMultiTranspMode Falls bMultiTranspMode TRUE ist, so ist Antikollision aktiv, wenn mehrereTransponder im Feld sind.

bOutputAutomatic Falls bOutputAutomatic TRUE ist, wird der Schaltausgang automatisch geschaltet.

TC3 RFID Reader Communication62 Version: 1.1

Page 63: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

iBlockSize Die Blockgröße kann als 4 Byte oder 8 Byte eingestellt werden.Sie muss mit der zum Lesen und Schreiben in ST_RFID_AccessData [} 52]verwendeten Blockgröße übereinstimmen.

tOutputPulseTime Mit tOutputPulseTime wird die Aktionszeit des Ausganges konfiguriert. DieImpulsdauer des optionalen Ausgangssignals kann zwischen 30 ms und 9000 mseingestellt werden.

eTranspType Soll das RFID Gerät nur Transponder eines Types erkennen, kann dieser miteTranspType eingestellt werden. Mit dem Wert 16#FE wird keine Einschränkungvorgenommen.Folgende Werte sind möglich (E_RFID_TranspType [} 67]):eRFTT_ICodeeRFTT_STmLRI512eRFTT_TagIteRFTT_ICodeSlieRFTT_InfineonSRF55eRFTT_InsideeRFTT_TagItHfi

iCountBlocksRead Mit iCountBlocksRead wird die Anzahl der automatisch zu lesenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen4 und 9 Blöcke.

iCountBlocksWrite Mit iCountBlocksRead wird die Anzahl der automatisch zu schreibenden Blöckekonfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximaleAnzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen4 und 9 Blöcke.

iStartBlockRead Mit iStartBlockRead wird die Startadresse für das automatische Lesen konfiguriert.iStartBlockWrite Mit iStartBlockRead wird die Startadresse für das automatische Schreiben

konfiguriert.arrWriteData Es können maximal 72 Bytes als Schreibdaten angegeben werden.

Hinweis: Es gibt Kombinationen von Werten, welche unzulässig sind. Die bestehenden Abhängigkeiten sindin der proprietären Spezifikation des Herstellers dargelegt. Falls versucht wird eine unzulässigeKonfiguration zu schreiben, tritt der Fehler eRFERR_InvalidCfg ein oder es wird ein Fehlercode vom RFIDGerät empfangen.

Weitere Informationen zum Ablauf der RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.1.8.5 ST_RFID_CfgStruct_PepperlFuchsIDENT

Die Struktur ist für das Lesen mit eRFC_GetConfig geeignet. (siehe Befehlssatz [} 21])Dabei handelt es sich nicht um die Parametrierung der PLC RFID Bibliothek, sondern um die proprietäreKonfiguration des RFID Readers.TYPE ST_RFID_CfgStruct_PepperlFuchsIDENT :STRUCT    tTimeout       :TIME;    iBaudrate      :UINT;    iIdentChannel  :USINT;    bMultiplexMode :BOOL;    arrHeadCfg     :ARRAY [0..3] OF ST_RFID_HeadCfg;    arrTriggerCfg  :ARRAY [0..1] OF ST_RFID_TriggerCfg;END_STRUCTEND_TYPE

TC3 RFID Reader Communication 63Version: 1.1

Page 64: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Das Pepper+Fuchs Gerät Ident Control Compact besteht aus einer Zentraleinheit und 1-4 Schreib-/Leseköpfen. Jedes dieser fünf Elemente erhält einen Identifikationskanal (Ident Channel), mit dem sichBefehle zu einzelnen Elementen zuordnen lassen. Im Standardfall ist die Zentraleinheit mit dem Kanal 0versehen und die Schreib-/Leseköpfe mit den Kanälen 1-4.Mit dem Befehl eRFC_GetConfig und den Ausgaben am Ausgang stReaderCfg können die Einstellungen füralle Identifikationskanäle überprüft werden.

tTimeout tTimeout gibt die Dauer an, die das RFID Gerät auf weitere Zeichen eines Telegrammswartet. Hat das Gerät nach dieser Dauer keinen verständlichen Befehl erkannt, folgteine Fehlermeldung. (Standard ist 0 ms)

iBaudrate Mit iBaudrate wird die aktuell verwendete Baudrate des RFID Gerätes angezeigt. Dieunterstützten RFID Geräte verfügen über eine maximale Übertragungsrate von 38400Baud.

iIdentChannel Identifikationskanal der ZentraleinheitbMultiplexMode Im Multiplex-Modus ist eine gegenseitige Beeinflussung der Schreib-/Leseköpfe

minimiert, weil immer nur ein Kopf gleichzeitig aktiv ist.arrHeadCfg Es existieren Geräte mit bis zu vier Schreib-/Leseköpfen. Jeder Kopf hat einen Status

und einen DataCarrierType. Diese Information ist je Kopf in einer Struktur vom TypST_RFID_HeadCfg hinterlegt.Der Status der Zentraleinheit wird in iErrCodeRcv direkt am Ausgang vonFB_RFIDReader [} 36] ausgegeben.Mögliche Werte für iDCType sind in ST_RFID_Control [} 45] erläutert.TYPE ST_RFID_HeadCfg :STRUCT    eStatus :E_RFID_ErrCodeRcv_PepperlFuchs;    iDCType :USINT; (* not equal to E_RFID_TranspType enumeration *)    iReserved :USINT;END_STRUCTEND_TYPE

arrTriggerCfg Es existieren Geräte mit bis zu vier Schreib-/Leseköpfen. Jeder Kopf besitzt eineniIdentChannel und bTriggerMode. Diese Information ist je Triggersensor in einerStruktur vom Typ ST_RFID_TriggerCfg hinterlegt. iIdentChannel bezeichnet denSchreib- Leskopf für den der Triggersensor konfiguriert ist.Falls iTriggerMode TRUE ist, ist der Trigger Modus ist für einen Triggersensor aktiv.Falls zudem bInverted TRUE ist, so handelt es sich um ein invertiertes Triggersignal.Hinweis: Weitere Informationen zum Thema TriggerMode befinden sich im Kapitel RFIDReader Einstellungen Pepper+Fuchs [} 33].TYPE ST_RFID_TriggerCfg :STRUCT    iIdentChannel :USINT;    bTriggerMode :BOOL;    bInverted :BOOL;    bReserved :BOOL;END_STRUCTEND_TYPE

Weitere Informationen zum Ablauf der RFID Reader Konfiguration sind im Kapitel Konfiguration [} 40]zusammengefasst.

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.2 Enumerationen

6.1.2.2.1 E_RFID_CommandTYPE E_RFID_Command : (    eRFC_Unknown     := 0,    eRFC_GetReaderVersion,

TC3 RFID Reader Communication64 Version: 1.1

Page 65: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

    eRFC_GetConfig,    eRFC_SetConfig,    eRFC_GetInventory,    eRFC_Polling,    eRFC_TriggerOn,    eRFC_TriggerOff,    eRFC_AbortCommand,    eRFC_ResetReader,    eRFC_ReadBlock,    eRFC_WriteBlock,    eRFC_OutputOn,    eRFC_OutputOff,    eRFC_FieldOn,    eRFC_FieldOff,    eRFC_SendRawData,    eRFC_ChangeDCType,END_TYPE

Der Funktionsbaustein FB_RFIDReader der TwinCAT PLC RFID Bibliothek bietet am Eingang eCommandobige Enumerationswerte an.Dabei handelt es sich um eine Auswahl an Befehlen, wie beispielsweise Lesen oder Schreiben einesTransponders. Ausführliche Erläuterungen zu den Befehlen finden sich im Kapitel Befehlssatz [} 21].

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.2.2 E_RFID_ResponseTYPE E_RFID_Response : (    eRFR_NoRsp,    eRFR_Unknown,    eRFR_Ready,    eRFR_CmdConfirmation,    eRFR_CfgChangeExecuted,    eRFR_WriteCmdSucceded,    eRFR_NoTransponder,    eRFR_Error,    eRFR_Data_ReaderVersion,    eRFR_Data_Config,    eRFR_Data_Inventory,    eRFR_Data_ReadData,);END_TYPE

Der Funktionsbaustein FB_RFIDReader [} 36] der TwinCAT PLC RFID Bibliothek bietet am AusgangeResponse obige Enumerationswerte an.Diese werden im Folgenden kurz erläutert. Teils finden sich Analogien zu den Telegrammantworttypen derherstellerproprietären Protokolle.

Welche herstellerproprietäre MessageID der hier gelisteten Response entspricht, wird im Folgenden jeweilskursiv angegeben. Aufgrund der Auswertungskomplexität sind nicht alle Entsprechungen aufgeführt.Detaillierten Aufschluss kann bei Bedarf die Rohdatendarstellung ST_RFID_RawData [} 45] am Ausgang desFunktionsbausteines geben.

eRFR_NoRsp :

Dieser Wert signalisiert, dass zuletzt keine Antwort eingetroffen ist.

eRFR_Unknown :

Dieser Wert gibt an, dass das angekommene Telegramm nicht einem bestimmten Typ zugeordnet werdenkonnte und somit auch nicht ausgewertet wurde. Meist geht dies einher mit einer Fehlermeldung (bError =TRUE).

eRFR_Ready :

Manche RFID Reader Modelle signalisieren ihre Betriebsbereitschaft, beispielsweise nach einem Reset, miteinem extra Telegramm. In diesem Fall nimmt eResponse den Wert eRFR_Ready an.

TC3 RFID Reader Communication 65Version: 1.1

Page 66: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

Entsprechung im proprietären Protokoll:Leuze: 'S'Pepperl+Fuchs: Status='2'

eRFR_CmdConfirmation :

Mit dieser Antwort wird der gesendete Befehl bestätigt. Dies kann bei vielen Befehlen auftreten.Ausnahmen sind die Befehle 'Konfiguration ändern' und 'Daten schreiben', denn auf diese beiden Befehlefolgen spezielle Bestätigungen, welche durch die folgenden zwei Enumerationswerte repräsentiert werden.

Entsprechung im proprietären Protokoll:Leuze: 'Q2', 'Q4'

eRFR_CfgChangeExecuted :

Wenn die RFID Reader Konfiguration geändert wurde, sendet der RFID Reader dieses Telegramm zurBestätigung der Aktion.

Entsprechung im proprietären Protokoll:Leuze: 'Q1'

eRFR_WriteCmdSucceded :

Sobald Daten auf den Transponder geschrieben wurden, sendet der RFID Reader diese Bestätigung.

Entsprechung im proprietären Protokoll:Leuze: 'Q5'

eRFR_NoTransponder :

Diese Antwort wird gegeben, falls sich kein Transponder im Lesefeld befindet. Dies wird nicht zwangsläufigals Fehler gewertet, so dass der Ausgang bError auch nicht gesetzt wird.

Entsprechung im proprietären Protokoll:Leuze: '$18'Pepperl+Fuchs: Status='5'

eRFR_Error :

Falls ein Telegramm empfangen wurde, welches einen Fehlercode übermittelt hat, so wird eRFR_Error amAusgang eResponse ausgegeben. Der übermittelte Fehlercode wird in der Ausgangsvariablen iErrCodeRcvangegeben, wozu im Kapitel RFID Fehlercodes [} 77] näheres beschrieben ist. Falls eResponse den WerteRFR_Error einnimmt, so wird auch ein Fehler mittels bError TRUE am Ausgang des Funktionsbausteinessignalisiert.

Entsprechung im proprietären Protokoll: Balluff: <NAK>+FailurenumberDeister: MessageErrorCode>=16#20Leuze: 'Exx', 'Q0'

eRFR_Data_ReaderVersion :

Durch eine Versionsabfrage wird ein RFID Reader dazu aufgefordert, Modellinformationen zu senden. DieseArt von empfangenen Daten wird mit dem Wert eRFR_Data_ReaderVersion am Ausgang eResponsebezeichnet.

eRFR_Data_Config :

Eine ausgelesene RFID Reader Konfiguration wird mittels dem Enumerationswert eRFR_Data_Configsignalisiert.

Entsprechung im proprietären Protokoll:Leuze: 'G'

eRFR_Data_Inventory :

Dieser Telegrammtyp wird angezeigt, wenn ein Transponder erkannt wurde bzw. die Seriennummer einesTransponders ausgelesen wurde.

TC3 RFID Reader Communication66 Version: 1.1

Page 67: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

eRFR_Data_ReadData :

Ein Empfang von ausgelesenen Daten aus dem Transponderspeicher wird mit dem WerteRFR_Data_ReadData signalisiert.

Entsprechung im proprietären Protokoll:Deister: MessageID=16#40 or 16#41

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.2.3 E_RFID_ReaderGroupTYPE E_RFID_ReaderGroup : (    eRFRG_Unknown,    eRFRG_BalluffBIS,    eRFRG_DeisterBasic,    eRFRG_DeisterRDL,    eRFRG_DeisterUDL,    eRFRG_DeisterVReader,    eRFRG_LeuzeRFM,    eRFRG_PepperlFuchsIDENT,    eRFRG_BaltechIDE);END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.2.4 E_RFID_ReaderManufacturerTYPE E_RFID_ReaderManufacturer : (    eRFRM_Unknown,    eRFRM_Balluff,    eRFRM_Deister,    eRFRM_Leuze,    eRFRM_PepperlFuchs,    eRFRM_Baltech);END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.2.5 E_RFID_TranspTypeTYPE E_RFID_TranspType : (    eRFTT_NoTag,    eRFTT_TypeUnknown,    eRFTT_ATA5590,    eRFTT_ATA5590UID,    eRFTT_EM4022_4222,    eRFTT_EM4135,    eRFTT_EPC1Gen1,    eRFTT_EPC1Gen2,    eRFTT_FujitsuMB89R118,    eRFTT_ICode,    eRFTT_ICodeSli,    eRFTT_InfineonSLE55,    eRFTT_InfineonSRF55,     (* also known as Infineon my-d vicinity *)    eRFTT_Inside,

TC3 RFID Reader Communication 67Version: 1.1

Page 68: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

API

    eRFTT_ISO180006TypB,    eRFTT_LegicPrime,    eRFTT_LegicAdvant,    eRFTT_MifareClassic,     (* Philips *)    eRFTT_MifareUltraLight,    eRFTT_MifareDESFire,    eRFTT_STmLRI512,    eRFTT_TagIt,    eRFTT_TagItHfi,         (* TI *)    eRFTT_UCodeEPC119,         (* Philips *)    eRFTT_PICOPASS,         (* INSIDE Contactless *));END_TYPE

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.2.3 T_RFID_TranspSRN(* serial number shown as hex coded string(ascii) *)TYPE T_RFID_TranspSRN : STRING(iRFID_MAXSRNLENGTH);END_TYPE

Der Datentyp beinhaltet eine RFID Transponder Seriennummer.Die Seriennummer des Transponders (häufig 8 Byte) wird als String in hexadezimaler Darstellungangegeben. (iRFID_MAXSRNLENGTH = 51)

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

6.1.3 Globale Konstanten

6.1.3.1 Global_Version

Alle Bibliotheken haben eine bestimmte Version. Diese Version ist u. a. im SPS-Bibliotheks-Repository zusehen. Eine globale Konstante vom Typ ST_LibVersion enthält die Information über die Bibliotheksversion:VAR_GLOBAL CONSTANT    stLibVersion_Tc2_RFID : ST_LibVersion;END_VAR

Um zu sehen ob die Version die Sie haben auch die Version ist die Sie brauchen, benutzen Sie die FunktionF_CmpLibVersion (definiert in Tc2_System library).

Hinweis: Alle anderen Möglichkeiten Bibliotheksversionen zu vergleichen, die Sie von TwinCAT 2 kennen,sind veraltet!

TC3 RFID Reader Communication68 Version: 1.1

Page 69: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

7 BeispieleDie folgenden Beispiele wurden mit unterschiedlichen RFID Reader Modellen entwickelt.Weil grundsätzlich kaum Unterschiede in der Handhabung der RFID Reader mit der TwinCAT SPSBibliothek bestehen, kann auch ein Beispiel welches mit einem anderen Modell entwickelt wurde, zurEinarbeitung herangezogen werden.

Es wird empfohlen sich mindestens zwei Beispiele näher anzuschauen, um ein Verständnis für dieHandhabung zu erlangen.

Tutorial

Das Tutorial [} 69] beschreibt, wie ein RFID Reader in Betrieb genommen wird. Dabei wird Schritt fürSchritt von der Einbindung der TwinCAT Bibliothek bis hin zur Präsenzerkennung von RFID Transpondernvorgegangen.

Beispiel 1

Dieses Beispiel kann für unterschiedliche RFID Reader genutzt werden (Balluff, Baltech, Deister, Leuze,Pepper+Fuchs).Getestet ist das Beispiel mit den Modellen Balluff BIS M 401 und Leuze electronic RFM32.Im Projekt wurde ein RFID Reader an eine einkanalige serielle EL6001 (an einem EK1100) angeschlossen.Es lassen sich ebenso andere serielle Klemmen nutzen.Das Projekt kann ebenso für zwei RFID Reader genutzt werden. Das Beispielprogramm ist bereits für zweiRFID Reader vorbereitet. Es muss lediglich die zweite Verlinkung im TwinCAT System Manager erfolgen.

zum Beispiel [} 73]

Beispiel 2

Dieses Beispiel ist mit einem Baltech RFID Reader, welcher in den Beckhoff Control-Panels sowie Panel-PCs optional verbaut ist, entwickelt worden. Das Gerät wird an einen seriellen Com Port oder einen USBPort angeschlossen.Es kann genutzt werden, um das Gerät komfortabel in Betrieb zu nehmen und zu testen. Das Beispielverfügt über eine einfache Visualisierung.

zum Beispiel [} 74]

Beispiel 3

Dieses Beispiel entspricht einer kleinen Applikation. Die Anwendung umfasst das Erkennen, Lesen undSchreiben eines Transponders in einem automatischen Ablauf.Erstellt wurde das Beispiel mit einem Pepperl+Fuchs RFID Reader. Es kann sowohl das 2-kanalige als auchdas 4-kanalige Modell genutzt werden.

zum Beispiel [} 76]

7.1 TutorialDieses Tutorial ist eine Anleitung, wie Sie mit Hilfe der TwinCAT SPS einen RFID Reader in Betrieb nehmenkönnen.Folgende Schritte werden dabei durchgeführt:

1. Glossar

2. Installation/Bibliotheken

3. Serielle Anbindung

4. Baustein Deklaration

5. Baustein Verwendung

6. Test

TC3 RFID Reader Communication 69Version: 1.1

Page 70: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

Es wird davon ausgegangen, dass Sie Ihre RFID Anwendung detailliert geplant haben und Ihre Applikationbereits modelliert ist.Darauf aufsetzend haben Sie festgestellt, dass ein von der Tc2_RFID Bibliothek unterstützter Readergrundsätzlich Ihren Anforderungen entspricht und Sie mit den angebotenen Kommandos Ihre Applikationimplementieren können. Deshalb entscheiden Sie sich die TwinCAT Bibliothek zu nutzen, um sich dieKommunikation zu Ihrem RFID Reader zu erleichtern.

Hinweis:

Wir führen dieses Tutorial mit dem RFID Reader Modell Balluff Bis M 401 durch. Für andere Modelle kanndie Vorgehensweise allerdings grundsätzlich übernommen werden.

Projekt Download: http://infosys.beckhoff.com/content/1031/TF6600_TC3_RFID/Resources/zip/234213899.zip

nächste Tutorial-Seite [} 70]

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

7.1.1 Tutorial - GlossarBegriff ErläuterungCT Carrier Type, Datenträgertyp, TranspondertypDC Data Carrier - RFID Transponder (Datenspeicher)HF High FrequencyLabel RFID TransponderLF Low FrequencyRF Radio FrequencyRFID Radio Frequency IdentifícationRFID Reader Ein RFID Lesegerät ('Reader') kann sowohl ein rein lesefähiges

Gerät sein als auch ein Schreib-und Lesegerät.Smart Label RFID TransponderSRN Serial NumberTag RFID TransponderUHF Ultra High Frequency

nächste Tutorial-Seite [} 70]

7.1.2 Tutorial - Installation/Bibliotheken- Starten Sie TwinCAT XAE

- Mit 'Datei > Neu' legen Sie ein neues TwinCAT Projekt an

- Mit 'SPS > Neues Element hinzufügen > SPS Projekt' legen Sie ein SPS Projekt an

- Wählen Sie Ihre Zielplattform PC und CX (x86, x64)

- Fügen Sie mit 'Referenzen > Einfügen' die Bibliothek Tc2_RFID und Tc2_SerialCom ein

Jetzt stehen Ihnen alle benötigten SPS Bausteine für die RFID Reader Kommunikation zur Verfügung.

nächste Tutorial-Seite [} 71]

TC3 RFID Reader Communication70 Version: 1.1

Page 71: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

7.1.3 Tutorial - Serielle AnbindungIn diesem Beispiel wird der RFID Reader über die serielle EtherCAT Klemme EL 6001 angebunden.

Variablen:

Legen Sie global einen Sende- sowie einen Empfangspuffer (gEL6ComTxBuffer, gEL6ComRxBuffer) vomType ComBuffer an.

Legen Sie außerdem noch zwei Daten Strukturen an, wie sie im TwinCAT System Manager zur seriellenKommunikation verwendet werden:gEL6ComRxBuffer :ComBuffer;gEL6ComTxBuffer :ComBuffer;EL6ComInData AT %I* :EL6ComInData;EL6ComOutData AT %Q* :EL6ComOutData;

Diese Strukturen verlinken Sie im System Manager mit den Kanälen des seriellen Ports.

Zur seriellen Kommunikation legen Sie eine Instanz des 'SerialLineControl' an. Rufen Sie diese in einerschnellen Task zyklisch auf.LineControl(    Mode      := SERIALLINEMODE_EL6_22B,    pComIn    := ADR(EL6ComInData),    pComOut   := ADR(EL6ComOutData),    SizeComIn := SIZEOF(EL6ComInData),    TxBuffer  := gEL6ComTxBuffer,    RxBuffer  := gEL6ComRxBuffer);

Mode: Als Handle geben Sie in unserem Beispiel die serielle EtherCAT Klemme mit 22Byte Nutzdaten an.

Weiterführende Hinweise finden Sie im Kapitel Serielle RFID Reader Anbindung [} 19].

nächste Tutorial-Seite [} 71]

7.1.4 Tutorial - Baustein DeklarationDer Funktionsbaustein FB_RFIDReader ist das Herzstück der ganzen RFID Reader Kommunikation. DieDeklaration und Initialisierung dieses Bausteines wird im folgenden Kapitel beschrieben.

Legen Sie eine Instanz des FB_RFIDReader an.

Übergeben Sie ihr den Hersteller Ihres RFID Modells am Eingang eManufacturer.fbRFIDReader : FB_RFIDReader     := (eManufacturer := eRFRM_Balluff);sTranspSerialNumber : STRING;

Der FB_RFIDReader verfügt über 7 Eingänge (6 bei den spezifischen FBs aufgrund der fehlendenHerstellerangabe), 2 Ein-Ausgänge und 10 Ausgänge.

Zum Empfangen von Nachrichten, welche seitens des RFID Readers zur Steuerung gesendet werden, ist esausreichend den Funktionsbaustein zyklisch aufzurufen. Der Eingang bExecute muss dabei FALSE bleiben.

TC3 RFID Reader Communication 71Version: 1.1

Page 72: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

Dies wird in diesem Beispiel genutzt, um vorerst eine einfache Präsenzerkennung zu implementieren. Dazurufen Sie den Baustein wie folgt auf:fbRFIDReader(    bExecute    := FALSE,

    RxBuffer    := RxBuffer,    TxBuffer    := TxBuffer,

    bBusy       => ,    bError      => ,    iErrorID    => ,    iErrCodeRcv => );sTranspSerialNumber := fbRFIDReader.stTranspinfo.sSerialNumber;

Nun wird die zuletzt gelesene Seriennummer eines RFID Transponders in Ihrer String-Variablen dargestellt.

Es sollten zur Fehleranalys ebenfalls die Ausgänge bError und iErrorID etc. ausgewertet werden.

nächste Tutorial-Seite [} 72]

7.1.5 Tutorial - Baustein VerwendungEine effektivere Auswertung der empfangenen Daten können Sie mit folgenden Anweisungen erreichen:

Deklarationen:fbRFIDReader : FB_RFIDReader     := (eManufacturer := eRFRM_Balluff);sTranspSerialNumber : STRING;

bBusy : BOOL;bError : BOOL;iErrorID : UINT;iErrCodeRcv : UINT;

stTranspInfo : ST_RFID_TranspInfo;

eErrorID : E_RFID_ErrID;eErrCodeRcv : E_RFID_ErrCodeRcv_Balluff;

fbTriggerResponse : R_TRIG;arrRspRcv : ARRAY[0..99] OF BYTE;

Programmablauf:fbRFIDReader(    bExecute    := FALSE,

    RxBuffer    := RxBuffer,    TxBuffer    := TxBuffer,

    bBusy       => bBusy,    bError      => bError,    iErrorID    => iErrorID,    iErrCodeRcv => iErrCodeRcv);(* convert Error Codes *)eErrorID := UINT_TO_INT(iErrorID);eErrCodeRcv := UINT_TO_INT(iErrCodeRcv);

fbTriggerResponse(CLK := fbRFIDReader.bResponseRcv);IF (fbTriggerResponse.Q) THEN    stTranspInfo := fbRFIDReader.stTranspInfo;    sTranspSerialNumber := stTranspInfo.sSerialNumber;     (* detected RFID Tag Serial Number *)

    MEMSET(ADR(arrRspRcv), 0 , SIZEOF(arrRspRcv) );    MEMCPY(ADR(arrRspRcv), fbRFIDReader.stRawData.pReceivedRsp, MIN(fbRFIDReader.stRawData.iReceive-dRspLen, SIZEOF(arrRspRcv)) );END_IF

Empfangene Fehlercodes können online als Enumeratonswert dargestellt werden, indem die IntegerVariablen iErrorID und iErrCodeRcv direkt zugewiesen werden.Mit Hilfe eines Triggers werden weitere Daten nur ausgewertet, falls eine neue Nachricht empfangenen wird.

TC3 RFID Reader Communication72 Version: 1.1

Page 73: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

Ihre String Variable sTranspSerialNumber gibt nun immer die Seriennummer des zuletzt detektiertenTransponders wieder. Diese ist in diesem Fall ebenso am FunktionsbausteinausgangfbRFIDReader.stTranspInfo.sSerialNumber zu sehen.Weitere Informationen können je nach Anwendung von den Ausgängen des Funktionsbausteinesübernommen werden.

Um eine empfangene Nachricht als komplette Bytefolge anzuzeigen, nutzen Sie beispielsweise dieMEMCPY Funktion und kopieren die Rohdaten in ihr deklariertes Bytearray.

Jede Meldung Ihres RFID Readers wird nun empfangen und in obiger Weise ausgewertet.

nächste Tutorial-Seite [} 73]

7.1.6 Tutorial - TestSobald Sie das Programm gemäß den letzten Kapiteln erstellt haben, können Sie nun die aktuelleKonfiguration mit den verlinkten Variablen im System Manager aktivieren und TwinCAT in den RunModeversetzen.Daraufhin folgt der Login seitens TwinCAT PLC Control und der Start der Applikation.

Wenn Sie einen Transponder vor Ihren RFID Reader bewegen, wird dieser detektiert und die empfangeneNachricht sowie Seriennummer im Programmcode übernommen. Die Werte werden online imProgrammcode oder in einer zusätzlichen Visualisierung dargestellt.

Hinweis: Der Balluff RFID Reader muss für diese Funktionalität passend konfiguriert sein. 'Typ und serialnumber bei CT pres.' muss aktiviert sein. Auf diese und andere Konfigurationsparameter wird im KapitelRFID Reader Einstellungen - Balluff näher eingegangen. Nicht jeder RFID Reader unterstützt dieseEinstellung.

Das komplette Projekt können Sie ebenso herunterladen: http://infosys.beckhoff.com/content/1031/TF6600_TC3_RFID/Resources/zip/234213899.zip

7.2 Beispiel 1Dieses Beispiel kann für unterschiedliche RFID Reader genutzt werden (Balluff, Baltech, Deister, Leuze,Pepper+Fuchs).

Getestet ist das Beispiel mit den Modellen Balluff BIS M 401 und Leuze electronic RFM32.Im Projekt wurde ein RFID Reader an eine einkanalige serielle EL6001 (an einem EK1100) angeschlossen.Es lassen sich ebenso andere serielle Klemmen nutzen. Bei Verwendung von KL Klemmen muss der Aufrufdes Serial Line Control im Programmcode angepasst werden. (siehe Kapitel RFID Reader Anbindung [} 19])Das Projekt kann ebenso für zwei RFID Reader genutzt werden. Das Beispielprogramm ist bereits für zweiRFID Reader vorbereitet. Es muss lediglich die zweite Verlinkung im TwinCAT System Manager erfolgen.

Das Beispielprojekt beinhaltet den Aufruf des RFID Funktionsbausteines mit unterschiedlichen Befehlen. Diewichtigsten Befehle wurden in diesem Beispiel implementiert. Dazu gehört unter anderem das Lesen undSchreiben vom RFID Transponderspeicher.Nach Programmstart muss über die lokale Enumeration eManufacturer der passende RFID ReaderHersteller ausgewählt werden.Mittels der lokalen Enumeration eCommand kann der Befehlstyp ausgewählt werden.Um den Aufruf zu starten muss die lokale Variable bExecute einmal auf TRUE gesetzt werden.Daraufhin sind an den Ausgängen des RFID Funktionsbausteines die Ergebnisse der Abfrage angegeben.Alternativ kann die Bedienung mit der im Beispiel integrierten Visualisierung geschehen:

TC3 RFID Reader Communication 73Version: 1.1

Page 74: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

Hinweis: Je nach RFID Reader Modell müssen zuerst die Befehle GetReaderVersion und GetConfig (ggf.auch SetConfig) ausgeführt werden, um eine korrekte Kommunikation mit dem RFID Reader zuermöglichen.

Für weitere Informationen zum Ablauf der RFID Reader Kommunikation wird auf das Kapitel RFIDFunktionsbaustein Handhabung [} 39] verwiesen.

Projekt Download: IN BEARBEITUNG ( TcRFID_Sample01.zip)

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

7.3 Beispiel 2Dieses Beispiel ist mit einem Baltech RFID Reader, welcher in den Beckhoff Control-Panels sowie Panel-PCs optional verbaut ist, entwickelt worden. Das Gerät wird an einen seriellen Com Port oder den USB Portangeschlossen.Es kann genutzt werden, um das Gerät komfortabel in Betrieb zu nehmen und zu testen.

Wird ein Baltech RFID Reader verwendet, der an eine serielle Beckhoff Klemme anstatt an den Com Portangeschlossen ist, muss die serielle Hintergrundkommunikation im SPS Code geändert werden und dies imTwinCAT System Manager neu konfiguriert werden. (siehe Kapitel RFID Reader Anbindung [} 19])

TC3 RFID Reader Communication74 Version: 1.1

Page 75: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

Das Beispielprojekt beinhaltet den Aufruf des RFID Funktionsbausteines mit unterschiedlichen Befehlen.Mit Hilfe der integrierten Visualisierung können die Befehle ausgeführt werden. Implementiert sind dieBefehle GetReaderVersion, GetInventory, ReadBlock und WriteBlock. So kann auch ein RFID Transpondergetestet werden und Daten in Form eines ASCII Strings auf diesen geschrieben werden sowie ebensogelesen werden.

Der RFID Reader muss zuerst initialisiert werden, um eine korrekte Kommunikation mit dem RFID Reader zuermöglichen. Der Button InitRfidReader führt dazu den Befehl GetReaderVersion aus.Für weitere Informationen zum Ablauf der RFID Reader Kommunikation wird auf das Kapitel RFIDFunktionsbaustein Handhabung [} 39] verwiesen.

Durch Aktivierung der LogView Ausgabe wird im TwinCAT System Manager LoggerView die kompletteserielle Übertragung dargestellt.

Projekt Download: http://infosys.beckhoff.com/content/1031/TF6600_TC3_RFID/Resources/zip/227370251.zip oder http://infosys.beckhoff.com/content/1031/TF6600_TC3_RFID/Resources/zip/949454859.zip

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

TC3 RFID Reader Communication 75Version: 1.1

Page 76: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Beispiele

7.4 Beispiel 3Dieses Beispiel entspricht einer kleinen Applikation. Die Anwendung umfasst das Erkennen, Lesen undSchreiben eines Transponders in einem automatischen Ablauf.Erstellt wurde das Beispiel mit einem Pepperl+Fuchs RFID Reader. Es kann sowohl das 2-kanalige als auchdas 4-kanalige Modell genutzt werden.Im Beispiel ist das Gerät direkt an den Com Port angeschlossen. Wird ein Pepperl+Fuchs RFID Readerverwendet, der an eine serielle Beckhoff Klemme anstatt an den Com Port angeschlossen ist, muss dieserielle Hintergrundkommunikation im SPS Code geändert werden und dies im TwinCAT System Managerneu konfiguriert werden. (siehe Kapitel RFID Reader Anbindung [} 19])

Ablauf der implementierten Applikation:

Mit dem RFID Gerät sind zwei Schreib-/Leseköpfe verbunden. Beide erkennen vollautomatisch im Feldeintreffende Transponder. Nach Erkennung wird ein Speicherblock aus dem Datenspeicher desTransponders ausgelesen. Der sich darin befindliche 4-byte Wert wird vom ersten Lesekopf um eins addiertbzw. vom zweiten Lesekopf um eins subtrahiert. Der neue Wert wird sofort zurück auf den Transpondergeschrieben. Dieser Ablauf des Erkennens, Lesens und Schreibens dauert in Summe ca.eine halbeSekunde. Zwischen zwei solchen Vorgängen am selben Lesekopf müssen mindestens 3 Sekunden liegen,um eine ungewollte Mehrfachausführrung zu vermeiden. (Dies liesse sich ebenso mittels Prüfung der Tag-Seriennummer lösen.)

Das Programm beinhaltet im Wesentlichen eine Zustandsmaschine mit 6 Zuständen:0: Initialisierung - Ausführung von GetReaderVersion, GetConfig, etc.1: Tag-Erkennung an Lesekopf 1- buffered GetInventory2: Tag-Erkennung an Lesekopf 2- buffered GetInventory3: Warten auf Tag-Erkennung4: Aktion an Lesekopf 1 - ReadBlock und WriteBlock5: Aktion an Lesekopf 2 - ReadBlock und WriteBlock

Hinweis: Der data carrier type (iUSEDDCTYPE) sollte auf den jeweils verwendeten Transpondertypenangepasst werden.

Das Beispielprojekt beinhaltet den Aufruf des RFID Funktionsbausteines mit unterschiedlichen Befehlen. Fürweitere Informationen zum Ablauf der RFID Reader Kommunikation wird auf das Kapitel RFIDFunktionsbaustein Handhabung [} 39] verwiesen.

Projekt Download: IN BEARBEITUNG (TcRFID_Sample03.zip)

Voraussetzungen

Entwicklungsumgebung Zielplattform Einzubindende SPS-BibliothekenTC3.1.4013 PC oder CX (x86, x64) Tc2_RFID

TC3 RFID Reader Communication76 Version: 1.1

Page 77: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Anhang

8 Anhang

8.1 RFID FehlercodesFehlerausgaben werden an zwei Ausgängen des RFID PLC Funktionsbausteines zur Verfügung gestellt.Diese zwei Ausgangsvariablen iErrorID [} 77] und iErrCodeRcv [} 79] werden im Folgenden erläutert.

iErrorIDFalls ein Fehler vorliegt, zeigt diese Ausgabe die Art des Fehlers. Folgende Liste gibt die möglichen Wertewieder.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 Readerempfangen. Dieser empfangene Fehlercode wird in der Ausgangsvariablen iErrCodeRcv angegeben.Hinweis: Bei einem anderen Wert für iErrorID kann dennoch zusätzlich vom RFID Reader ein Fehlerempfangen worden sein, welcher auch an iErrCodeRcv angezeigt wird.

TC3 RFID Reader Communication 77Version: 1.1

Page 78: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Anhang

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. Einenoch in Bearbeitung befindliche Aktion wird damit abgebro-chen. Hinweis: Es kommt auch zu einem Timeout Fehler, fallsdie serielle Hintergrundkommunikation nicht funktioniert. Dieskann beispielsweise der Fall sein, falls die falsche Baudrateeingestellt ist oder die Taskzykluszeit nicht ausreicht um dieDaten zu verarbeiten. Nähere Informationen hierzu finden sichim Kapitel RFID Reader Anbindung [} 19] und in der Dokumen-tation der SPS Bibliothek Serielle Kommunikation.

eRFERR_InvalidCommand 0x4101 16641 Der Befehl wurde nicht ausgeführt. Der gewählte Befehl kannmit diesem RFID Reader Modell nicht ausgeführt werden. ImBefehlssatz [} 21] sind die zur Verfügung stehenden Befehlegelistet.Um sicher zu stellen, dass das vorliegende RFID Reader Mo-dell 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 ReaderKonfiguration (siehe Ausgangsstruktur ST_RFID_Config [} 51])ist nicht kompatibel mit dem ausgewählten Befehl (und den da-zu gehörigen Eingangsparametern).Es muss sicher gestellt werden, dass die Konfiguration zuvoreinmal gelesen wurde. Andernfalls kann ebenso dieser Fehler-code auftreten.

eRFERR_InvalidManufacturer 0x4103 16643 Am Eingang des generischen Funktionsbausteines FB_RFI-DReader muss mit der Variablen eManufacturer der RFID Her-steller des RFID Reader Modells angegeben werden. Der Feh-ler eRFERR_InvalidManufacturer signalisiert eine ungültigeAngabe.

eRFERR_InvalidTimeOutParam 0x4104 16644 Dieser Fehler wird ausgegeben, falls die Angabe der Ein-gangsvariablen tTimeOut ungültig ist. Es gilt die Bedingung'tTimeOut > tPreSendDelay + tPostSendDelay'.

eRFERR_InvalidRawDataParam 0x4105 16645 Sollen Rohdaten gesendet werden, so müssen diese am Ein-gang des Funktionsbausteines angegeben werden. Der FehlereRFERR_InvalidRawDataParam wird ausgegeben, falls dieAngabe der Eingangsvariablen pRawDataCommand oder iRa-wDataCommandLen ungültig ist. Näheres zum Thema im Ka-pitel LowLevel Kommunikation [} 41].

eRFERR_InvalidAccessData 0x4106 16646 Der Befehl wurde nicht ausgeführt, weil die am Eingang ange-gebenen Parameter in der Struktur ST_RFID_AccessData [} 52]ungültig sind.

eRFERR_InvalidCfg 0x4107 16647 Der Befehl 'Konfiguration ändern' wurde nicht ausgeführt, weildie angegebenen Konfigurationsdaten ungültig sind. Die Konfi-gurationsdaten liegen als Konfigurationsstruktur an (bUseCf-gReg = FALSE). Im Zweifelsfall sind die genauen gültigenWertebereiche der Daten in der proprietären Protokollspezifi-kation durch den Hersteller gegeben.Falls die zuletzt gelesene Konfiguration für die in der Konfigu-rationsstruktur nicht verfügbaren Parameter genutzt wird (bU-seCfgDefault = FALSE in ST_RFID_ConfigIn [} 50]), muss si-cher gestellt werden, dass die Konfiguration zuvor gelesenwurde. Andernfalls kann ebenso dieser Fehlercode auftreten.

eRFERR_InvalidCfgParam 0x4108 16648 Der Befehl 'Konfiguration ändern' wurde nicht ausgeführt, weildie angegebenen Eingangsparameter der Konfigurationsdatenungültig sind. Die Konfigurationsdaten sollen als Konfigurati-onsregister oder Konfigurationsstruktur anliegen. Dessen Län-ge oder ein anderer Parameter in ST_RFID_ConfigIn [} 50] sindungültig.

eRFERR_InvalidCtrlHeadNumber 0x4109 16649 Falls ein RFID Lesegerät mit mehreren Leseköpfen angespro-chen wird, so wird in der Eingangsstruktur ST_RFID_Control[} 45] eine Wahl des Lesekopfes angegeben. Ist für den ange-gebenen Wert kein Lesekopf verfügbar, so wird dieser Fehler-wert ausgegeben.

eRFERR_InvalidResponse 0x4201 16897 Falls die Bytefolge der empfangenen Response keiner bekann-ten Nachrichtenart entspricht oder einzelne Bytes nicht die er-forderlichen Werte aufweisen, wird dieser Fehler ausgegeben.Die empfangenen Daten können als Rohdatenblock am Aus-gang ST_RFID_RawData [} 45] analysiert werden.

TC3 RFID Reader Communication78 Version: 1.1

Page 79: Handbuch TC3 RFID Reader Communication - …ftp.beckhoff.com/download/document/automation/twincat3/TF6600_TC… · Beckhoff®, TwinCAT®, EtherCAT ... Die TwinCAT 3 Function ist zusätzlich

Anhang

ID(hex)

ID(dec)

Beschreibung

eRFERR_InvalidRspLen 0x4202 16898 Falls die Bytefolge theoretisch einer bekannten Nachrichtenartentspricht, die Länge allerdings nicht der Erwartung entspricht,wird diese Fehlermeldung erzeugt. Die empfangenen Datenkönnen als Rohdatenblock am Ausgang ST_RFID_RawData[} 45] analysiert werden.

eRFERR_InvalidBlocksize 0x4203 16899 Tritt dieser Fehlerwert ein, so konnten die empfangenen vomTransponder gelesenen Daten nicht ausgewertet werden. DieAnzahl der empfangenen Bytes signalisiert, dass die konfigu-rierte Blocksize nicht mit der Eingabe beim Befehlsaufruf über-einstimmt.

eRFERR_ErrorRcv 0x4204 16900 Ein Fehlercode wurde mit der empfangenen Nachricht gesen-det. Der vom RFID Reader angezeigte Fehler wird ebensoausgegeben und von der Ausgangsvariablen iErrCodeRcv re-präsentiert (Erläuterung am Ende dieses Kapitels).

eRFERR_ChecksumError 0x4205 16901 Je nach Protokollspezifikation wird eine Checksumme, bei-spielsweise eine CRC Prüfsumme, im Telegram mit gesendet.Wird von der Steuerung ein Telegram empfangen mit fehler-hafter Checksumme, so wird dieser Fehler ausgegeben.

eRFERR_UnknownReaderGroup 0x4401 17409 Die RFID Bibliothek teilt die RFID Reader Modelle intern inGruppen ein. Der Fehler eRFERR_UnknownReaderGroupkann auftreten, falls der RFID Reader noch keiner Gruppe zu-geordnet ist. Deshalb muss je nach RFID Reader Modell beiProgrammstart als erste Abfrage der Befehl GetReaderVersiongetätigt werden.

eRFERR_CreatedTelegramTooBig 0x4402 17410 Es wurde versucht ein Telegram zu senden, welches die maxi-mal mögliche Größe von 300 Bytes überschritten hat. Es kön-nen nur Telegramme mit bis zu 300 Bytes versendet werden.

Hinweis

HinweisIn einigen wenigen Fällen werden vom RFID Gerät mehrere Telegramme unmittelbar hin-tereinander versendet. Es ist deshalb wichtig immer den Fehler zu erkennen und zu behe-ben, welcher als erstes eintraf.

iErrCodeRcvFalls vom RFID Reader ein Fehlercode mitgeschickt wird, wird dieser an der Stelle ausgegeben. Teilswerden auch 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 Datentypdeklarationen (E_RFID_ErrCodeRcv_Balluff,E_RFID_ErrCodeRcv_Deister, E_RFID_ErrCodeRcv_Leuze usw.) der SPS RFID Bibliothek über dieTwinCAT XAE Bibliothekdetails oder direkt in der Protokollspezifikation zu entnehmen.

TC3 RFID Reader Communication 79Version: 1.1