ST_RFID_CfgStruct_BaltechMifVHLFile

Die Struktur ist für das Schreiben mit dem Befehl eRFC_SetConfig geeignet (siehe RFID-Befehlssatz).

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 *)
                := 0,1,2,3,4,5,6,7,8,9,10, (* default: 16 sectors -> 1024 bytes mifare card with 752 bytes 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_STRUCT
END_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. Sektor 0 besteht aus Block 0-3, Sektor 1 aus Block 4-7 und folgende Sektoren bilden sich analog dazu. In der Darstellung entspricht eine Spalte jeweils einem Sektor, während ein Kästchen einen Block a 16 Byte repräsentiert.

ST_RFID_CfgStruct_BaltechMifVHLFile 1:

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.

Name

Beschreibung

iVHLFile

Mit iVHLFile wird die Nummer der zu konfigurierenden VHL-Datei angegeben. In der Konfiguration des RFID-Gerätes können mehrere VHL‑Dateien nebeneinander existieren.

iNrOfKeys

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

iNrOfSectors

Mit iNrOfSectors wird die Anzahl an Sektoren angegeben, die für Nutzdaten verwendet werden sollen. Eine 1-KB-Mifare-Karte besitzt 16 Sektoren [default: 16].

Beispiel: Sollen nur die Sektoren 4-6 verwendet werden, so wird iNrOfSectors = 3 angegeben.

iRC500EEPOffset

Dieser Parameter betrifft die interne Übertragung der Schlüssel innerhalb der Hardware des RFID-Gerätes. Die Standardeinstellung [default: 16#FF] garantiert erhöhte Sicherheit. Eine Änderung wird nicht empfohlen.

arrKeyList

In dem Array arrKeyList werden alle Schlüssel hinterlegt. Ein Schlüssel ist vom Typ T_RFID_MifareKey und besteht aus 6 Byte.

Beispiel: Sollen zwei Schlüssel verwendet werden, so werden bei arrKeyList[0] und arrLeyList[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 Nutzdaten verwendet werden sollen.

Beispiel: Sollen nur die Sektoren 4-6 verwendet werden, so wird arrSectorList[0]=4, arrSectorList[1]=5, arrSectorList[2]=6 angegeben.

Das Array ist bereits mit durchlaufender Nummerierung initialisiert. In den meisten Fällen muss deshalb keine Änderung vorgenommen werden.

arrRdKeyAssign

In dem Array arrRdKeyAssign wird der Schlüsselindex für jeden verwendeten Sektor hinterlegt.

Beispiel: Bei einer 1-KB-Mifare-Karte sollen alle Sektoren verwendet werden (iNrOfSectors = 16). Zwei Schlüssel werden verwendet (iNrOfKeys = 2) Die erste Hälfte der Sektoren auf dieser Karte ist mit dem ersten Schlüssel (arrKeyList[0]) zu lesen und die zweite Hälfte mit dem zweiten Schlüssel (arrKeyList[1]). In dem Array arrRdKeyAssign 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.

Soll für alle Sektoren ein Schlüssel verwendet werden, handelt es sich für alle Sektoren um den Schlüsselindex 0. Das Array ist bereits mit 0 initialisiert. Deshalb muss in diesem Fall keine Änderung vorgenommen werden.

arrWrKeyAssign

In dem Array arrWrKeyAssign wird der Schlüsselindex für jeden verwendeten Sektor hinterlegt.

Beispiel: Bei einer 1-KB-Mifare-Karte sollen alle Sektoren verwendet werden (iNrOfSectors = 16). Zwei Schlüssel werden verwendet (iNrOfKeys = 2) Die erste Hälfte der Sektoren auf dieser Karte ist mit dem ersten Schlüssel (arrKeyList[0]) zu beschreiben und die zweite Hälfte mit dem zweiten Schlüssel (arrKeyList[1]). In dem Array 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.

Soll für alle Sektoren ein Schlüssel verwendet werden, handelt es sich für alle Sektoren um den Schlüsselindex 0. Das Array ist bereits mit 0 initialisiert. Deshalb muss in diesem Fall keine Änderung vorgenommen werden.

bMAD_Mode

Wenn MAD (Mifare Application Directory) mit AIDs (Application Identifiers) anstatt der Sektorzuweisung 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, 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.

Weitere Informationen zum Ablauf der RFID-Reader-Konfiguration sind im Abschnitt Konfiguration zusammengefasst.

Detaillierte Informationen zu den Themen VHL-Datei und Konfiguration von Baltech RFID-Geräten finden Sie zudem in den herstellereigenen Dokumentationen Mifare.pdf und ConfigurationValues.pdf im Baltech SDK.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TC3.1.4013

PC oder CX (x86, x64)

Tc2_RFID