Passa al contenuto principale

RFiDMWD7xTAGRd, Netronix MW-D7x RFiD TAG read

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.

Articoli correlati

Descrizione​

Immagine FB RFiDMWD7xTAGRd

ParametroTipoDescrizione
EnableBOOLAbilitazione blocco funzione. Per rieseguire il comando disabilitare e poi riabilitare questo ingresso.
SpyOnBOOLSe attivo permette di spiare il funzionamento del FB (Vedi articolo).
RSSourceBOOL\[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.
Fpe_FILEPFlusso dati stream di connessione al lettore.
AddressBYTEIndirizzo modulo.
DelayTIMETempo di pausa tra interrogazioni.
DoneBOOLSi attiva al termine della esecuzione comando e rimane attiva fino alla disabilitazione di Enable.
FaultBOOLAttivo per un loop se errore esecuzione comando.
PButtonBOOLStato del tasto sul lettore.
TAGDetectBOOLAttiva se TAG RFiD è davanti al lettore.
TAGAcqBOOLAttivo per un loop se TAG RFiD acquisito.
TAGCodeLWORDCodice letto dal TAG RFiD.
OKCounterUDINTContatore esecuzioni eseguite correttamente.
ErrorsUDINTContatore errori esecuzione.

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]