ST_RFID_AccessData

Wenn ein Lese- oder Schreibbefehl ausgeführt werden soll, ist es notwendig die Eingangsstruktur stAccessData anzugeben.

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 starts with block index 0 or higher *)
    (* The upper parameter iStartBlock depends on the iUserDataStartBlock. The used StartBlock is iStartBlock+iUserDataStartBlock. *)
    (* Different RFID Readers can differ in their interpretation of the first block. *)
    iReserved : UINT;
END_STRUCT
END_TYPE

Name

Beschreibung

pData

Der Pointer pData zeigt auf die zu schreibenden Daten bzw. auf den freien Speicherplatz 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 teilweise unterschiedlich.

Beispiel: Auf einen Lesebefehl mit Startindex 0 gibt Reader A den ersten 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 nur bestimmte Einstellungen möglich (gebräuchlich sind z.B. 8,4 oder 1 Byte). Dies sollte vorab aus den Transponderinformationen in Erfahrung gebracht und getestet werden. Ebenso ist die Variable iBlockSize in Übereinstimmung mit der Einstellung in der RFID-Reader-Konfiguration zu wählen. Andernfalls ist es teilweise möglich, dass ein Zugriff auf den Transponder oder die Auswertung der empfangenen Daten nicht erfolgen kann.

iUserDataStartBlock

Mit der Variablen iUserDataStartBlock kann optional der Startblock (als Index von Blö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 der Seriennummer reserviert sein. Der Bereich der Nutzdaten kann dementsprechend bei Index 0 beginnen oder auch bei einem höheren Wert. Falls dies der Fall ist kann die Variable iUserDataStartBlock genutzt werden, um diesen zusätzlichen Parameter anzugeben und den eigentlichen Index iStartBlock gleich zu belassen. Intern werden beide Werte zusammen addiert.

ST_RFID_AccessData 1:

Zugriff unterschiedlicher RFID Reader auf denselben Transponder

Wenn unterschiedliche RFID Reader auf denselben Transponder zugreifen sollen, so muss der Speicherzugriff auf dem Transponder vorher getestet werden. Es ist möglich, dass ein Reader-Modell die Datenblöcke in verdrehter Bytereihenfolge auf dem Transponder ablegt im Vergleich zu einem anderen Reader‑Modell. Oder von einem Reader-Modell wird der gesamte Speicherbereich in umgekehrter Reihenfolge gesehen als es ein anderes Reader-Modell tut. Ebenso kann die lesbare Speichergröße des Transponders zwischen verschiedenen Reader-Modellen leicht variieren. Dies ist zusätzlich abhängig vom Transpondertypen. Die TwinCAT-RFID-Bibliothek nimmt darauf keinen Einfluss. Der Anwender muss obige Eingangsparameter dementsprechend wählen.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TC3.1.4013

PC oder CX (x86, x64)

Tc2_RFID