RFID: Чтение данных со считывателя RFID используя протокол LLRP
Скачайте бесплатную пробную версию! Она позволяет попробовать все возможности! Модули для логгера можно скачать по отдельности.
Общие сведения
Advanced TCP/IP Data Logger и модуль "LLRP Reader Protocol" позволяют построить сервер сбора данных и интегрировать RFID считыватели, поддерживающие LLRP протокол, в существующую систему контроля и отслеживания объектов на предприятии. В данной системе RFID считыватели обеспечивают взаимодействия с метками и передачу данных на центральный сервер, в качестве которого выступает Data Logger. Задачей Data Logger является предварительное аккумулирование и фильтрация данных, и возможно, запись данных в лог файл или базу данных. По общепринятой терминологии данный программный комплекс можно назвать как "RFID middleware".
Совместимые считыватели RFID
- 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)
- Другие модели и производители, которые поддерживают протокол LLRP.
Подготовительный этап
- Скачайте и установите Advanced TCP/IP Data Logger. Тип лицензии: Professional, Enterprise, или пробная версия
.
- Скачайте и установите дополнительный модуль для работы со считывателями RFID Protocols.
Настройка соединением со считывателем
Информация: спецификация LLRP протокола указывает на то, что для передачи данных используется TCP порт c номером 5084.
Обычно считыватель работает как TCP сервер. В этом случае компьютер (клиент) инициирует подключение к считывателю и выступает в роли TCP клиента.
Замечание: следует различать понятие клиента в терминах протокола LLRP и понятие клиента TCP.
Замечание: сетевая активность логгера может быть заблокирована вашим фаерволом. Для работы логгера необходимо внести его в список исключений вашего фаервола.
Для настройки работы логгера в режиме TCP клиента необходимо указать IP адреса считывателей, как показано на рис. 1.
Рис. 1. Настройка режима TCP клиента
Если считыватель настроен на работу в режиме TCP клиента (см. руководство пользователя считывателя), то логгер должен быть настроен как TCP сервер. В этом случае в настройках считывателя указывается IP адрес сервера, а TCP сервер ожидает подключения от считывателей. В настройках TCP логгера указывается только один адрес и порт (см. рис. 2).
Информация: один сервер может работать с несколькими считывателями одновременно.

Рис. 2. Настройка режима TCP сервера
Для поддержания устойчивой связи со считывателями рекомендуется настроить выделенные опции, как показано на рис. 3.

Рис.3. Дополнительные параметры соединения TCP
Настройка парсера данных
Модуль-парсер "LLRP Reader Protocol" необходим для обеспечения взаимодействия со считывателем. При возникновении TCP соединения модуль настраивает режим работы считывателя и осуществляет дальнейший прием и обработку входящих данных.
Необходимо выбрать модуль из двух выпадающих списков, как показано на рис. 4.

Рис. 4. Выбор модуля парсера
Для дополнительной настройки модуля необходимо нажать на кнопке "Настроить" рядом с выбранным модулем. При нажатии на кнопку будет открыто окно настройки модуля (рис. 5).

Рис. 5. Настройка модуля
Режим работы считывателя
Группа параметров "Режим работы считывателя" позволяет настроить режим считывания тегов считывателем. Данные параметры передаются считывателю в момент соединения с ним.
Конвертация времени из UTC в локальное – если включена данная опция, то программа на стороне компьютера будет преобразовывать время в формате UTC (которое передает считыватель согласно протоколу LLRP) в локальное время компьютера. Если данная опция отключена, то программа не будет пересчитывать время в локальное, и будет экспортировать время, которое передается непосредственно считывателем.
Запускать обнаружение тегов каждые N секунд – если значение параметра не равно нулю, что считыватель будет проверять наличие тегов в поле видимости (ПВ) через заданный интервал. Если значение параметра равно 0, то считыватель будет постоянно опрашивать теги в поле видимости. Значение данного параметра напрямую влияет на объем данных, передаваемых между считывателем и компьютером. Чем больше интервал, тем меньше данных будет передаваться.
Определять теги в течении N секунд – Данные параметр задает временной интервал, в течение которого считыватель будет опрашивать метки. Рекомендуется устанавливать значение данного параметра меньше значения интервала обнаружения тегов.
Включать антенну только на время чтения тегов – если данная опция включена, то считыватель будет включать антенну только в момент считывания тегов. Отключение антенны у активного считывателя при больших интервалах считывания тегов может существенно снизить потребление электроэнергии считывателем, а также снизить электромагнитный фон в помещении, где установлена антенна считывателя.
Режим работы клиента
Логгер в понятиях протокола LLRP всегда является клиентом, в независимости от режима работа по протоколу TCP/IP.
Ждать уведомления о событиях от считывателя – в этом режиме логгер ожидает данные от считывателя. Данные от считывателя будут поступать, когда считыватель обнаружит один или несколько тегов в пределах ПВ. Чем больше интервал обнаружения тегов в параметрах считывателя, тем реже будут формироваться события.
Группировать N тегов перед отправкой клиенту – данный параметр позволяет дополнительно оптимизировать передачу данных от считывателя к компьютеру в режиме ожидания уведомления. При значении параметра отличного от нуля данные в компьютер будут переданы при условии, что закончился период опроса тегов и при этом, был обнаружен хотя бы один тег, или за время интервала опроса было произведено N считываний тегов. За интервал опроса тегов считыватель может опросить один тег несколько раз. Поэтому значение N не гарантирует, что было считано несколько разных тегов.
Опрос – в этом режиме логгер будет периодически отправлять запрос считывателю через интервал, указанный в поле "Интервал опроса", и проверять наличие данных. В этом режиме теги накапливаются и группируются внутри считывателя. Рекомендуется использовать данных режим в случае большой популяции тегов в пределах ПВ, поскольку существенно сокращает объем трафика между считывателем и компьютером.
Протоколирование данных
Группа параметров "Протоколировать данные" позволяет задать опции предварительной фильтрации считанных данных.
Когда тег появляется в пределах поля видимости, когда тег исчезает из ПВ – если включены данные опции, то логгер будет протоколировать данные только в момент появления и/или исчезновения тега из ПВ.
Важно! Необходимо установить синхронизацию времени на считывателе с часами точного времени. При большом расхождении часов считывателя и сервера сбора данных возможны ложные срабатывания алгоритма обнаружения входа/выхода тегов в/из ПВ.
Когда данные тега изменились – каждый считанный тег характеризуется набором сопутствующих данных. Например: время появления, количество считываний, уровень сигнала и т.п. Если включена эта опция, то данные будут протоколироваться, только если изменилось одно или несколько сопутствующих значений.
Каждое считывание – будут протоколироваться все считанные данные.
События считывателя – будут протоколироваться дополнительные внутренние события считывателя, такие как включение/выключения антенны, подключение клиента и т.п. События считывателя настраиваются вручную с помощью тонкой настройки (см. раздел "Тонкая настройка считывателя").
Экспортируемые переменные
Результатом работы модуля-парсера "LLRP Reader Protocol" являются переменные, которые передаются в модули экспорта данных. Переменные попадают в модули экспорта данных после предварительной фильтрации с помощью группы параметров "Протоколирование данных".
Переменная состоит из имени и значения определенного типа (см. табл. 1). Переменную можно использовать в модулях экспорта данных по её имени.
Логика работы программы при работе со считывателем:
- Получение данных от считывателя.
- Парсинг данных.
- Предварительная фильтрация.
- Подготовка переменных.
- Передача подготовленных переменных последовательно во все включенные модули фильтрации (см. рис. 4). Причем переменные для каждого считывания передаются в модули фильтрации отдельно. Если какой-либо модуль-фильтр не пропустил данные, то дальнейшая обработка данных не производятся и переход к п.7.
- Передача подготовленных переменных последовательно во все включенные модули экспорта данных (см. далее раздел "Настройка записи данных в Firebird").
- Удаление переменных созданных в п.4. Переменные "живут" только на время обработки их модулями фильтрации и/или экспорта данных.
Таблица 1 |
Имя |
Описание |
Тип данных |
TAGID |
Идентификатор тега |
String |
TAG_DATA |
Дополнительные данные теги |
String |
ANTENNA_ID |
Идентификатор антенны |
Integer |
RSSI |
Пиковое значение передатчика |
Integer |
FIRST_SEEN_TIMESTAMP |
Дата и время первого обнаружения тега. Время соответствует времени, установленному в считывателе. Если в считывателе установлено время UTC, то значение будет содержать время в UTC. |
DateTime |
LAST_SEEN_TIMESTAMP |
Дата и время последнего обнаружения тега. |
DateTime |
SEEN_COUNT |
Количество попыток обнаружения тега. |
Integer |
TAG_OUT_OF_FOV |
Признак того, что тег вышел и ПВ. Данная переменная появляется только тогда, когда включено протоколирование исчезновения тега из ПВ. Если значение переменной равно 1, то данные соответствуют событию "Исчезновение тега из ПВ". |
Integer |
Замечание: состав переменных может изменяться и дополняться другими переменными в зависимости от тонкой настройки считывателя.
Тонкая настройка считывателя
Тонкая настройка считывателя осуществляется с помощью XML файла "llrp-init.xml", который логгер считывает в момент запуска программы и использует для инициализации считывателя в момент установления TCP соединения.
Данный XML файл формируется в соответствии с протоколом LLRP. Не рекомендуется вносить изменения в оригинальный файл без четкого понимания того, что и для чего вы это делаете. Изменения в данном файле могут сказаться на нормальной работе программы.
В XML файле можно использовать специальные метки вида {ROSpecStartTrigger}, {ROSpecStopTrigger} и т.п., которые в момент обработки XML файла будут замены параметрами, сформированными на основе модуля "LLRP Reader Protocol" (см. табл. 2).
Таблица 2 |
Тег |
Описание |
{ROSpecStartTrigger}, {ROSpecStopTrigger} |
В зависимости от параметров в группе "Режим работы считывателя" будут заменены на параметры считывания в формате XML. |
{AISpecStopTrigger} |
В зависимости от опции "Включать антенну…" будет заменена на параметры режима работы антенны в формате XML. |
{ROReportTrigger_TagLimit} |
Будет заменено на значение параметра "Группировать N тегов перед отправкой клиенту". |
Сопутствующие статьи:
RFID