Hinweise zur Dokumentation

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

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

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und 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.

Marken

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

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

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

Copyright

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


Einleitung

Im Folgenden wird gezeigt, wie Sie einen Fingerscanner der Firma ekey (www.ekey.net) an die Beckhoff Hardware anbinden und zwischen TwinCAT kommunizieren können.

Download der Bibliothek


Anschluss eines ekey Fingerscanners an eine KL6041

Der Fingerscanner hat vier Anschlüsse. Die Datenausgabe erfolgt an den Klemmen 1 und 2. Für Klemme 3 und 4 ist die Spannungsversorgung vorgesehen (24 V DC). Klemme sowie Fingerscanner müssen auf die gleiche Baudrate eingestellt sein.

Hinweis 		Installation
Beachten Sie unbedingt die Installationshinweise des Herstellers.

Schließen Sie den Fingerscanner auf folgende Weise an die Klemme KL6041 an:

Pin 1 und 2 ( Data +) sowie Pin 5 und 6 (Data -) müssen an der KL6041 miteinander verbunden werden.

Einstellen der Klemme

Stellen Sie die Klemme KL6041 mit Hilfe der KS2000 Software auf folgende Werte ein:

  • 22 Datenbytes im Prozessabbild
  • Halbduplex
  • Kontinuierliches Senden der FIFO Daten
  • 19200 Baud
  • 8 Datenbits, keine Parität
  • 1 Stopbit

Einstellen des Fingerscanners

Die Parametrierung des Fingerscanners erfolgt über entsprechende Hard- und Software die beim Hersteller zu beziehen ist.


Anschluss eines ekey Fingerscanners an eine EL6021

Der Fingerscanner hat vier Anschlüsse. Die Datenausgabe erfolgt an den Klemmen 1 und 2. Für Klemme 3 und 4 ist die Spannungsversorgung vorgesehen (24 V DC). Klemme sowie Fingerscanner müssen auf die gleiche Baudrate eingestellt sein.

Hinweis 		Installation
Beachten Sie unbedingt die Installationshinweise des Herstellers.

Schließen Sie den Fingerscanner auf folgende Weise an die Klemme EL6021 an:

Pin 1 und 2 ( Data +) sowie Pin 5 und 6 (Data -) müssen an der EL6021 miteinander verbunden werden.

Einstellen der Klemme

Stellen Sie die Klemme EL6021 mit Hilfe des TwinCAT System Managers auf folgende Werte ein:

  • 22 Datenbytes im Prozessabbild
  • Halbduplex
  • Kontinuierliches Senden der FIFO Daten
  • 19200 Baud
  • 8 Datenbits, keine Parität
  • 1 Stopbit

Einstellen des Fingerscanners

Die Parametrierung des Fingerscanners erfolgt über entsprechende Hard- und Software die beim Hersteller zu beziehen ist.


Anschluss eines ekey Fingerscanners an eine EL6021

Beckhoff Knowledge Base: Kommunikation mit einem ekey Fingerscanner

Allgemeine Informationen

Hardware Dokumentation im Beckhoff Information System: KL6041 - Serielle Schnittstelle RS422/RS485

Hardware Dokumentation im Beckhoff Information System: EL6021 - Serielle Schnittstelle RS422/RS485

Hinweis 		Unterstützung
Die Kommunikation mit einem ekey Fingerscanner wird nur mit einer KL6041/EL6021 unterstützt und steht nicht für BC/BX Steuerungen zur Verfügung.

Hinweis 		Baudrate
Bei einer KL6041 können nur mit einer Baudrate von 19200 alle Funktionen eines Fingerscanners genutzt werden. Die maximale Baudrate 115200 wird nur mit einer EL6021 unterstützt.
Weitere erforderliche Bibliotheken

Für PC-Systeme (x86) und Embedded-PCs (CXxxxx):

  • Standard.lib
  • COMlibV2.lib
  • TcBase.lib
  • TcSystem.lib
  • TcUtilities.lib

Hinweis 		Speicherauslastung
Durch Einbinden der Bibliothek wird bereits SPS-Programmspeicher verbraucht. Abhängig vom Applikationsprogramm kann daher der verbleibende Speicher nicht ausreichend sein.


Integration in TwinCAT (CX9020)

Dieses Beispiel beschreibt, wie ein einfaches SPS-Programm für ekey in TwinCAT geschrieben werden kann und wie es mit der Hardware verknüpft wird. Es soll ermöglicht werden Benutzer und Finger im Fingerscanner anzulegen und auszuwerten.

Beispieldateien entpacken

Hardware

Einrichtung der Komponenten

Es wird folgende Hardware benötigt:

  • 1x Embedded-PC CX9020
  • 1x KL6041 - Serielle Schnittstelle RS422/RS485
  • 1x ekey module FS UP I 800 oder ekey module FS UP REL
  • 1x Endklemme KL9010

Richten Sie die Hardware sowie die ekey-Komponenten wie in den entsprechenden Dokumentationen beschrieben ein.

Dieses Beispiel geht davon aus, dass die Seriennummer vom Fingerscanner bekannt ist.

Software

Erstellung des SPS-Programms

Erstellen Sie ein neues SPS-Projekt für PC-basierte Systeme (ARM) und fügen die Bibliothek TcEkey.lib hinzu.

Erzeugen Sie als Nächstes die folgenden globalen Variablen:

VAR_GLOBAL
    KL6inData22B     AT%I* : KL6inData22B;
    KL6outData22B    AT%Q* : KL6outData22B;
    stCommandBuffer        : ST_EKEY_CommandBuffer;
END_VAR

KL6inData22B : Eingangsvariable für die Serielle-Klemme.

KL6outData22B : Ausgangsvariable für die Serielle-Klemme.

stCommandBuffer : Wird für die Kommunikation mit ekey benötigt.

Alle Bausteine bei ekey müssen in einer Task ausgeführt werden.

Legen Sie daher ein MAIN-Programm (CFC) an in dem die Bausteine FB_EKEY_Communication und FB_EKEY_FingerScanner aufgerufen werden. Achten Sie beim Kommunikationsbaustein darauf, mit pComIn, pComOut und stCommandBuffer zu verknüpfen.

Beim Eingang sSN des Fingerscanners werden die letzten acht Ziffern der Seriennummer eingetragen und stCommandBuffer wird mit der globalen Variable stCommandBuffer verknüpft. Zum Anlegen von Benutzern und Fingern werden alle weiteren lokalen Variablen, wie nachfolgend zu sehen, zugewiesen.

Gehen Sie in die Taskkonfiguration und geben Sie der Task eine niedrigere Intervall-Zeit. Genauere Informationen dazu finden Sie in der Beschreibung des Bausteins FB_EKEY_Communication.

Laden Sie das Projekt als Bootprojekt auf den CX und speichern Sie es ab.

Konfiguration im System Manager

Legen Sie ein neues System-Manager-Projekt an, wählen Sie als Zielsystem den CX und lassen Sie nach dessen Hardware suchen.

Fügen Sie das oben angelegte SPS-Programm unter SPS-Konfiguration hinzu.

Verknüpfen Sie die globalen Variablen des SPS-Programms nun mit den Ein- und Ausgängen der Busklemmen, erzeugen Sie die Zuordnungen und aktivieren Sie die Konfiguration. Starten Sie dann das Gerät im Run-Modus.
Ihr CX ist jetzt einsatzbereit.

Mit den entsprechenden Variablen können nun Benutzer und Finger im Fingerscanner angelegt und über den Zeilensensor gezogene Finger ausgewertet werden.


Integration in TwinCAT (CX9020)

Dieses Beispiel beschreibt, wie ein einfaches SPS-Programm für ekey in TwinCAT geschrieben werden kann und wie es mit der Hardware verknüpft wird. Es soll ermöglicht werden Benutzer und Finger im Fingerscanner anzulegen und auszuwerten.

Beispieldateien entpacken

Hardware

Einrichtung der Komponenten

Es wird folgende Hardware benötigt:

  • 1x Embedded-PC CX9020
  • 1x EL6021 - Serielle Schnittstelle RS422/RS485
  • 1x ekey module FS UP I 800 oder ekey module FS UP REL
  • 1x Endkappe EL9111

Richten Sie die Hardware sowie die ekey-Komponenten wie in den entsprechenden Dokumentationen beschrieben ein.

Dieses Beispiel geht davon aus, dass die Seriennummer vom Fingerscanner bekannt ist.

Software

Erstellung des SPS-Programms

Erstellen Sie ein neues SPS-Projekt für PC-basierte Systeme (ARM) und fügen die Bibliothek TcEkey.lib hinzu.

Erzeugen Sie als Nächstes die folgenden globalen Variablen:

VAR_GLOBAL
    EL6inData22B     AT%I* : EL6inData22B;
    EL6outData22B    AT%Q* : EL6outData22B;
    stCommandBuffer        : ST_EKEY_CommandBuffer;
END_VAR

EL6inData22B : Eingangsvariable für die Serielle-Klemme.

EL6outData22B : Ausgangsvariable für die Serielle-Klemme.

stCommandBuffer : Wird für die Kommunikation mit ekey benötigt.

Alle Bausteine bei ekey müssen in einer Task ausgeführt werden.

Legen Sie daher ein MAIN-Programm (CFC) an in dem die Bausteine FB_EKEY_Communication und FB_EKEY_FingerScanner aufgerufen werden. Achten Sie beim Kommunikationsbaustein darauf, mit pComIn, pComOut und stCommandBuffer zu verknüpfen.

Beim Eingang sSN des Fingerscanners werden die letzten acht Ziffern der Seriennummer eingetragen und stCommandBuffer wird mit der globalen Variable stCommandBuffer verknüpft. Zum Anlegen von Benutzern und Fingern werden alle weiteren lokalen Variablen, wie nachfolgend zu sehen, zugewiesen.

Gehen Sie in die Taskkonfiguration und geben Sie der Task eine niedrigere Intervall-Zeit. Genauere Informationen dazu finden Sie in der Beschreibung des Bausteins FB_EKEY_Communication.

Laden Sie das Projekt als Bootprojekt auf den CX und speichern Sie es ab.

Konfiguration im System Manager

Legen Sie ein neues System-Manager-Projekt an, wählen Sie als Zielsystem den CX und lassen Sie nach dessen Hardware suchen.

Fügen Sie das oben angelegte SPS-Programm unter SPS-Konfiguration hinzu.

Verknüpfen Sie die globalen Variablen des SPS-Programms nun mit den Ein- und Ausgängen der Busklemmen, erzeugen Sie die Zuordnungen und aktivieren Sie die Konfiguration. Starten Sie dann das Gerät im Run-Modus.
Ihr CX ist jetzt einsatzbereit.

Mit den entsprechenden Variablen können nun Benutzer und Finger im Fingerscanner angelegt und über den Zeilensensor gezogene Finger ausgewertet werden.


FB_EKEY_Communication

Dieser Funktionsbaustein wird für die Hintergrundkommunikation mit einer seriellen Schnittstelle verwendet.

Die Zykluszeit der SPS Task sollte dabei nicht mehr als 10ms betragen.

VAR_INPUT

bEnable            : BOOL;
eMode              : ComSerialLineMode_t;
pComIn             : POINTER TO BYTE;
pComOut            : POINTER TO BYTE;
uiSizeComIn        : UINT;

bEnable: Ist der Eingang TRUE, wird die Kommunikation mit der seriellen Schnittstelle gestartet.

eMode: Legt eindeutig fest, welche serielle Hardware verwendet wird (KL6041 = SERIALLINEMODE_KL6_22B_STANDARD; EL6021 = SERIALLINEMODE_EL6_22B).

pComIn: Pointer auf die Eingangsvariablen der Prozessdaten der seriellen Klemme.

pComOut: Pointer auf die Ausgangsvariablen der Prozessdaten der seriellen Klemme.

uiSizeComIn: Größe vom Eingangsprozessabbild der seriellen Klemme.

VAR_OUTPUT

bBusy              : BOOL;
bError             : BOOL;
udiErrorID         : UDINT;

bBusy: Der Ausgang wird TRUE, wenn ein Telegramm versendet bzw. empfangen wird.

bError: Der Ausgang wird TRUE, sobald ein Fehler auftritt. Dieser Fehler wird über die Variable udiErrorID beschrieben.

udiErrorID: Der Ausgang gibt im Fehlerfall einen Fehlercode aus. Gleichzeitig wird bError TRUE.

VAR_IN_OUT

stCommandBuffer    : ST_EKEY_CommandBuffer;

stCommandBuffer: Über diese Struktur wird der Baustein FB_EKEY_Communication mit den Scannerbausteinen verbunden.


FB_EKEY_FingerScanner

Dieser Funktionsbaustein wird für die Bedienung und Kommunikation mit einem Fingerscanner verwendet.

Er muss zyklisch und für jeden Scanner einmal aufgerufen werden. Bitte beachten Sie, dass die Fingerscanner mit unterschiedlichen Funktionen ausgestattet sind. Es werden nicht von allen Modellen alle Funktionen dieses Funktionsbausteins unterstützt.

VAR_INPUT

bEnable                     : BOOL;
sSN                         : STRING(8);
bNewFinger                  : BOOL;
byFingerID                  : BYTE;
byUserID                    : BYTE;
bFingerControlRelay         : BOOL;
eEnrollmentFunction         : E_EKEY_EnrollmentFunction;
bRemoveUser                 : BOOL;
bRemoveAllUsers             : BOOL;
byRemoveUserID              : BYTE;
eLedFunction                : E_EKEY_LEDFunction;
diLedClock                  : DINT;
bRelayOn                    : BOOL;
bResetAll                   : BOOL;
bReadTemplate               : BOOL;
bWriteUser                  : BOOL;
bWriteTemplate              : BOOL;
byReadTempFingerID          : BYTE;
byReadTempUserID            : BYTE;
bySetUserID                 : BYTE;
byWriteTempFingerID         : BYTE;
byWriteTempUserID           : BYTE;
stWriteTemplate             : ST_EKEY_FingerTemplate;

bEnable: Ist der Eingang TRUE, wird der Funktionsbaustein abgearbeitet.

sSN: Jeder Fingerscanner hat eine eindeutige Id. Die Id lässt sich durch die letzten 8 Stellen der Seriennummer berechnen. An diesen Eingang müssen die letzten 8 Stellen der Seriennummer des Scanners eingetragen werden. Die Berechnung wird nach jedem Start des Funktionsbausteins automatisch durchgeführt.

bNewFinger: Setzt den Fingerscanner in den Einlern-Modus, um einen neuen Finger einzulernen.

byFingerID: Finger Id des einzulernenden Fingers.

byUserID: Benutzer Id des einzulernenden Fingers.

bFingerControlRelay: Gibt dem Finger beim Einlernen die Berechtigung mit das interne Relay bei einer positiven Erkennung des Fingers zu betätigen. TRUE: interne Relay wird betätigt, FALSE: interne Relay wird nicht betätigt.

eEnrollmentFunction: Definiert die Einlern-Funktion. Normales Enrollment: der Finger wird nur einmal über den Zeilensensor gezogen. Dreifach Enrollment: der Finger wird dreimal über den Zeilensensor gezogen. Vorteil des Dreifach Enrollment ist, dass durch das mehrmalige Scannen mehrere Erkennungspunkte gesichert werden können.

bRemoveUser: Löscht einen Benutzer vom internen Speicher des Fingerscanners. Die zu löschende Benutzer Id wird am Eingang byRemoveUserID angegeben.

bRemoveAllUsers: Löscht alle Benutzer vom internen Speicher des Fingerscanners.

byRemoveUserID: Siehe Eingang bRemoveUser.

eLedFunction: Definiert die Funktionsart der onboard LEDs am Fingerscanner. Bei Änderung am Eingang wird die anliegende Funktionsart für die Dauer von diLedClock ausgeführt. Einstellungsmöglichkeiten siehe Enum E_EKEY_LEDFunction.

diLedClock: Definiert die Einschaltdauer der LED Funktionsart. Dauer wird in Millisekunden angegeben (1 = 10ms; -1 = endlos). Siehe Eingang eLedFunction.

bRelayOn: Schaltet das interne Relay des Fingerscanners, wenn vorhanden.

bResetAll: Führt einen Reset des Fingerscanners aus.

bReadTemplate: Liest ein Finger Template vom Speicher des Fingerscanners aus. Die Benutzer Id und Finger Id des zu lesenden Fingers muss an den Eingängen byReadTempUserID und byReadTempFingerID angegeben werden. Das Template wird dann am Ausgang stRecTemplate ausgegeben.

bWriteUser: Legt einen Benutzer im Speicher des Fingerscanners an. Die Benutzer Id wird am Eingang bySetUserID angegeben.

bWriteTemplate: Übertragt ein Finger Template in den Speicher des Fingerscanners. Die Benutzer Id und Finger Id des zu schreibenden Fingers muss an den Eingängen byWriteTempUserID und byWriteTempFingerID angegeben werden. Das Template wird am Eingang stWriteTemplate angegeben. Bevor ein Template zum Fingerscanner übertragen werden kann, muss der Benutzer bereits angelegt sein. Siehe Eingang bWriteUser.

byReadTempFingerID: Siehe Eingang bReadTemplate.

byReadTempUserID: Siehe Eingang bReadTemplate.

bySetUserID: Siehe Eingang bWriteUser.

byWriteTempFingerID: Siehe Eingang bWriteTemplate.

byWriteTempUserID: Siehe Eingang bWriteTemplate.

stWriteTemplate: Siehe Eingang bWriteTemplate.

VAR_OUTPUT

bBusy                       : BOOL;
bError                      : BOOL;
udiErrorID                  : UDINT;
bBufferOverload             : BOOL;
eState                      : E_EKEY_Command;
bReceived                   : BOOL;
byRecUserID                 : BYTE;
byRecFingerID               : BYTE;
byRecTempUserID             : BYTE;
byRecTempFingerID           : BYTE;
bBadFinger                  : BOOL;
dwBadFingers                : DWORD;
bGoodFinger                 : BOOL;
dwMaxConfigUser             : DWORD;
dwMaxConfigFinger           : DWORD;
stRecTemplate               : ST_EKEY_FingerTemplate;

bBusy: Der Ausgang wird TRUE, wenn ein Telegramm versendet wird.

bError: Der Ausgang wird TRUE, sobald ein Fehler auftritt. Dieser Fehler wird über die Variable udiErrorID beschrieben.

udiErrorID: Der Ausgang gibt im Fehlerfall einen Fehlercode aus. Gleichzeitig wird bError TRUE.

bBufferOverload: Gibt an, ob der Kommunikationspuffer voll ist.

eState: Zeigt den Status des Fingerscanners an.

bReceived: Ist TRUE, wenn ein Telegramm empfangen wird. Wechselt auf FALSE, wenn das Telegramm empfangen wurde.

byRecUserID: Zeigt die empfangene Benutzer Id an bei einer positiven Erkennung eines Fingers.

byRecFingerID: Zeigt die empfangene Finger Id an bei einer positiven Erkennung eines Fingers.

byRecTempUserID: Zeigt die Benutzer Id eines empfangenen Templates an.

byRecTempFingerID: Zeigt die Finger Id eines empfangenen Templates an.

bBadFinger: Gibt an, ob der Finger am Scanner ungültig (keine Berechtigung; nicht richtig erkannt) ist.

dwBadFingers: Zähler für ungültige Finger. Siehe Ausgang bBadFinger.

bGoodFinger: Gibt an, ob der Finger am Scanner gültig ist.

dwMaxConfigUser: Zeigt an, wie viele Benutzer am Fingerscanner insgesamt angelernt wurden. Dieser Wert wird direkt vom Fingerscanner übernommen und nicht vom Funktionsbaustein berechnet. Wenn keine Kommunikation zum Fingerscanner besteht, kann dieser Wert unter Umständen abweichen.

dwMaxConfigFinger: Zeigt an, wie viele Finger am Fingerscanner insgesamt angelernt wurden. Dieser Wert wird direkt vom Fingerscanner übernommen und nicht vom Funktionsbaustein berechnet. Wenn keine Kommunikation zum Fingerscanner besteht, kann dieser Wert unter Umständen abweichen.

stRecTemplate: Gibt ein empfangenes Finger Template aus. Siehe Eingang bReadTemplate.

VAR_IN_OUT

stCommandBuffer             : ST_EKEY_CommandBuffer;

stCommandBuffer: Über diese Struktur wird der Baustein FB_EKEY_Communication mit den Scannerbausteinen verbunden.


E_EKEY_EnrollmentFunction

TYPE E_EKEY_EnrollmentFunction :
(
    eEKEYEnrollNoChange     := 0,
    eEKEYEnrollTripple      := 1,
    eEKEYEnrollNormal       := 2
);
END_TYPE


E_EKEY_LEDFunction

TYPE E_EKEY_LEDFunction :
(
    eEKEYLedArrowOff                    := 13,
    eEKEYLedArrowLeft                   := 14,
    eEKEYLedArrowRight                  := 15,
    eEKEYLedArrowBoth                   := 16,
    eEKEYLedBlinkLeftRightOff           := 17,
    eEKEYLedBlinkLeftRightOn            := 18,
    eEKEYLedBlinkRightLeftOff           := 19,
    eEKEYLedBlinkRightLeftOn            := 20,
    eEKEYLedBlinkBoth                   := 21,
    eEKEYLedBlinkLeftRight              := 22,
    eEKEYLedBlinkLeftLeftRight          := 23,
    eEKEYLedBlinkLeftRightRight         := 24,
    eEKEYLedArrowLeftRed                := 25,
    eEKEYLedArrowRightRed               := 26,
    eEKEYLedArrowBothRed                := 27,
    eEKEYLedArrowLeftYellow             := 28,
    eEKEYLedArrowRightYellow            := 29,
    eEKEYLedArrowBothYellow             := 30,
    eEKEYLedArrowLeftGreenRightRed      := 31,
    eEKEYLedArrowLeftGreenRightYellow   := 32,
    eEKEYLedArrowLeftRedRightGreen      := 33,
    eEKEYLedArrowLeftYellowRightGreen   := 34,
    eEKEYLedArrowLeftRedRightYellow     := 35,
    eEKEYLedArrowLeftYellowRightRed     := 36
);
END_TYPE


ST_EKEY_CommandBuffer

TYPE ST_EKEY_CommandBuffer :
STRUCT
    stSend              : ARRAY[0..EKEY_MAX_SEND_BUFFER_SIZE] OF ST_EKEY_SendData;
    stReceive           : ARRAY[0..EKEY_MAX_NR_OF_READER] OF ST_EKEY_RecData;
    bSendBufferBlocked  : BOOL;
    uiIndex             : UINT;
END_STRUCT
END_TYPE


Fehlercodes

Wert (hex) | Wert (dez) | Beschreibung
0x0000 | 0 | Kein Fehler.
0x8001 | 32769 | Eingangsparameter haben sich während des Empfangs geändert.
0x8002 | 32770 | Überlauf vom Sendepuffer.
0x800A | 32778 | Ende vom String.
0x800B | 32779 | String darf keine Nullzeichen enthalten.
0x8014 | 32788 | Ungültiger Daten Pointer.
0x8015 | 32789 | Ungültiger Daten Pointer für Empfangsdaten.
0x8016 | 32790 | Ungültige Länge der Empfangsdaten.
0x8017 | 32791 | Ende vom Datenblock.
0x8018 | 32792 | Ungültige Größe der Prozessdaten.
0x8101 | 33025 | Betriebsart wird nicht unterstützt.
0x8102 | 33026 | Ungültige Kanalnummer.
0x83E8 | 33768 | Unbekannter Master.
0x83E9 | 33769 | CRC Fehler.
0x83EA | 33770 | Fehler beim Enrollment.
0x83EB | 33771 | Fehler.
0x83EC | 33772 | Timeout Fingerscanner.
0x83ED | 33773 | Fehler beim Lesen des Templates.
0x83EE | 33774 | Fehler beim Senden.
0x83EF | 33775 | Seriennummer wurde nicht gesetzt.
0x83F0 | 33776 | Enrollment Funktion wird nicht unterstützt (siehe E_EKEY_EnrollmentFunction).
0x83F1 | 33777 | LED-Funktion wird nicht unterstützt (siehe E_EKEY_LEDFunction).
0x83F2 | 33778 | Zeit für LED Funktion liegt außerhalb des gültigen Bereichs (-1 - 2147483647).
0x83F3 | 33779 | Betriebsart wird nicht unterstützt (siehe eMode von FB_EKEY_Communication).
0x9001 | 36865 | Ungültige Baudrate.
0x9002 | 36866 | Ungültige Anzahl von Datenbits.
0x9003 | 36867 | Ungültige Anzahl von Stopbits.
0x9004 | 36868 | Ungültige Parität.
0x9005 | 36869 | Ungültiger Handshake.
0x9006 | 36870 | Ungültige Anzahl von Registern.
0x9007 | 36871 | Ungültiges Register.
0x9008 | 36872 | Timeout COM.


Einlernen eines Fingers

Um einen Finger einzulernen, muss dem Finger eine Benutzer ID und Finger ID mitgegeben werden. Die maximale Anzahl an Fingern, die im Fingerscanner gesichert werden können, hängt vom jeweiligen Modell ab.

Normales-Enrollment

Die Benutzer ID wird am Eingang byUserID und die Finger ID am Eingang byFingerID des FB_EKEY_FingerScanner angegeben. Durch eine positive Flanke am Eingang bNewFinger wird der Fingerscanner in den Einlern-Modus versetzt und die Status-LED beginnt orange zu leuchten.

Nun kann ein Finger eingelesen werden. Bitte beachten Sie die korrekte Fingerhaltung beim darüber ziehen (siehe Dokumentation des Fingerscanners). Wurde der Finger richtig eingelesen, wechselt die Staus-LED auf grün und der Fingerscanner kehrt automatisch vom Einlern-Modus in den Normalbetrieb zurück.

Wurde der Finger nicht richtig erkannt, wechselt die Staus-LED auf Rot und der Vorgang wird wiederholt. Dabei muss der Finger erneut über den Fingerscanner gezogen werden. Bitte beginnen Sie erst, wenn die LED wieder orange leuchtet.

Der Fingerscanner wechselt automatisch nach ca. 10 Sekunden wieder in den Normalbetrieb zurück, wenn keine Aktivität im Einlern-Modus stattfindet.

Beschreibung der LEDs

Beschreibung | LED Funktion | LED Zustand links | LED Zustand rechts
warten auf Finger | orange | aus | aus
Extraktion | orange (blinkt) | aus | aus
Enrollment OK | grün (2 Sek.) | aus | aus
Enrollment nicht OK | rot (2 Sek.) | aus | aus

Dreifaches Enrollment

Der Ablauf erfolgt wie unter Normales-Enrollment beschrieben nur, dass die Schritte insgesamt dreimal durchgeführt werden.

Beschreibung der LEDs

Beschreibung | LED Funktion | LED Zustand links | LED Zustand rechts
warten auf Finger | orange | aus | aus
Extraktion | orange (blinkt) | aus | aus
Extraktion OK | grün (1 Sek.) | aus | aus
Qualität schlecht - erneuter Versuch | orange | rot | aus
2. Durchlauf
warten auf Finger | orange | aus | aus
Extraktion | orange (blinkt) | aus | aus
Extraktion OK | grün (1 Sek.) | aus | aus
Qualität schlecht - erneuter Versuch | orange | rot | aus
3. Durchlauf
warten auf Finger | orange | aus | aus
Extraktion | orange (blinkt) | aus | aus
Extraktion OK | grün (1 Sek.) | aus | aus
Qualität schlecht - erneuter Versuch | orange | rot | aus
Qualität gut - Enrollment OK | grün (2 Sek.) | grün (2 Sek.) | grün (2 Sek.)


Übertragen von Fingertemplates

Zum Auslesen eines Fingertemplates, muss bei der Anfrage eine eindeutige Benutzer ID und Finger ID mitgesendet werden.
Soll das Template auf einen anderen Fingerscanner übertragen werden, so ist vorher der Benutzer anzulegen, insofern er nicht bereits existiert.

Auslesen eines Templates

Geben Sie an den Eingängen byReadTempUserID und byReadTempFingerID eine eindeutige Benutzer ID und Finger ID an. Durch eine positive Flanke am Eingang bReadTemplate wird das Auslesen gestartet. Ein Fingertemplate kann mehrere Hundert Byte groß sein, daher kann der gesamte Vorgang ein paar Sekunden dauern. Das empfangene Fingertemplate wird am Ausgang stRecTemplate ausgegeben.

Falls es zum Verlust eines Telegramms oder zu einer Kommunikationsstörung während des Vorgangs kommt, wird der Ausgang bError auf TRUE gesetzt. Die genaue Fehlerursache entnehmen Sie bitte dem Fehlercode der am Ausgang udiErrorID angezeigt wird.

Schreiben eines Templates

Beim übertragen eines Fingertemplates auf einen anderen Fingerscanner, muss der entsprechende Benutzer erst angelegt werden, insofern er nicht bereits exisitiert, damit das Fingertemplate ordnungsgemäß übernommen werden kann.
Um einen Benutzer am Fingerscanner anzulegen, übergeben Sie dem Eingang bySetUserID eine Benutzer ID. Durch eine positive Flanke am Eingang bWriteUser wird der Benutzer am Fingerscanner angelegt. Konnte der Benutzer ordnungsgemäß angelegt werden, so erhöht sich der Wert vom Ausgang dwMaxConfigUser.

Wenn der User am Scanner angelegt wurde oder bereits existiert, kann mit der Übertragung des Fingertemplates begonnen werden.

Um ein Fingertemplate zu übertragen, muss beim Senden die richtige Benutzer ID am Eingang byWriteUserID, die richtige Finger ID am Eingang byWriteFingerID und das passende Fingertemplate am Eingang stWriteTemplate angegeben werden. Durch eine positive Flanke am Eingang bWriteTemplate wird das Senden gestartet. Ein Fingertemplate kann mehrere Hundert Byte groß sein, daher kann der gesamte Vorgang ein paar Sekunden dauern.
Konnte das Fingertemplate ordnungsgemäß übertragen werden, so erhöht sich der Wert am Ausgang dwMaxConfigFinger.