Dieser Funktionsbaustein aus Ausführen in Aufgabe Zurück nutzbar mit Wasserfall-Modell, ermöglicht Ihnen die Verwaltung des Players RFiD Netronix MW-D7x seriell RS23 oder RS485 angeschlossen. Durch Aktivierung Enable der Leser mit der in angegebenen Adresse Address, werden die im Array angegebenen Befehle gesendet RSSourcein PButton Der Schlüsselstatus wird zurückgegeben. Wenn ein RFiD-TAG vom Lesegerät erfasst wird, wird es für eine Schleife aktiviert TAGAcq ed in TAGCode Der gelesene Code wird zurückgegeben.
Bleibt der TAG im Lesebereich des Readers, wird der Ausgang zyklisch aktiviert TAGAcq. Im Falle eines Ausführungsfehlers wird der Ausgang für eine Programmschleife aktiviert Fault und erhöhte den Wert in Errors.
In Verbindung stehende Artikel
Funktionssperre
CODESYS: nicht verfügbar
LogikLab: eLLabIDAuthLib
Beschreibung
Enable (BOOL) Funktionssperre aktivieren. Um den Befehl erneut auszuführen, deaktivieren Sie diesen Eingang und aktivieren Sie ihn erneut.
SpyOn (BOOL) Wenn aktiv, können Sie den Betrieb der FB ausspionieren (Siehe Artikel).
RSSource (BOOL[4]) Array von Befehlen, die auf dem Lesegerät implementiert werden können.
RSSource[0]: Steuert den Hardware-Logikausgang.
RSSource[1]: Steuert das Aufleuchten der grünen LED.
RSSource[2]: Befiehlt das Einschalten der blauen LED.
RSSource[3]: Den Summer steuern.
Fp (eFILEP) Datenstrom Verbindungsstrom zum Lesegerät.
Done (BOOL) Es wird am Ende der Befehlsausführung aktiviert und bleibt bis zur Deaktivierung von Enable.
Fault (BOOL) Aktiv für eine Schleife bei einem Fehler bei der Befehlsausführung.
PButton (BOOL) Status des Schlüssels am Leser.
TAGAcq (BOOL) Aktiv für eine Schleife, wenn RFiD-TAG erfasst wurde.
TAGCode (LWORD) Code vom RFiD-TAG gelesen.
OKCounter (UDINT) Zähler für erfolgreiche Ausführungen.
Errors (UDINT) Ausführungsfehlerzähler.
Auslöser ausspionieren
Se SpyOn Aktiv können Sie verwenden, um die Spionagekonsole zu verwenden, um die Funktion des FB zu überprüfen. Es gibt verschiedene Ebenen von Triggern.
Auslösepegel
Auslösen | Beschreibung |
---|---|
16 # 00000001 | Tx: Frame an Leser gesendet |
16 # 00000002 | Rx: Frame vom Reader empfangen. |
16 # 10000000 | Lg: Protokollinformationen |
16 # 40000000 | Er: Ausführungsfehler. |
Beispiele
Verwendung der Beispiele.
Ein TAG-Lesegerät, das an die definierte serielle Schnittstelle angeschlossen ist, wird verwaltet.
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]