SAUK · Протокол Modbus

Протокол MODBUS RTU и TCP/IP для RFID-считывателей SAUK

Обмен данными с RFID-считывателем по протоколу Modbus: чтение обнаруженных меток через Holding Register 0x03 и запись данных в метку через Write Multiple Registers (0x10). Работает по сети (Modbus TCP/IP через Ethernet или Wi-Fi) и по проводным линиям (Modbus RTU через RS-485, RS-232).

Modbus RTU / TCP-IP Ethernet / Wi-Fi / RS-485 / RS-232 Holding Register 0x03 FC 03 / 16
Содержание
Ничего не найдено. Попробуйте другую формулировку — например, «1000», «RSSI», «WRITE» или «пароль».

1Общие сведения

Ниже описан формат представления данных в регистре Holding Register 0x03 для встраиваемого ПО RFID-считывателей SAUK (версия 4.15 и выше):

  • с сетевым интерфейсом Ethernet или Wi-Fi (Modbus TCP/IP);
  • с проводными интерфейсами RS-485, RS-232 (Modbus RTU).

Описание приведено для 4-портового считывателя как общего случая. Для 1-портового считывателя или моноблока используется только часть, относящаяся к антенне №1. Данные от метки, идентифицированной соответствующей антенной, представлены в отдельных группах регистров.

Схема представления данных в Holding Register 0x03
Схема представления данных в Holding Register 0x03 (общий случай, 4 антенны).

2Чтение меток — Holding Register 0x03

Holding Register 0x03 по адресу 1000 содержит информацию об антеннах, в зоне действия которых находится RFID-метка. При наличии метки в поле антенны устанавливается флаг (значение полубайта 0x01); при пропадании метки флаг снимается.

2.1Таблица 1. Идентификация меток и результат записи (адреса 1000, 1001)

ПараметрАдресR/W, типОписание
Метка в поле антенн [4:3:2:1]1000R, [Byte:Byte]Примеры: 0x0100 — метка в поле антенны №3; 0x1111 — метка в поле всех 4 антенн.
Результат записи и коды ошибок [4:3:2:1]1001R, [Byte, Byte]Запись выполняется командой Write Multiple Registers (0x10), а результат возвращается здесь — по 4 бита (полубайт) на каждую антенну. Коды см. ниже.

Коды результата записи (на каждую антенну):

КодЗначение
0UNKNOWN — выставляется при новой попытке записи
1SUCCESS — данные успешно записаны в память метки
2NO TAG ERROR — метки нет в зоне действия
3TAG WRITE ERROR — ошибка записи данных в метку
4ACCESS PASSWORD ERROR — неверный пароль
FUNKNOWN ERROR — неизвестная ошибка

Ошибки формирования пакета мастером:

  • 0xCCCC — неверный номер антенны (должен быть 1…4);
  • 0xDDDD — неверная длина данных (строго 17 слов / 34 байта);
  • 0xEEEE — неверный адрес (должен быть 2000).

Примеры результата: 0x0001 — метка у антенны №1 закодирована успешно; 0x0030 — попытка кодирования у антенны №2, но данные не записаны (метка не поддерживает банк памяти либо смещение превышает размер памяти).

2.2Таблица 2. Данные метки по антеннам (адреса 1002–1077)

Данные каждой антенны располагаются в отдельной группе регистров. Ниже — секция антенны №1 (адреса 1002–1020); секции антенн №2, 3, 4 имеют идентичную структуру.

ПараметрАдресR/W, типОписание
Количество меток у антенны №11002R, [0x00, Byte]Число меток в таблице идентификации, обнаруженных антенной №1. Удерживается согласно времени удержания меток в таблице.
Timestamp1003, 1004R, wordСистемное время регистрации метки (32 бита). Пример: 0x2D79 0xC4FA = 06.03.2023 11:56:42.
Счётчик событий по метке1005R, wordИнкремент при каждом новом сканировании той же метки.
Уровень сигнала RSSI, dB1006R, wordОтрицательная величина, обычно от −90 (слабый) до −30 dB.
Банк памяти EPC и количество данных1007R, [0x01, Byte]Банк памяти константа 0x01 (EPC). Обычно 12 байт = EPC 96 бит.
Данные из EPC-памяти1008–1013R, массив 12 байт (6 слов)EPC-номер. Пример E280699500005010DE651922: 1008 = 0xE280 … 1013 = 0x1922.
Банк доп. данных и количество1014R, [Byte, Byte]Банк: EPC 0x01, TID 0x02, USER 0x03.
Данные из доп. памяти (EPC/TID/USER)1015–1020R, массив 12 байт (6 слов)Например, TID-номер. Формат записи в регистры аналогичен EPC.
СекцияДиапазон адресов
Антенна №11002–1020
Антенна №21021–1039
Антенна №31040–1058
Антенна №41059–1077
Структура групп регистров по антеннам
Структура групп регистров: секции данных по каждой из четырёх антенн.

3Алгоритм трансляции нескольких меток

Для версии ПО 4.15 и выше регистры каждой антенны предоставляют данные обо всех метках, обнаруженных этой антенной (не более 40 меток на все 4 антенны). При первом опросе группы регистров считыватель возвращает данные первой метки из таблицы идентификации, при втором — второй, и так далее; по достижении последней метки счётчик обнуляется и опрос идёт по кругу.

  • Данные в регистрах Modbus напрямую связаны с таблицей идентификации — это один и тот же массив в памяти считывателя.
  • Если в поле действия одна метка, она транслируется в Modbus при каждом запросе мастера.
  • Если меток несколько, после трансляции метки на мастер выставляется флаг «больше не транслировать эту метку».
  • Флаг сбрасывается, когда метка пропадает из таблицы (по таймауту удержания) или когда мастер опросил все метки по кругу.
  • Так метки транслируются поочерёдно — «эстафета» передаётся от метки к метке.

4Интерфейсы и примеры опроса

Ниже — веб-интерфейс встраиваемого ПО SAUK (доступен через браузер): таблица с четырьмя идентифицированными и отфильтрованными метками, прочитаны все необходимые данные — EPC 12 байт и DATA 12 байт (в частности, блок TID).

Веб-интерфейс SAUK: таблица идентифицированных меток
Веб-интерфейс встраиваемого ПО SAUK: четыре идентифицированные RFID-метки (EPC + DATA/TID).

Ниже — программа Modbus Poll, опрашивающая Holding Register 0x03 считывателя. Общий объём данных составляет 78 слов.

Modbus Poll: опрос Holding Register 0x03
Modbus Poll: опрос Holding Register 0x03 (78 слов данных).

5Запись в метку — Write Multiple Registers (0x10)

Запись данных в память RFID-метки выполняется командой Write Multiple Registers 16 (0x10). Посылка должна иметь фиксированную длину 17 слов (34 байта); посылка иной длины считывателем не обрабатывается. Результат записи возвращается в Holding Register 0x03 по адресу 1001 (см. раздел 2.1).

5.1Таблица 3. Формат записи (адреса 2000–2016)

ПараметрАдресR/W, типОписание
Антенна, банк памяти метки2000W, [Byte:Byte]ANT — номер антенны 1…4 (обязателен). BANK — банк памяти: EPC 0x01, TID 0x02, USER 0x03.
EPC метки для записи2001–2006W, массив 12 байт (6 слов)Если массив заполнен нулями, запись выполняется в любую метку в поле действия антенны.
Access Password2007–2008W, массив 4 байта (2 слова)Нули — пароль не используется. Если память метки закрыта паролем, его необходимо указать.
Смещение и длина данных (в словах)2009W, [Byte:Byte]USER — смещение может быть с 0x00. EPC — минимальное смещение 0x02 (первые секторы служебные). Максимум зависит от чипа метки.
Данные для записи в память метки2010–2015W, массив 12 байт (6 слов)Фиксированная длина 12 байт (6 слов).
Подтверждение звуковым сигналом2016W, [Byte:0x00]0x00 — тишина, 0x01 — подтверждение успешной записи бузером.

5.2Пример записи в память USER

Запись в пользовательскую память (USER) антенной №1:

АдресЗначениеСмысл
20000x0103Антенна №1, банк USER (0x03)
2001–20060101010305441FFFFFF003448EPC метки, в которую пишем (12 байт)
2007–200800000000Access Password не используется
20090x0001Смещение 0x00, длина 1 слово (2 байта)
20100xABCDЗаписываемые данные
20160x0100Подтвердить запись звуковым сигналом
Modbus Poll: запись данных в RFID-метку
Modbus Poll: запись данных в RFID-метку через Write Multiple Registers (0x10).

6Файлы конфигурации и примечания

Готовые файлы конфигурации Modbus Poll

Для упрощения тестирования и настройки считывателя при первом знакомстве с устройством доступны готовые файлы конфигурации Modbus Poll — для опроса Holding Register 0x03 и для записи данных в метку через Write Multiple Registers (0x10). Ссылки на скачивание — на странице этого раздела сайта.

Версии встроенного ПО

Описание чтения (Holding Register 0x03) приведено для версии ПО 4.15 и выше; описание записи (Write Multiple Registers 0x10) — для версии 3.26 и выше на примере 4-портового считывателя SAUK E4.

Ограничения записи

Посылка записи должна строго содержать 17 слов (34 байта). Для банка EPC запись возможна только со смещения 0x02. Банк TID у выпускаемых меток, как правило, закрыт на перезапись. Максимальные смещение и длина данных зависят от модели чипа метки.

SAUK · Modbus RTU / TCP-IP sauk.ru
Россия, г. Москва, 
г. Зеленоград, проезд 4922, дом 4, строение 2. Технопарк "ЭЛМА". 
Подробнее...
SAUK© 2020 – 2026. Все тексты и изображения, представленные на сайте, являются интеллектуальной собственностью SAUK. Могут быть использованы только по письменному согласию SAUK. SAUK® является зарегистрированным торговым знаком. Заказы принимаются только от юридических лиц.

Товары

Корзина пуста

Итого

Заказ

Заказы принимаются только от юридических лиц