Ce bloc fonction de exécuter dans la tâche Retour utilisable avec modèle de cascade, permet de gérer le lecteur RFID Netronix MW-D7x connecté en série RS23 ou RS485. En activant Enable le lecteur avec l'adresse indiquée dans Address, les commandes indiquées dans le tableau sont envoyées RSSourceen PButton l'état de la clé est renvoyé. Si un RFiD TAG est acquis par le lecteur, il est activé pour une boucle TAGAcq ed dans TAGCode le code de lecture est renvoyé.
Si le TAG reste dans la zone de lecture du lecteur, la sortie est activée cycliquement TAGAcq. En cas d'erreur d'exécution, la sortie est activée pour une boucle de programme Fault et a augmenté la valeur de Errors.
Articles connexes
Verrouillage de fonction
CODESYS : indisponible
LogicLab : eLLabIDAuthLib
Description
Enable (BOOL) Activation du verrouillage des fonctions. Pour réexécuter la commande, désactivez puis réactivez cette entrée.
SpyOn (BOOL) S'il est actif, il vous permet d'espionner le fonctionnement du FB (Voir l'article).
RSSource (BOOL[4]) Tableau de commandes pouvant être implémentées sur le lecteur.
RSSource[0]: commande la sortie logique matérielle.
RSSource[1]: Commande l'allumage de la LED verte.
RSSource[2]: Commande l'allumage de la LED bleue.
RSSource[3]: Contrôler le buzzer.
Fp (eFILEP) Flux de connexion du flux de données vers le lecteur.
Done (BOOL) Il est activé à la fin de l'exécution de la commande et reste actif jusqu'à la désactivation de Enable.
Fault (BOOL) Actif pour une boucle si erreur d'exécution de la commande.
PButton (BOOL) Etat de la clé sur le lecteur.
TAGAcq (BOOL) Actif pour une boucle si RFiD TAG acquis.
TAGCode (LWORD) Code lu depuis le TAG RFiD.
OKCounter (UDINT) Compteur d'exécutions réussies.
Errors (UDINT) Compteur d'erreurs d'exécution.
Déclencheur d'espion
Se SpyOn active, vous pouvez utiliser pour utiliser la console d'espionnage pour vérifier le fonctionnement du FB. Il existe différents niveaux de déclencheurs.
Niveaux de déclenchement
Gâchette | Description |
---|---|
16 # 00000001 | Tx: Cadre envoyé au lecteur |
16 # 00000002 | Rx: Trame reçue par le lecteur. |
16 # 10000000 | Lg: Informations de connexion |
16 # 40000000 | Er: Erreur d'exécution. |
Exemples
Comment utiliser les exemples.
Un lecteur TAG connecté au port série défini est géré.
Laboratoire logique (Ptp202, ST_RFiDMWD7xTAGRd)
PROGRAM ST_RFiDMWD7xTAGRd
VAR
TagReaded : BOOL; (* TAG has been readed *)
TimeBf : ARRAY[0..1] OF UDINT; (* Time buffer (mS) *)
Sp : SysSerialPort; (* Serial port management *)
Reader : RFiDMWD7xTAGRd; (* RFiD reader *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_RFiDMWD7xTAGRd"
// *****************************************************************************
// This program manages a TAG reader connected to serial port.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
IF (SysFirstLoop) THEN
// Serial port settings.
Sp.COM:=ADR('COM0'); //COM port definition
Sp.Baudrate:=9600; //Baudrate
Sp.Baudrate:=115200; //Baudrate
Sp.Parity:='N'; //Parity
Sp.DataBits:=8; //Data bits
Sp.StopBits:=1; //Stop bits
Sp.DTRManagement:=DTR_AUTO_WO_TIMES; //DTR management
Sp.DTRComplement:=FALSE; //DTR complement
Sp.EchoFlush:=FALSE; //Received echo flush
Sp.DTROnTime:=0; //DTR On time delay (mS)
Sp.DTROffTime:=0; //DTR Off time delay (mS)
Sp.FlushTm:=0; //Flush time (mS)
Sp.RxSize:=0; //Rx buffer size
Sp.TxSize:=0; //Tx buffer size
// Reader settings.
Reader.SpyOn:=TRUE; //Spy On
Reader.Address:=1; //Module address
Reader.Delay:=T#100ms; //Delay time
END_IF;
// -------------------------------------------------------------------------
// TAG READER MANAGEMENT
// -------------------------------------------------------------------------
// Is managed the TAG reader.
Sp(Open:=TRUE); //Serial port management
Reader.Enable:=Sp.Opened AND NOT(Reader.Done); //FB enable
Reader(Fp:=Sp.File); //File pointer
// When TAG is readed the code is stored and buzzer ring.
// Please note when buzzer rings the reader still return the code read even
// if the TAG is not present. To overtake this behaviour two timers have
// been used.
IF (Reader.TAGAcq) THEN
TimeBf[0]:=SysTimeGetMs(); //Time buffer (mS)
TimeBf[1]:=SysTimeGetMs(); //Time buffer (mS)
IF NOT(TagReaded) THEN TagReaded:=TRUE; Reader.RSSource[3]:=TRUE; END_IF;
END_IF;
// After a time stop the buzzer and reset readed flag.
IF ((SysTimeGetMs()-TimeBf[0]) > TO_UDINT(T#100ms)) THEN Reader.RSSource[3]:=FALSE; END_IF;
IF ((SysTimeGetMs()-TimeBf[1]) > TO_UDINT(T#500ms)) THEN TagReaded:=FALSE; END_IF;
// [End of File]