Lecture RFiDMWD7xTAGRd, Netronix MW-D7x RFiD TAG

Liste

Cette page fait partie de la Manuel de programmation CEI 61131-3. Aller à l'index.

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.

Cercle d'informations

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.

Image FB RFiDMWD7xTAGRd

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âchetteDescription
16 # 00000001Tx: Cadre envoyé au lecteur
16 # 00000002Rx: Trame reçue par le lecteur.
16 # 10000000Lg: Informations de connexion
16 # 40000000Er: 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]
Cet article a-t-il été utile?