RFID Software: Read data from an RFID reader using the LLRP protocol
Download a Free Trial Version. It allows you to try all features! Plugins can be downloaded separately here
Overview
You can use Advanced TCP/IP 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 as "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)
- Or other readers that support LLRP protocol.
Pre-requirements
- Download and install Advanced TCP/IP Data Logger. License type: Professional, Enterprise, or a trial version
.
- Download and install the RFID Protocols plugin.
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: Your firewall may block the logger's network activity. To ensure 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.
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.
Figure 2: Configuring the TCP server mode
To ensure that connection with the readers is stable, you can configure the selected options, as shown in Figure 3.
Figure 3: Additional TCP connection settings
Configuring the data parser
The purpose of the LLRP Reader Protocol parser module is to facilitate 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.
Figure 4: Selecting the parser module
To additionally configure the module, click the "Configure" button next to the selected module. The module configuration window will open (Figure 5).
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. We recommend setting 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. It may also reduce the level of electromagnetic radiation in the room where the antenna is installed.
Client operation mode
In 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 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:
- Data are received from the reader.
- The data are parsed.
- The data are pre-filtered.
- Variables are prepared.
- 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 anymore (go to Step 7).
- The prepared variables are sent to each of the enabled data export modules (see "Configuring data writing to a Firebird database").
- The variables created in Step 4 are deleted. The variables "live" only while being processed by the filtering modules or the data export modules.
Table 1 |
Name |
Description |
Data type |
TAGID |
Tag identifier |
String |
TAG_DATA |
Additional tag data (if it is exists) |
String |
ANTENNA_ID |
Antenna identifier |
Integer |
RSSI |
Transmitter's peak value |
Integer |
FIRST_SEEN_TIMESTAMP |
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 |
LAST_SEEN_TIMESTAMP |
Date and time of the last tag detection. |
DateTime |
SEEN_COUNT |
Number of tag detection attempts. |
Integer |
TAG_OUT_OF_FOV |
Indicates that a tag has disappeared from the FOV. This variable only appears 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: RFID Software: Read data from an RFID reader using the LLRP protocol
RFID