Vai al contenuto

RFiDMWD7xTAGRd, Netronix MW-D7x RFiD TAG read

Vai all indice del manuale di programmazione
Tipo: Blocco funzione
Libreria LogicLab: eLLabIDAuthLib
Libreria Codesys: Non disponibile

Questo blocco funzione da eseguire in task Back utilizzabile con modello a cascata, permette di gestire il lettore RFiD Netronix MW-D7x connesso in seriale RS23 o RS485. Attivando Enable è gestito il lettore con indirizzo indicato in Address, sono inviati i comandi indicati nell’array RSSource, in PButton viene ritornato lo stato del tasto. Se un TAG RFiD viene acquisito dl lettore si attiva per un loop TAGAcq ed in TAGCode viene ritornato il codice letto.

Se il TAG rimane nella zona di lettura del lettore viene ciclicamente attivata l’uscita TAGAcq. In caso di errore esecuzione viene attivata per un loop di programma l’uscita Fault ed incrementato il valore in Errors.

Descrizione

Enable (BOOL) Abilitazione blocco funzione. Per rieseguire il comando disabilitare e poi riabilitare questo ingresso.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento del FB (Vedi articolo).
RSSource (BOOL[4]) Array di comandi attuabili sul lettore.
RSSource[0]: Comanda l’uscita logica hardware.
RSSource[1]: Comanda l’accensione del LED verde.
RSSource[2]: Comanda l’Accensione del LED blù.
RSSource[3]: Comanda il buzzer.
Fp (eFILEP) Flusso dati stream di connessione al lettore.
Address (BYTE) Indirizzo modulo.
Delay (TIME) Tempo di pausa tra interrogazioni.
Done (BOOL) Si attiva al termine della esecuzione comando e rimane attiva fino alla disabilitazione di Enable.
Fault (BOOL) Attivo per un loop se errore esecuzione comando.
PButton (BOOL) Stato del tasto sul lettore.
TAGDetect (BOOL) Attiva se TAG RFiD è davanti al lettore.
TAGAcq (BOOL) Attivo per un loop se TAG RFiD acquisito.
TAGCode (LWORD) Codice letto dal TAG RFiD.
OKCounter (UDINT) Contatore esecuzioni eseguite correttamente.
Errors (UDINT) Contatore errori esecuzione.

Immagine FB RFiDMWD7xTAGRd

Trigger di spy

Se SpyOn attivo è possibile utilizzare di utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Livelli di trigger
TriggerDescrizione
16#00000001Tx: Frame inviato al lettore
16#00000002Rx: Frame ricevuto dal lettore.
16#10000000Lg: Informazione di log
16#40000000Er: Errore esecuzione.

Esempi

Come utilizzare gli esempi.
Viene gestito un lettore di TAG connesso alla porta seriale definita.

LogicLab (Ptp202, ST_RFiDMWD7xTAGRd)
PROGRAM ST_RFiDMWD7xTAGRd
VAR
    TimeBf : UDINT; (* Time buffer (mS) *)
    Sp : SysSerialPort; (* Serial port management *)
    TAGCode : LWORD; (* TAG code *)
    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.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

    // On TAG read code is stored, blue LED is switched on and buzzer rings.

    IF (Reader.TAGAcq) THEN
        TimeBf:=SysTimeGetMs(); //Time buffer (mS)
        TAGCode:=Reader.TAGCode; //TAG code
        Reader.RSSource[2]:=TRUE; //Blue LED On
        Reader.RSSource[3]:=TRUE; //Buzzer On
    END_IF;

    // After a time switch off blue LED and the buzzer.

    IF ((SysTimeGetMs()-TimeBf) > TO_UDINT(T#200ms)) THEN Reader.RSSource[2]:=FALSE; END_IF;
    IF ((SysTimeGetMs()-TimeBf) > TO_UDINT(T#500ms)) THEN Reader.RSSource[3]:=FALSE; END_IF;

// [End of File]
Was this article helpful?