Advanced Serial Data Logger

Trust In Confidence!

For Windows 2000 - Windows 10 (2016) (incl. Server, x86 and x64). Latest version: 4.2.1 build 131. .

RFID Software: Reading data from an RFID reader using the LLRP protocol

Download and install our software

Download Advanced Serial Data Logger

Advanced Serial Data Logger you can download here. Plugins can be downloaded separately here.


You can use Advanced Serial Data Logger and the LLRP Reader Protocol module to build a data collection server, and to integrate RFID readers that support the LLRP protocol into an enterprise’s existing control and tracking system. In this system, RFID readers interact with tags and send data to Data Logger, which acts as the central server. The purpose of Data Logger is to pre-store and filter data, and possibly to write them to a log file or a database. Using the commonly used terminology, we can call this software solution "RFID Middleware."

Compatible RFID readers

  • Alien ALR-9900+ (LLRP)
  • Impinj Speedway R420 (LLRP)
  • Impinj Speedway R220 (LLRP)
  • Intermec IF2 (LLRP)
  • Intermec IF61 (LLRP)
  • Motorola FX7400
  • Motorola FX7500
  • Motorola FX9500
  • ThingMagic Mercury 6 (LLRP)
  • Other readers that support LLRP protocol.

Configuring the connection with the reader

Information: According to the LLRP protocol specification, TCP port number 5084 is used for data transfer.

An RFID reader usually acts as a TCP server. In this case, the computer (client) initiates a connection to the reader and acts as a TCP client.

Note: Do not confuse the terms "client" (as referred to the LLRP protocol) and "TCP client."

Note: The logger’s network activity may be blocked by your firewall. To make sure that the logger can do its job, add it to your firewall’s exception list.

To configure the logger as a TCP client, specify the IP addresses of the RFID readers as shown in Figure 1.

Configuring the TCP client mode
Figure 1: Configuring the TCP client mode

If the reader is configured as a TCP client (see the user manual for the reader), you should configure the logger as a TCP server. In this case, enter the server’s IP address in each reader’s settings. The TCP server will be waiting for readers to connect.  In the TCP logger’s settings, enter only one address and one port (see Figure 2).

Information: One server can simultaneously handle multiple readers.

Configuring the TCP server mode
Figure 2: Configuring the TCP server mode

To ensure a stable connection with the readers, it is recommended to configure the selected options as shown in Figure 3.

Additional TCP connection settings
Figure 3: Additional TCP connection settings

Configuring the data parser

The purpose of the LLRP Reader Protocol parser module is to facilitate an interaction with the reader. When a TCP connection is established, the module will configure the reader’s operation mode, and then will receive and process the incoming data.

Select the module from the two drop-down lists as shown in Figure 4.

Selecting the parser module
Figure 4: Selecting the parser module

To additionally configure the module, click the "Configure" button next the the selected module. The module configuration window will open (Figure 5).

Selecting the parser module
Figure 5: Configuring the module

Reader operation mode

Use the "Reader operation mode" parameter group to define how the reader should read RFID tags. These parameters will be sent to the reader when a connection is established.

Convert time from UTC to local time zone — If this option is turned on, the application installed at the computer will convert the UTC time (sent by the reader according to the LLRP protocol) into the computer’s local time. If this option is turned off, the application will not do the conversion but will export the time as received from the reader.

Start tag detection every N seconds — If this parameter is not set to zero, the reader will be checking for any tags in its field of view (FOV) at the specified time interval. If this parameter is set to zero, the reader will be continuously checking for any tags in its field of view. This parameter directly affects the amount of data transferred between the reader and the computer. The more the time interval, the less the traffic.

Detect tags during N seconds — This parameter defines the time during which the reader will be polling the tags. It is recommended to set this parameter less than the tag detection interval.

Enable antenna only when reading tags — If this option is turned on, the reader will be enabling the antenna only when the tags are being read.  If the tag reading interval is sufficiently large, disabling the antenna of the active reader may considerably reduce the reader’s power consumption, and may also reduce the level of electromagnetic radiation in the room where the antenna is installed.

Client operation mode

In the terms of the LLRP protocol, the logger is always a client, regardless of the TCP/IP operation mode.

Wait for events — In this mode, the logger awaits data from the reader. The reader will start sending data if it detects one or more tags in its FOV. The larger the tag detection interval specified in the reader’s settings, the less frequent the events.
Group N tags before reporting to client — This parameter lets you additionally optimize the data transfer from the reader to the computer in the event mode. If this parameter is not set to zero, the data will be sent to the computer if the tag polling interval is over and at least one tag was detected, or if N tags were read within that interval. The reader may read the same tag more than once during the polling interval, so the value of N per se doesn’t guarantee that multiple different tags have been read.

Poll — In this mode, the logger will be sending a request to the reader at the interval specified in the "Polling interval" field, and check for any data. The tags will be stored and grouped in the reader. It is recommended to use this mode in case of a large number of tags in the FOV, as it considerably reduces the amount of traffic between the reader and the computer.

Data logging

Use the "Log data" parameter group to configure pre-filtering of the data read by the reader.

"When tag appears in field of view" and "When tag disappears from FOV" — If these options are turned on, the logger will log the data only at the moment when a tag appears in and/or disappears from the reader’s FOV.

Important! Configure time synchronization with an accurate time for the reader. A considerable difference between the reader’s time and the data collection server’s time may cause a false operation of the algorithm that detects tag appearance/disappearance in/from the FOV.

When tag data has been changed — Each tag that has been read is characterized by a set of associated data, such as the time of appearance, the number of readings, signal level, etc. If this option is turned on, the data will be logged only if one or more of the associated values change.

Every reading — All data read will be logged.

Reader events — The reader’s additional internal events, such as enabling/disabling of the antenna, connection of a client, etc. will be logged. You can configure the events manually (see "Fine-tuning the reader").

Exported variables

The LLRP Reader Protocol parser module generates variables, which are sent to the data export modules. Before getting to the data export modules, the variables are pre-filtered via the "Data logging" parameter group.

Each variable consists of a name and a value of a certain type (see Table 1). In the data export module, you can refer to a variable by its name.

The application works with the reader as follows:

  1. Data are received from the reader.
  2. The data are parsed.
  3. The data are pre-filtered.
  4. Variables are prepared.
  5. The prepared variables are sent to each of the enabled filtering modules (see Figure 4). Note that variables for each reading are sent to the filtering modules separately from variables for other readings. If any filtering module has blocked the data, they will not be processed any more (go to Step 7).
  6. The prepared variables are sent to each of the enabled data export modules (see "Configuring data writing to a Firebird database").
  7. The variables created at Step 4 are deleted. The variables “live” only while being processed by the filtering modules and/or the data export modules.
Table 1
Name Description Data type
TAGREPORTDATA_ANTENNAID Antenna identifier Integer
TAGREPORTDATA_PEAKRSSI Transmitter’s peak value Integer
TAGREPORTDATA_FIRSTSEENTIMESTAMPUTC Date and time of the first tag detection. The time corresponds to one set in the reader. If UTC time is used in the reader, the value will contain UTC time. DateTime
TAGREPORTDATA_LASTSEENTIMESTAMPUTC Date and time of the last tag detection. DateTime
TAGREPORTDATA_TAGSEENCOUNT Number of tag detection attempts. Integer
TAG_OUT_OF_FOV Indicates that a tag has disappeared from the FOV. This variable appears only if you have enabled the logging of tag disappearance from the FOV. If the value of this variable is 1, the data corresponds to the “Tag disappearance from FOV” event. Integer

Note: The composition of variables may change. Other variables may be added, depending on how you fine-tune the reader.

Fine-tuning the reader

You can fine-tune the reader by editing the “llrp-init.xml” file. The logger reads that file when the application is launched, and uses it for initializing the reader when a TCP connection is established.

The XML file is generated according to the LLRP protocol. It is recommended not to modify the original file unless you know what you are doing and for which purpose. Modifying that file may interfere with the normal operation of the application.

In the XML file, you can use special tags like {ROSpecStartTrigger}, {ROSpecStopTrigger}, etc. When the XML file is being processed, such tags will be replaced with the parameters generated using the LLRP Reader Protocol module (see Table 2).

Table 2
Tag Description
{ROSpecStartTrigger}, {ROSpecStopTrigger} Will be replaced with the reading parameters in the XML format, depending on parameters in the “Reader operation mode” group.
{AISpecStopTrigger} Will be replaced with the antenna operation mode parameters in the XML format, depending on the “Enable antenna...” option.
{ROReportTrigger_TagLimit} Will be replaced with the value of the “Group N tags before reporting to client” parameter.

Related articles: