Este bloque de funciones de ejecutar en tarea Atrás utilizable con modelo de cascada, le permite administrar el jugador RFID Netronix MW-D7x conectado en serie RS23 o RS485. Al activar Enable el lector con la dirección indicada en Address, se envían los comandos indicados en la matriz RSSourceen PButton se devuelve el estado de la clave. Si el lector adquiere un RFiD TAG, se activa para un bucle TAGAcq y en TAGCode se devuelve el código leído.
Si el TAG permanece en el área de lectura del lector, la salida se activa cíclicamente TAGAcq. En caso de error de ejecución, la salida se activa para un bucle de programa. Fault y aumentó el valor en Errors.
Artículos Relacionados
Función de bloqueo
CÓDIGOS: indisponible
Laboratorio lógico: elLAbIDAuthLib
Descripción
Enable (BOOL) Habilitación del bloqueo de funciones. Para volver a ejecutar el comando, deshabilite y luego vuelva a habilitar esta entrada.
SpyOn (BOOL) Si está activo, te permite espiar el funcionamiento del FB (Ver artículo).
RSSource (BOOL[4]) Conjunto de comandos que se pueden implementar en el lector.
RSSource[0]: Comanda la salida lógica del hardware.
RSSource[1]: Manda el encendido del LED verde.
RSSource[2]: Ordena el encendido del LED azul.
RSSource[3]: Controla el zumbador.
Fp (eFILEP) Flujo de conexión del flujo de datos al lector.
Done (BOOL) Se activa al final de la ejecución del comando y permanece activo hasta que se deshabilita Enable.
Fault (BOOL) Activo para un bucle si hay un error de ejecución del comando.
PButton (BOOL) Estado del botón en el lector.
TAGAcq (BOOL) Activo para un bucle si se adquiere RFiD TAG.
TAGCode (LWORD) Código leído de la ETIQUETA RFiD.
OKCounter (UDINT) Contador de ejecuciones exitosas.
Errors (UDINT) Contador de errores de ejecución.
Disparador espía
Se SpyOn active se puede utilizar para utilizar la consola de espionaje para comprobar el funcionamiento del FB. Hay varios niveles de factores desencadenantes.
Niveles de activación
Desencadenar | Descripción |
---|---|
16 00000001 # | Tx: Marco enviado al lector |
16 00000002 # | Rx: Fotograma recibido por el lector. |
16 10000000 # | Lg: Información de registro |
16 40000000 # | Er: Error de ejecución |
Ejemplos
Cómo utilizar los ejemplos..
Se gestiona un lector de TAG conectado al puerto serie definido.
Laboratorio lógico (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]