E_RFID_Response

  TYPE E_RFID_Response : (
    eRFR_NoRsp,
    eRFR_Unknown,
    eRFR_Ready,
    eRFR_CmdConfirmation,
    eRFR_CfgChangeExecuted,
    eRFR_WriteCmdSucceded,
    eRFR_NoTransponder,
    eRFR_Error,
    eRFR_Data_ReaderVersion,
    eRFR_Data_Config,
    eRFR_Data_Inventory,
    eRFR_Data_ReadData,
);
END_TYPE

The function block FB_RFIDReader of the TwinCAT PLC RFID library offers the above enumeration values at the eResponse output.
These are described briefly below. Analogies to the telegram response types of the manufacturer’s proprietary protocols are sometimes given.

The manufacturer’s proprietary MessageID corresponding to the response listed here is indicated below in each case in italics. Due to the complexity of the evaluation, not all equivalents are listed. Detailed information is given if necessary by the raw data representation ST_RFID_RawData at the output of the function block.

eRFR_NoRsp :

This value indicates that no response has arrived recently.

eRFR_Unknown :

This value indicates that the telegram that arrived could not be assigned to a certain type and was therefore also not evaluated. This is usually accompanied by an error message (bError = TRUE).

eRFR_Ready :

Some RFID reader models indicate their ready status, for example after a reset, with an extra telegram. In this case eResponse assumes the value eRFR_Ready.

Equivalent in proprietary protocol:
Leuze: 'S'
Pepperl+Fuchs: Status='2'

eRFR_CmdConfirmation :

The sent command is confirmed with this response. This can occur with many commands.
Exceptions are the commands 'Changing the configuration' and 'Writing data', because these two commands are followed by special confirmations, which are represented by the following two enumeration values.

Equivalent in proprietary protocol:
Leuze: 'Q2', 'Q4'

eRFR_CfgChangeExecuted :

If the RFID reader configuration has been changed, the RFID reader sends this telegram in order to confirm the action.

Equivalent in proprietary protocol:
Leuze: 'Q1'

eRFR_WriteCmdSucceded :

The RFID reader sends this confirmation as soon as data has been written to the transponder.

Equivalent in proprietary protocol:
Leuze: 'Q5'

eRFR_NoTransponder :

This response is given if no transponder is in the reading field. This is not necessarily evaluated as an error, so that the output bError is also not set.

Equivalent in proprietary protocol:
Leuze: '$18'
Pepperl+Fuchs: Status='5'

eRFR_Error :

If a telegram has been received that conveyed an error code, then eRFR_Error is output at the eResponse output. The conveyed error code is specified in the output variable iErrCodeRcv; this is described in greater detail in the chapter RFID error codes. If eResponse assumes the value eRFR_Error, then an error is also signalled by means of bError = TRUE at the output of the function block.

Equivalent in proprietary protocol:
Balluff: <NAK>+Failurenumber
Deister: MessageErrorCode>=16#20
Leuze: 'Exx', 'Q0'

eRFR_Data_ReaderVersion :

An RFID reader is requested by a version query to send model information. This kind of received data is designated with the value eRFR_Data_ReaderVersion at the eResponse output.

eRFR_Data_Config :

A read-out RFID reader configuration is indicated by means of the enumeration value eRFR_Data_Config.

Equivalent in proprietary protocol:
Leuze: 'G'

eRFR_Data_Inventory :

This type of telegram is indicated if a transponder has been detected or if the serial number of a transponder has been read out.

eRFR_Data_ReadData :

The receipt of read-out data from the transponder memory is indicated by the value eRFR_Data_ReadData.

Equivalent in proprietary protocol:
Deister: MessageID=16#40 or 16#41