Herunterladen Diese Seite drucken
Beckhoff TF6600 Handbuch
Beckhoff TF6600 Handbuch

Beckhoff TF6600 Handbuch

Rfid reader communication

Werbung

Handbuch | DE
TF6600
TwinCAT 3 | RFID Reader Communication
22.11.2023 | Version: 1.3.1

Werbung

loading

Inhaltszusammenfassung für Beckhoff TF6600

  • Seite 1 Handbuch | DE TF6600 TwinCAT 3 | RFID Reader Communication 22.11.2023 | Version: 1.3.1...
  • Seite 3 Global_Version.........................  68 7 Beispiele .............................. 69 Tutorial ............................ 69 7.1.1 Glossar.......................... 70 7.1.2 Installation/Bibliotheken .................... 70 7.1.3 Serielle Anbindung ...................... 70 7.1.4 Bausteindeklaration...................... 71 7.1.5 Bausteinverwendung...................... 71 7.1.6 Test .......................... 72 Beispiel 1............................ 73 Beispiel 2............................ 74 Beispiel 3............................ 75 TF6600 Version: 1.3.1...
  • Seite 4 Inhaltsverzeichnis 8 Anhang .............................. 77 RFID-Fehlercodes ...........................  77 Support und Service........................ 79 Version: 1.3.1 TF6600...
  • Seite 5 EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern. ® EtherCAT ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland Copyright © Beckhoff Automation GmbH & Co. KG, Deutschland.
  • Seite 6 Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software- Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über die dokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss der Beckhoff Automation GmbH & Co. KG. Qualifikation des Personals Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-, Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.
  • Seite 7 Vorwort Hinweise zur Informationssicherheit Die Produkte der Beckhoff Automation GmbH & Co. KG (Beckhoff) sind, sofern sie online zu erreichen sind, mit Security-Funktionen ausgestattet, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Trotz der Security-Funktionen sind die Erstellung, Implementierung und ständige Aktualisierung eines ganzheitlichen Security-Konzepts für den Betrieb notwendig, um die jeweilige Anlage,...
  • Seite 8 Baltech, Deister electronic, Leuze electronic und Pepperl+Fuchs. Für Beckhoff Multitouch-Control-Panel ist optional der Compact RFID Reader verfügbar. Im Gegensatz zu den anderen RFID-Reader-Modellen wird dieser nicht mithilfe der TF6600 RFID Reader Communication aus TwinCAT heraus angesprochen, sondern allein mithilfe der TF6340 Serial Communication. Eine Produktbeschreibung des Compact RFID Reader sowie ein SPS-Beispiel, das die Kommunikation mit diesem Gerät zeigt, finden Sie im Online Information System im Abschnitt Industrie-PC >...
  • Seite 9 Nachfolgend wird beschrieben, wie die TwinCAT 3 Function für Windows-basierte Betriebssysteme installiert wird. ü Die Setup-Datei der TwinCAT 3 Function wurde von der Beckhoff-Homepage heruntergeladen. 1. Führen Sie die Setup-Datei als Administrator aus. Wählen Sie dazu im Kontextmenü der Datei den Befehl Als Administrator ausführen.
  • Seite 10 Installation 3. Geben Sie Ihre Benutzerdaten ein. 4. Wenn Sie die TwinCAT 3 Function vollständig installieren möchten, wählen Sie Complete als Installationstyp. Wenn Sie die Komponenten der TwinCAT 3 Function separat installieren möchten, wählen Sie Custom. Version: 1.3.1 TF6600...
  • Seite 11 Installation 5. Wählen Sie Next und anschließend Install, um die Installation zu beginnen. ð Ein Dialog weist Sie darauf hin, dass das TwinCAT-System für die weitere Installation gestoppt werden muss. 6. Bestätigen Sie den Dialog mit Yes. TF6600 Version: 1.3.1...
  • Seite 12 Die TwinCAT 3 Function ist als Vollversion oder als 7-Tage-Testversion freischaltbar. Beide Lizenztypen sind über die TwinCAT-3-Entwicklungsumgebung (XAE) aktivierbar. Lizenzierung der Vollversion einer TwinCAT 3 Function Die Beschreibung der Lizenzierung einer Vollversion finden Sie im Beckhoff Information System in der Dokumentation „TwinCAT 3 Lizenzierung“. Lizenzierung der 7-Tage-Testversion einer TwinCAT 3 Function Eine 7-Tage-Testversion kann nicht für einen TwinCAT-3-Lizenz-Dongle freigeschaltet werden.
  • Seite 13 Auswahlkästchen für die Lizenz, die Sie Ihrem Projekt hinzufügen möchten (z. B. „TF4100 TC3 Controller Toolbox“). 6. Öffnen Sie die Registerkarte Order Information (Runtime). ð In der tabellarischen Übersicht der Lizenzen wird die zuvor ausgewählte Lizenz mit dem Status „missing“ angezeigt. TF6600 Version: 1.3.1...
  • Seite 14 9. Bestätigen Sie den nachfolgenden Dialog, der Sie auf die erfolgreiche Aktivierung hinweist. ð In der tabellarischen Übersicht der Lizenzen gibt der Lizenzstatus nun das Ablaufdatum der Lizenz 10. Starten Sie das TwinCAT-System neu. ð Die 7-Tage-Testversion ist freigeschaltet. Version: 1.3.1 TF6600...
  • Seite 15 Die nachfolgende Tabelle gibt an, welche RFID-Reader-Modelle welcher Hersteller unterstützt werden. Bei den Abbildungen handelt es sich um Symbolfotos von RFID-Leser-Modellen. Diese können somit von den angegebenen unterstützten Modellen abweichen. Außerdem wird nicht jedes unterstützte Modell als Foto abgebildet. Veraltete Firmware-Versionen seitens der Reader werden teilweise nicht unterstützt. TF6600 Version: 1.3.1...
  • Seite 16 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) ID-engine ZM-L2M-U2-A1 (RS232) Deister electronic RDL90 (deBus) (RS232, RS485) UDL 500 (deBus) (RS485) PRM5M/2V (deBus) (RS232, RS485) Version: 1.3.1 TF6600...
  • Seite 17 Laut Deister electronic ist in weiteren Modellen dasselbe Protokoll (deBus) implementiert. Eine Verwendung 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‑Systeme zugänglich zu machen.
  • Seite 18 Technische Einführung Verwendung vom Beckhoff Compact RFID Reader (iDTRONIC) Der Beckhoff Compact RFID Reader ist eine Möglichkeit in einer Tastererweiterung für Beckhoff Multitouch-Control-Panels ein RFID Gerät des Herstellers iDTRONIC zu integrieren. Entgegen der Integration von Baltech Geräten in Beckhoff Panels wird hierbei nicht die SPS-Bibliothek Tc2_RFID (TF6600) sondern allein die SPS-Bibliothek Tc2_SerialCom (TF6340) verwendet.
  • Seite 19 Alle mittels dieser SPS-Bibliothek unterstützten RFID Reader werden über serielle Kommunikationsschnittstellen mit der Steuerung verbunden (RS 232, RS 422, RS 485 und virtuelle serielle COM Ports). Dazu können folgende Beckhoff Produkte genutzt werden: • Serielle EtherCAT-Klemmen: EL6001, EL6002, EL6021, ... • Serielle K-Bus-Klemmen: KL6001/KL6031, KL6021, ...
  • Seite 20 Aufruf als StructuredText im Falle der Verwendung einer EtherCAT-Klemme: 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; Version: 1.3.1 TF6600...
  • Seite 21 Befehls und des speziellen Verhaltens des RFID Readers ist in den proprietären Protokoll-Spezifikationen gegeben. Welcher herstellerproprietäre Befehl dem hier gelisteten Befehl entspricht, wird im Folgenden jeweils kursiv angegeben. Details können Sie ebenso der Ausgangsstruktur ST_RFID_RawData [} 45] des Funktionsbausteins FB_RFIDReader [} 35] entnehmen. TF6600 Version: 1.3.1...
  • Seite 22 Pepperl+Fuchs: 'VE' Baltech: System GetInfo GetConfig [16#02] Mit diesem Befehl wird die aktuelle Konfiguration des RFID Readers abgefragt. Alle relevanten empfangenen Parameter werden in der Beschreibung der Struktur ST_RFID_Config [} 52] erläutert. Weitere Informationen sind im Abschnitt Konfiguration [} 40] zusammengefasst. Version: 1.3.1 TF6600...
  • Seite 23 TwinCAT‑RFID‑Bibliothek empfangen. Eine Zuweisung von gelesenen Transponderdaten ist in dem Fall nicht gegeben. Die empfangenen Rohdaten können zur weiteren Verarbeitung dem Bausteininterface entnommen werden. Entsprechung im proprietären Protokoll: Deister: 0x85 Leuze: '+' TriggerOff [16#07] Siehe TriggerOn [} 23]. TF6600 Version: 1.3.1...
  • Seite 24 (siehe Befehl GetInventory [} 23]). Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wird festgelegt, für welchen Lesekopf der Befehl auszuführen ist. Entsprechung im proprietären Protokoll: Balluff: 'P' Deister: 0x84 Leuze: 'W' Pepperl+Fuchs: 'SW' & 'EW' Baltech: VHLWrite Version: 1.3.1 TF6600...
  • Seite 25 Mit diesem Befehl kann der Transpondertyp am Lesekopf eingestellt werden. Dazu wird mittels iDCType in ST_RFID_Control [} 45] der Typ angegeben. Pepperl+Fuchs: Mit dem Parameter iHeadNumber in der Struktur ST_RFID_Control [} 45] wird festgelegt, für welchen Lesekopf der Befehl auszuführen ist. Entsprechung im proprietären Protokoll: Pepperl+Fuchs: 'CT' TF6600 Version: 1.3.1...
  • Seite 26 Die Endekennung (LF CR) wird in dem Fall als Suffix zur Erkennung von Telegrammen genutzt. Sobald diese 2 Bytes im Datenstrom erkannt werden, werden vorherige Daten zu einem Telegramm zusammengefasst. Ggf. führt dies zu einem Fehler und fehlender Auswertung des Telegramms. Sollte der Version: 1.3.1 TF6600...
  • Seite 27 Baltech Wenn ein unterstütztes Baltech RFID-Stand-Alone-Gerät verwendet wird, kann die TwinCAT‑RFID‑Bibliothek als Schnittstelle genutzt werden. Eine Alternative ist die Verwendung mit bestimmten Beckhoff Control- Panels oder Panel-PCs. In diesen Geräten kann als Option ein RFID Reader integriert werden. In diesem Fall wird ein SDK mitgeliefert, in dem sich die proprietären Dokumentationen befinden. Der Funktionsumfang der TwinCAT-Bibliothek ist in beiden Fällen derselbe.
  • Seite 28 Ist das Gerät mittels USB verbunden, so muss der passende Usb-To-Virtual-Com-Port-Treiber installiert sein. Handelt es sich um einen Beckhoff Panel-PC, so ist der Treiber bereits vorinstalliert. Ebenso beinhaltet das SDK des RFID-Gerätes den Treiber. Der virtuelle COM Port wird im Windows Gerätemanager angezeigt.
  • Seite 29 RFID Readers verwendet werden. Diese müssen dann auch in der softwareseitigen Reader-Anbindung übernommen werden (siehe RFID-Reader-Anbindung [} 19]). Mittels der proprietären Tools müssen gegebenenfalls vor Systemstart folgende spezielle Einstellungen parametriert werden: Einstellung Wert Parameter der Datenübertragung (s.o.) Einstellung in Analogie zu den im SPS-Programm gewählten Werten TF6600 Version: 1.3.1...
  • Seite 30 Systemstart vorgenommen werden. Hierzu zählt beispielsweise die Baudrate der seriellen Kommunikation. Um diese Einstellungen auf den RFID Reader zu übertragen, kann ein proprietäres Tool des RFID-Reader-Herstellers nötig sein. Für alle unterstützten RFID-Reader-Modelle haben sich diese Standardeinstellungen der Datenübertragung bewährt: Version: 1.3.1 TF6600...
  • Seite 31 = eRFWR_WriteToNextTag eTriggerMode = eRFTR_ReadWithTrigger bMultiTranspMode = TRUE bSerialNumberMode = TRUE eWriteMode = eRFWR_ImmediateWrite eReadMode = eRFRD_SingleShot Wird die Konfiguration als Register übertragen, bestehen diese Abhängigkeiten ebenso und das RFID-Gerät wird bei Unzulässigkeit einen Fehlercode zurückliefern. TF6600 Version: 1.3.1...
  • Seite 32 Mit der Eingangsvariablen bBufferedCmd in ST_RFID_Control [} 45] können Befehle abgesetzt werden, die für eine spätere dauerhafte Ausführung gepuffert werden. Dies ist mit den Befehlen eRFC_GetInventory, eRFC_ReadBlock und eRFC_WriteBlock möglich. Ein gepufferter Befehl kann mit dem Befehl eRFC_AbortCommand beendet werden. Version: 1.3.1 TF6600...
  • Seite 33 54 4D 33 30 30 Um an Kanal 2 einen Sensor als Trigger zu konfigurieren, müssen folgende Rohdaten gesendet werden: ASCII TM201 54 4D 32 30 31 Antwort: eResponse = eRFR_CmdConfirmation, sobald der Sensor ausgelöst wird. Antwort: eResponse = eRFR_NoTransponder, sobald der Sensor verlassen wird. TF6600 Version: 1.3.1...
  • Seite 34 Am Ausgang stTranspInfo.iHeadNumber ist der Sensorkanal angegeben von dem die Antwort gesendet wurde. Nachdem eine solche Einstellung vorgenommen wurde, muss die Gerätekonfiguration mit dem Befehl Get Config [} 22] erneut gelesen werden. Es empfiehlt sich, die vorgenommenen Einstellungen mittels Auswertung der gelesenen Konfigurationsstruktur zu überprüfen. Version: 1.3.1 TF6600...
  • Seite 35 Overheat besitzt. Diese unabdingbare Eigenschaft wird jedoch stark durch die Vorteile überwogen, welche die verfügbare Flexibilität bietet. Syntax FUNCTION_BLOCK FB_RFIDREADER VAR_INPUT     bExecute      : BOOL;     eCommand      : E_RFID_Command;     stAccessData  : ST_RFID_AccessData;     stCtrl        : ST_RFID_Control;     stCfg         : ST_RFID_ConfigIn;     eManufacturer : E_RFID_ReaderManufacturer;     tTimeOut      : TIME := T#5s; END_VAR VAR_IN_OUT     RxBuffer      : ComBuffer;     TxBuffer      : ComBuffer; END_VAR VAR_OUTPUT     bBusy         : BOOL;     bResponseRcv  : BOOL;     eResponse     : E_RFID_Response;     bError        : BOOL;     iErrorID      : UINT;     (* general RFID error *)     iErrCodeRcv   : UINT;     (* error received by reader *)     stReaderCfg   : ST_RFID_Config;     stReaderInfo  : ST_RFID_ReaderInfo;     stTranspInfo  : ST_RFID_TranspInfo;     stRawData     : ST_RFID_RawData; END_VAR TF6600 Version: 1.3.1...
  • Seite 36 RFID Readers im Abschnitt RFID-Reader-Anbindung [} 19] TxBuffer Es wird der Ausgangspuffer angegeben, welcher als ComBuffer Ausgangsvariable deklariert und im TwinCAT System Manager mit der seriellen Klemme verlinkt wurde. Siehe dazu die Beschreibung der seriellen Anbindung eines RFID Readers im Abschnitt RFID-Reader-Anbindung [} 19] Version: 1.3.1 TF6600...
  • Seite 37 SPS API Ausgänge TF6600 Version: 1.3.1...
  • Seite 38 Fehlers angezeigt. Details zu den möglichen Fehler-IDs sind im Abschnitt Fehlercodes [} 77] angegeben. iErrCodeRcv UINT Der am Ausgang iErrCodeRcv angegebene Fehlercode entspricht dem vom RFID Reader an die Steuerung gesendetem Fehlercode. Details zur Fehlerdarstellung sind im Abschnitt Fehlercodes [} 77] angegeben. Version: 1.3.1 TF6600...
  • Seite 39 (bExecute = FALSE), bis die interne Bearbeitung abgeschlossen ist (bBusy = FALSE). Währenddessen sind alle Eingänge des Funktionsbausteins unverändert zu belassen. Alle empfangenen Nachrichten werden zusätzlich als Rohdaten in nicht aufbereiteter Form komplett am Ausgang zur Verfügung gestellt. TF6600 Version: 1.3.1...
  • Seite 40 Parameterwerte sich bei welcher Kombination ausschließen, können Sie den proprietären Protokollspezifikationen der RFID-Reader-Hersteller entnehmen. Bei fehlerhafter Eingabe der Parameter wird entweder bereits vor Konfigurationsanfrage ein Fehler generiert oder der RFID Reader signalisiert durch seine Response, dass die Konfigurationsdaten nicht übernommen werden konnten. Version: 1.3.1 TF6600...
  • Seite 41 Es können beliebige Telegramme bis zu einer maximalen Größe von 1024 Bytes empfangen und bis zu einer Größe von 300 Bytes versendet werden. Ein gesamtes Telegramm setzt sich dabei wie folgt zusammen: | Prefix | Adressierung | Rohdaten | CRC | Suffix | TF6600 Version: 1.3.1...
  • Seite 42 Beispiel einer Zuweisung von empfangenen Daten mithilfe 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.iReceivedRspLen, SIZEOF(arrReceivedData)) ); Balluff RFID Reader: Die Endekennung (LF CR) wird als Suffix zur Erkennung von Telegrammen genutzt. Sobald diese 2 Bytes im Datenstrom erkannt werden, werden vorherige Daten zu einem Telegramm zusammengefasst. Version: 1.3.1 TF6600...
  • Seite 43 Nicht jede Variable wird dabei von jedem RFID-Reader-Modell in Form der Versionsinformation bedient. So gibt ein Reader-Modell beispielsweise das Produktionsdatum bekannt, während ein anderes RFID-Reader- Modell die Hardwareversion übermittelt. Nähere Informationen zu den Angaben finden Sie in den herstellereigenen Protokollspezifikationen und -handbüchern. TYPE ST_RFID_ReaderInfo : STRUCT     dDate         : DATE; TF6600 Version: 1.3.1...
  • Seite 44 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. Diese ist nicht zu verwechseln mit der Transponderseriennummer. Version: 1.3.1 TF6600...
  • Seite 45 Gibt die Länge der abgelegten Bytefolge in Bytes an. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013 PC oder CX (x86, x64) Tc2_RFID 6.2.1.4 ST_RFID_Control Die Eingangsstruktur stCtrl beinhaltet Variablen, mit denen sich das Verhalten des Funktionsbausteins parametrieren lässt. TF6600 Version: 1.3.1...
  • Seite 46 Verbindung zu einer separaten Klemme erfolgen. In diesem stand-alone Betrieb ist eine individuelle Adressierung mit iSrcAddrSnd und iDstAddrSnd nicht nötig. Die Adressierung kann demnach automatisch von der TwinCAT-RFID-Bibliothek übernommen werden, wozu die Eingangsvariable bAddrAutoMode auf TRUE belassen werden kann. Version: 1.3.1 TF6600...
  • Seite 47 Wenn 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. TF6600 Version: 1.3.1...
  • Seite 48 String angegeben werden. Der Datentyp ist T_RFID_TranspSRN [} 68]. Dies ist in den meisten Fällen nicht notwendig. Wenn eine bestimmte Reader- Konfiguration dies notwendig macht, sind Details hierzu bei der diesbezüglichen Beschreibung in der proprietären Spezifikation zu finden. Version: 1.3.1 TF6600...
  • Seite 49 Es gilt die Bedingung tTimeOut > tPreSendDelay + tPostSendDelay. Andernfalls wird ein Fehler am Ausgang ausgegeben. Im proprietären Protokoll der Balluff RFID Reader ist eine Mindestverzögerungszeit zwischen zwei Befehlen von 300 ms spezifiziert. Im proprietären Protokoll der Leuze electronic RFID Reader ist eine Mindestverzögerungszeit zwischen Empfang und Befehl von 150 ms spezifiziert. TF6600 Version: 1.3.1...
  • Seite 50 Baltech Name Beschreibung pCfg Dieser Pointer muss die Speicheradresse der zu schreibenden Konfiguration beinhalten. Dabei handelt es sich um die Konfigurationsstruktur ST_RFID_CfgStruct_BaltechMifVHLFile. iCfgSize Diese Eingangsvariable gibt die Länge in Bytes der über den Pointer angegebenen Konfigurationsdaten an. Version: 1.3.1 TF6600...
  • Seite 51 Index des Registers zu ändern/lesen, wozu dieser mit iRegIdx angegeben werden muss. Diese Konfigurationsvariante ist nur für Leuze electronic RFID Reader verfügbar. Weitere Informationen zur RFID-Reader-Konfiguration sind im Abschnitt Konfiguration [} 40] zusammengefasst. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013 PC oder CX (x86, x64) Tc2_RFID TF6600 Version: 1.3.1...
  • Seite 52 Mit dieser Struktur wird angegeben, wie viele und welche Daten gelesen und wo diese abgespeichert werden 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 added  automatically. *)     iBlockCount : UINT;     (* condition: Blockcount*Blocksize=Datasize *)     iBlockSize  : UINT := 1; (* in Bytes *)     iUserDataStartBlock : UINT := 0; (* depending on the transponder type its user data memory start s with block index 0 or higher *)     (* The upper parameter iStartBlock depends on the iUserDataStartBlock. The used StartBlock is iS tartBlock+iUserDataStartBlock. *)     (* Different RFID Readers can differ in their interpretation of the first block. *)     iReserved : UINT; END_STRUCT END_TYPE Version: 1.3.1 TF6600...
  • Seite 53 Die Struktur ist für das Schreiben mit dem Befehl eRFC_SetConfig geeignet (siehe RFID-Befehlssatz [} 21]). Dabei handelt es sich nicht um die Parametrierung der TwinCAT-RFID-Bibliothek, sondern um die proprietäre Konfiguration 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 with 752 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 *) TF6600 Version: 1.3.1...
  • Seite 54 Darstellung entspricht eine Spalte jeweils einem Sektor, während ein Kästchen einen Block a 16 Byte repräsentiert. Nur die weiß dargestellten Blöcke beinhalten für den Nutzer verwendbaren Speicherbereich. Die maximale Größe der Nutzdaten ist demnach 752 Bytes (47 x 16 Byte) bei einer 1024 Byte großen Mifare-Karte. Version: 1.3.1 TF6600...
  • Seite 55 Als Standard wird jedoch die Sektorzuweisung verwendet [default: FALSE]. iMAD_AID Der Eingang wird nur benötigt, wenn 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. TF6600 Version: 1.3.1...
  • Seite 56 Dabei handelt es sich nicht um die Parametrierung der TwinCAT-RFID-Bibliothek, sondern um die proprietäre Konfiguration 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_STRUCT END_TYPE Version: 1.3.1 TF6600...
  • Seite 57 Im Standardfall entspricht dies der zuletzt mit dem Befehl GetInventory [} 23] detektierten Transponderseriennummer. Andernfalls wird die Transponderseriennummer durch Angabe in ST_RFID_Control [} 45] festgelegt. bMultiTranspMode Wenn bMultiTranspMode TRUE ist, so ist Antikollision aktiv, wenn mehrere Transponder im Feld sind. TF6600 Version: 1.3.1...
  • Seite 58 Die Struktur ist für das Schreiben mit eRFC_SetConfig sowie das Lesen mit eRFC_GetConfig geeignet (siehe RFID-Befehlssatz [} 21]). Dabei handelt es sich nicht um die Parametrierung der TwinCAT-RFID-Bibliothek, sondern um die proprietäre Konfiguration 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 *) Version: 1.3.1 TF6600...
  • Seite 59 SPS API     iReserved : USINT;     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_STRUCT END_TYPE Es muss ggf. der Unterschied zwischen Polling und Trigger beachtet werden. Hinzu kommt in diesem Kontext, dass neben dem PollingMode dennoch der TriggerMode vorhanden sein kann. TF6600 Version: 1.3.1...
  • Seite 60 Mit iCountBlocksWrite wird die Anzahl der automatisch zu schreibenden Blöcke konfiguriert. Das Produkt mit iBlockSize ergibt die Anzahl an Bytes. Die maximale Anzahl an Blöcken beträgt je nach Blockgröße und anderen Einstellungen zwischen 4 und 9 Blöcke. Die Blockgröße ist abhängig vom Transpondertyp. Version: 1.3.1 TF6600...
  • Seite 61 Dabei handelt es sich nicht um die Parametrierung der TwinCAT-RFID-Bibliothek, sondern um die proprietäre Konfiguration 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_STRUCT END_TYPE TF6600 Version: 1.3.1...
  • Seite 62 Wenn bSerialNumberMode TRUE ist, wird die Seriennummer bei Schreib- und Lesebefehlen mit übertragen. Im Standardfall entspricht dies der zuletzt mit dem Befehl GetInventory detektierten Transponder Seriennummer. Andernfalls wird die Transponder Seriennummer durch Angabe in ST_RFID_Control [} 45] festgelegt. Version: 1.3.1 TF6600...
  • Seite 63 ST_RFID_CfgStruct_PepperlFuchsIDENT Die Struktur ist für das Lesen mit eRFC_GetConfig geeignet (siehe RFID-Befehlssatz [} 21]). Dabei handelt es sich nicht um die Parametrierung der TwinCAT-RFID-Bibliothek, sondern um die proprietäre Konfiguration 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; TF6600 Version: 1.3.1...
  • Seite 64 Weitere Informationen zum Thema Trigger Mode finden Sie im Abschnitt Pepperl+Fuchs [} 32] TYPE ST_RFID_TriggerCfg : STRUCT     iIdentChannel :USINT;     bTriggerMode :BOOL;     bInverted :BOOL;     bReserved :BOOL; END_STRUCT END_TYPE Weitere Informationen zum Ablauf der RFID-Reader-Konfiguration sind im Abschnitt Konfiguration [} 40] zusammengefasst. Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013 PC oder CX (x86, x64) Tc2_RFID Version: 1.3.1 TF6600...
  • Seite 65 Telegrammantworttypen der herstellerproprietären Protokolle. Welche herstellerproprietäre MessageID der hier gelisteten Response entspricht, wird in der folgenden Beschreibung jeweils kursiv angegeben. Aufgrund der Auswertungskomplexität sind nicht alle Entsprechungen aufgeführt. Detaillierten Aufschluss kann bei Bedarf die Rohdatendarstellung ST_RFID_RawData [} 45] am Ausgang des Funktionsbausteins geben. TF6600 Version: 1.3.1...
  • Seite 66 Wert eRFR_Data_ReaderVersion am Ausgang eResponse bezeichnet. eRFR_Data_Config Eine ausgelesene RFID-Reader-Konfiguration wird mittels dem Enumerationswert eRFR_Data_Config signalisiert. Entsprechung im proprietären Protokoll: Leuze: 'G' eRFR_Data_Inventory Dieser Telegrammtyp wird angezeigt, wenn ein Transponder erkannt wurde bzw. die Seriennummer eines Transponders ausgelesen wurde. Version: 1.3.1 TF6600...
  • Seite 67     eRFRM_Deister,     eRFRM_Leuze,     eRFRM_PepperlFuchs,     eRFRM_Baltech END_TYPE Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013 PC oder CX (x86, x64) Tc2_RFID 6.2.2.5 E_RFID_TranspType TYPE 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,     eRFTT_ISO180006TypB,     eRFTT_LegicPrime,     eRFTT_LegicAdvant, TF6600 Version: 1.3.1...
  • Seite 68 Um zu sehen, ob die Version, die Sie haben, auch die Version ist, die Sie brauchen, benutzen Sie die Funktion F_CmpLibVersion (definiert in Tc2_System-Bibliothek). Alle anderen Möglichkeiten Bibliotheksversionen zu vergleichen, die Sie von TwinCAT 2 kennen, sind veraltet. Version: 1.3.1 TF6600...
  • Seite 69 (Siehe Beispiel 1 [} 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 USB Port angeschlossen.
  • Seite 70 • Sie haben festgestellt, dass ein von der Tc2_RFID-Bibliothek unterstützter Reader grundsätzlich Ihren Anforderungen entspricht und Sie mit den angebotenen Kommandos Ihre Applikation implementieren können. • Sie entscheiden sich, die TwinCAT-RFID-Bibliothek zu nutzen, um sich die Kommunikation zu Ihrem RFID Reader zu erleichtern. Download: https://infosys.beckhoff.com/content/1031/tf6600_tc3_rfid/Resources/234213899.zip Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013...
  • Seite 71 Nun wird die zuletzt gelesene Seriennummer eines RFID Transponders in Ihrer String-Variablen dargestellt. Zur Fehleranalyse sollten ebenfalls die Ausgänge bError und iErrorID etc. ausgewertet werden. Siehe: Bausteinverwendung [} 71] 7.1.5 Bausteinverwendung Eine effektivere Auswertung der empfangenen Daten können Sie mit folgenden Anweisungen erreichen: TF6600 Version: 1.3.1...
  • Seite 72 Run-Modus setzen. Loggen Sie sich auf der Steuerung ein und starten Sie die Applikation. Wenn Sie einen Transponder vor Ihren RFID Reader bewegen, wird dieser detektiert und die empfangene Nachricht sowie Seriennummer im Programmcode übernommen. Die Werte werden online im Programmcode oder in einer zusätzlichen Visualisierung dargestellt. Version: 1.3.1 TF6600...
  • Seite 73 CT pres. muss aktiviert sein. Diese und andere Konfigurationsparameter werden im Abschnitt Balluff > RFID-Reader-Einstellungen [} 26] näher beschreiben. Nicht jeder RFID Reader unterstützt diese Einstellung. Download: https://infosys.beckhoff.com/content/1031/tf6600_tc3_rfid/Resources/234213899.zip Beispiel 1 Dieses Beispiel kann für unterschiedliche RFID Reader genutzt werden (Balluff, Baltech, Deister, Leuze, Pepper+Fuchs).
  • Seite 74 Tc2_RFID 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 den USB Port angeschlossen. Es kann genutzt werden, um das Gerät komfortabel in Betrieb zu nehmen und zu testen.
  • Seite 75 Die Schaltfläche Init Rfid Reader führt dazu den Befehl GetReaderVersion aus. Für weitere Informationen zum Ablauf der RFID-Reader-Kommunikation wird auf den Abschnitt Funktionsbaustein FB_RFIDReader > Handhabung [} 39] verwiesen. Durch Aktivierung der LogView-Ausgabe wird im TwinCAT System Manager LoggerView die komplette serielle Übertragung dargestellt. Download: https://infosys.beckhoff.com/content/1031/tf6600_tc3_rfid/Resources/227370251.zip oder https:// infosys.beckhoff.com/content/1031/tf6600_tc3_rfid/Resources/949454859.zip Voraussetzungen Entwicklungsumgebung Zielplattform Einzubindende SPS-Bibliotheken TC3.1.4013...
  • Seite 76 Im Beispiel ist das Gerät direkt an den Com Port angeschlossen. Wird ein Pepperl+Fuchs RFID Reader verwendet, der an eine serielle Beckhoff Klemme anstatt an den Com Port angeschlossen ist, muss die serielle Hintergrundkommunikation im SPS Code geändert werden und dies im TwinCAT System Manager neu konfiguriert werden.
  • Seite 77 Wenn iErrorID den Wert eRFERR_ErrorRcv besitzt, wurde ein Fehlercode von dem RFID Reader empfangen. Der empfangene Fehlercode wird in der Ausgangsvariablen iErrCodeRcv angegeben. Bei einem anderen Wert für iErrorID kann zusätzlich vom RFID Reader ein Fehler empfangen worden sein, der auch in der Ausgangsvariablen iErrCodeRcv angezeigt wird. TF6600 Version: 1.3.1...
  • Seite 78 ST_RFID_ConfigIn [} 50] sind ungültig. eRFERR_InvalidCtrlHeadNumber 0x4109 16649 Wenn ein RFID-Lesegerät mit mehreren Leseköpfen angesprochen wird, wird in der Eingangsstruktur ST_RFID_Control [} 45] eine Wahl des Lesekopfes angegeben. Ist für den angegebenen Wert kein Lesekopf verfügbar, so wird dieser Fehlerwert ausgegeben. Version: 1.3.1 TF6600...
  • Seite 79 Eingangsparameter bLogging gesetzt. Details finden Sie in der Parameterbeschreibung in der API [} 45]. Support und Service Beckhoff und seine weltweiten Partnerfirmen bieten einen umfassenden Support und Service, der eine schnelle und kompetente Unterstützung bei allen Fragen zu Beckhoff Produkten und Systemlösungen zur Verfügung stellt.
  • Seite 80 Die Downloads sind in verschiedenen Formaten erhältlich. Beckhoff Niederlassungen und Vertretungen Wenden Sie sich bitte an Ihre Beckhoff Niederlassung oder Ihre Vertretung für den lokalen Support und Service zu Beckhoff Produkten! Die Adressen der weltweiten Beckhoff Niederlassungen und Vertretungen entnehmen Sie bitte unserer Internetseite: www.beckhoff.com...
  • Seite 82 Mehr Informationen: www.beckhoff.com/tf6600 Beckhoff Automation GmbH & Co. KG Hülshorstweg 20 33415 Verl Deutschland Telefon: +49 5246 9630 info@beckhoff.com www.beckhoff.com...