RFiDMWD7xTAGRd, Netronix MW-D7x RFiD TAG citit

Listă

Această pagină face parte din Manual de programare IEC 61131-3. Mergeți la index.

Acest bloc funcțional de la rulați în sarcina Înapoi utilizabil cu model de cascadă, vă permite să gestionați playerul RFID Netronix MW-D7x conectat în serial RS23 sau RS485. Prin activare Enable cititorul cu adresa indicată în Address, sunt trimise comenzile indicate în matrice RSSource, În PButton se returnează starea cheii. Dacă un TAG RFiD este achiziționat de cititor, acesta este activat pentru o buclă TAGAcq și în TAGCode codul citit este returnat.

Dacă TAG rămâne în zona de citire a cititorului, ieșirea este activată ciclic TAGAcq. În caz de eroare de execuție, ieșirea este activată pentru o buclă de program Fault și a crescut valoarea în Errors.

Cercul de informații

Blocarea funcției

CODESYS: Indisponibil

LogicLab: eLLabIDAuthLib

Descriere

Enable (BOOL) Activarea blocării funcției. Pentru a reexecuta comanda, dezactivați și apoi reactivați această intrare.
SpyOn (BOOL) Dacă este activ, vă permite să spionați funcționarea FB (Vezi articolul).
RSSource (BOOL[4]) Matrice de comenzi care pot fi implementate pe cititor.
RSSource[0]: Comandă ieșirea logică hardware.
RSSource[1]: Comandă aprinderea LED-ului verde.
RSSource[2]: Comandă aprinderea LED-ului albastru.
RSSource[3]: Controlați soneria.
Fp (eFILEP) Flux de conexiune flux de date către cititor.
Done (BOOL) Este activat la sfârșitul executării comenzii și rămâne activ până la dezactivarea Enable.
Fault (BOOL) Activ pentru o buclă dacă eroare de execuție a comenzii.
PButton (BOOL) Starea butonului de pe cititor.
TAGAcq (BOOL) Activ pentru o buclă dacă TAG RFiD a fost achiziționat.
TAGCode (LWORD) Cod citit de pe eticheta RFID.
OKCounter (UDINT) Contor de execuții reușite.
Errors (UDINT) Contor erori de execuție.

Imagine FB RFiDMWD7xTAGRd

Declanșatorul spionului

Se SpyOn activ, puteți utiliza pentru a utiliza consola de spionaj pentru a verifica funcționarea FB. Există diferite niveluri de declanșatoare.

Niveluri de declanșare
trăgaciDescriere
16 # 00000001Tx: Cadrul trimis cititorului
16 # 00000002Rx: Cadrul primit de cititor.
16 # 10000000Lg: Informații de jurnal
16 # 40000000Er: Eroare de execuție.

Exemple

Cum se utilizează exemplele.
Este gestionat un cititor de TAG conectat la portul serial definit.

LogicLab (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]
A fost util acest articol?