Baustein Verwendung
Eine effektivere Auswertung der empfangenen Daten können Sie mit folgenden Anweisungen erreichen:
Deklarationen:
fbRFIDReader : FB_RFIDReader := (eManufacturer := eRFRM_Balluff);
sTranspSerialNumber : STRING;
bBusy : BOOL;
bError : BOOL;
iErrorID : UINT;
iErrCodeRcv : UINT;
stTranspInfo : ST_RFID_TranspInfo;
eErrorID : E_RFID_ErrID;
eErrCodeRcv : E_RFID_ErrCodeRcv_Balluff;
fbTriggerResponse : R_TRIG;
arrRspRcv : ARRAY[0..99] OF BYTE;
Programmablauf:
fbRFIDReader(
bExecute := FALSE,
RxBuffer := RxBuffer,
TxBuffer := TxBuffer,
bBusy => bBusy,
bError => bError,
iErrorID => iErrorID,
iErrCodeRcv => iErrCodeRcv
);
(* convert Error Codes *)
eErrorID := UINT_TO_INT(iErrorID);
eErrCodeRcv := UINT_TO_INT(iErrCodeRcv);
fbTriggerResponse(CLK := fbRFIDReader.bResponseRcv);
IF (fbTriggerResponse.Q) THEN
stTranspInfo := fbRFIDReader.stTranspInfo;
sTranspSerialNumber := stTranspInfo.sSerialNumber; (* detected RFID Tag Serial Number *)
MEMSET(ADR(arrRspRcv), 0 , SIZEOF(arrRspRcv) );
MEMCPY(ADR(arrRspRcv), fbRFIDReader.stRawData.pReceivedRsp, MIN(fbRFIDReader.stRawData.iReceivedRspLen, SIZEOF(arrRspRcv)) );
END_IF
Empfangene Fehlercodes können online als Enumeratonswert
dargestellt werden, indem die Integer Variablen iErrorID und
iErrCodeRcv direkt zugewiesen werden.
Mit Hilfe eines Triggers werden weitere Daten nur ausgewertet,
falls eine neue Nachricht empfangenen wird.
Ihre String Variable sTranspSerialNumber gibt nun immer die
Seriennummer des zuletzt detektierten Transponders wieder. Diese
ist in diesem Fall ebenso am Funktionsbausteinausgang
fbRFIDReader.stTranspInfo.sSerialNumber zu sehen.
Weitere Informationen können je nach Anwendung von den Ausgängen
des Funktionsbausteines übernommen werden.
Um eine empfangene Nachricht als komplette Bytefolge anzuzeigen, nutzen Sie beispielsweise die MEMCPY Funktion und kopieren die Rohdaten in ihr deklariertes Bytearray.
Jede Meldung Ihres RFID Readers wird nun empfangen und in obiger Weise ausgewertet.