RFiDMWD7xTAGRd, Netronix MW-D7x RFiD TAG lido

Lista

Esta página faz parte do Manual de Programação IEC 61131-3. Acesse o índice.

Este bloco de função de executar na tarefa Voltar utilizável com modelo em cascata, permite que você gerencie o jogador RFID Netronix MW-D7x conectado em serial RS23 ou RS485. Ao ativar Enable o leitor com o endereço indicado em Address, os comandos indicados no array são enviados RSSourceem PButton o status da chave é retornado. Se um RFiD TAG é adquirido pelo leitor, ele é ativado para um loop TAGAcq ed em TAGCode o código de leitura é retornado.

Se o TAG permanecer na área de leitura do leitor, a saída é acionada ciclicamente TAGAcq. No caso de um erro de execução, a saída é ativada para um loop de programa Fault e aumentou o valor em Errors.

Círculo de Informação

Bloqueio de função

CoDeSys: Indisponível

Laboratório de lógica: eLLabIDAuthLib

descrição

Enable (BOOL) Ativação do bloqueio de função. Para reexecutar o comando, desative e reative esta entrada.
SpyOn (BOOL) Se ativo, permite que você espione o funcionamento do FB (Veja o artigo).
RSSource (BOOL[4]) Matriz de comandos que podem ser implementados no leitor.
RSSource[0]: Comanda a saída lógica do hardware.
RSSource[1]: Comanda o acendimento do LED verde.
RSSource[2]: Comanda o acendimento do LED azul.
RSSource[3]: Controle a campainha.
Fp (eFILEP) Fluxo de conexão do fluxo de dados para o leitor.
Done (BOOL) É ativado ao final da execução do comando e permanece ativo até a desativação do Enable.
Fault (BOOL) Ativo para um loop se houver erro na execução do comando.
PButton (BOOL) Estado da chave no leitor.
TAGAcq (BOOL) Ativo para um loop se RFiD TAG for adquirido.
TAGCode (LWORD) Código lido do RFID TAG.
OKCounter (UDINT) Contador de execuções bem-sucedidas.
Errors (UDINT) Contador de erros de execução.

Imagem FB RFiDMWD7xTAGRd

Gatilho espião

Se SpyOn ativo você pode usar para usar o console de espionagem para verificar o funcionamento do FB. Existem vários níveis de gatilhos.

Níveis de gatilho
Gatilhodescrição
16 00000001 #Tx: Quadro enviado ao leitor
16 00000002 #Rx: Quadro recebido pelo leitor.
16 10000000 #Lg: Informações de registro
16 40000000 #Er: Erro de execução.

Exemplos

Como usar os exemplos.
Um leitor de TAG conectado à porta serial definida é gerenciado.

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]
Esse artigo foi útil?