Описание протокола MODBUS
Ниже представлено описание формата представления данных в регистре Holding register 0x03 для версии 3.28 встраиваемого программного обеспечения RFID-считывателей SAUK:
Holding register 0x03 по адресу 1000 (содержит информацию об антеннах, в зоне действия которых находится RFID-метка). При наличии RFID-метки в поле действия антенны устанавливается флаг (значение байта 0x01, 0x10, 0x11). При пропадании метки из поля действия антенны флаг снимается.
- с сетевым интерфейсом Ethernet или Wi-Fi;
- с проводными интерфейcами RS485, RS232.
Holding register 0x03 по адресу 1000 (содержит информацию об антеннах, в зоне действия которых находится RFID-метка). При наличии RFID-метки в поле действия антенны устанавливается флаг (значение байта 0x01, 0x10, 0x11). При пропадании метки из поля действия антенны флаг снимается.
HOLDING REGISTER 0x03
Таблица 1. Идентификация меток антеннами и результат выполнения записи данных в память RFID-метки. Адрес 1000, 1001
Параметр | Адрес | R/W, тип | Описание, комментарий |
---|---|---|---|
Метка в поле антенн [4:3:2:1] | 1000 | R, [Byte:Byte] | Примеры: • 0x0100 - в поле действия антенны №3 есть метка • 0x1111 - метка есть в поле действия всех 4-х антенн |
Результат записи данных в метку на антеннах и коды ошибок записи [4:3:2:1] | 1001 | R, [Byte, Byte] | Запись данных в метку выполняется через WRITE MULTIPLE REGISTERS 16, но результат кодирования возвращается через HOLDING REGISTER 3. Результат возвращается в виде 1 слова (2 байта) по каждой антенне независимо. Результат по каждой антенне имеет длину 4 бита (половина байта) и может содержать следующие коды: 0 - UNKNOWN. Выставляется каждый раз при новой попытке записи данных в любой сектор памяти. 1 - SUCCESS. Данные успешно закодированы в память метки. 2 - NO TAG ERROR. Произведена попытка записи данных в память метки - нет метки в зоне действия. 3 - TAG WRITE ERROR. Произведена попытка записи данных в память метки - ошибка записи данных в метку, вероятная причина. 4 - ACCESS PASSWORD ERROR. Произведена попытка записи данных в память метки - указан неверный пароль. F - UNKNOWN ERROR. Произведена попытка записи данных в память метки - неизвестная ошибка. Ошибка пакета (пакет неверно сформирован на стороне устройства Master) • 0xCCCC - указан неверный номер антенны, значение должно быть от 1 до 4 • 0xDDDD - неверная длина данных в посылке, должно быть строго фиксировано 17 слов (34 байта) • 0xEEEE - неверный адрес, должен быть указан адрес 2000. Пример: • 0x0001 - метка, расположенная у антенны №1 закодирована успешно • 0x0030 - произведена попытка кодирования метки расположенной у антенны №2, но данные в память метки не были записаны. Вероятная ошибка - метка не поддерживает указанный в WRITE MULTIPLE REGISTERS 16 банк памяти или смещение записи данных в метку не соответствует размеру памяти метки. |
Таблица 2. Holding register (0x03) по адресам 1002 - 1077.
Секция данных от Антенны №1 | 1002 | R, [0x00, Byte] | Номер антенны от 1 до 4 |
---|---|---|---|
Timestamp | 1003, 1004 | R, word | Системное время регистрации RFID-метки (общая длина 32 бита) Пример: • Значение слова по адресам 1003 и 1004, соответственно 0x2D79 0xC4FA • Дата и время 06.03.2023 11:56:42 |
Счётчик событий по метке | 1005 | R, word | Каждый новый факт сканирования одной и той же метки приводит к инкременту внутреннего счётчика |
Уровень сигнала метки RSSI, dB | 1006 | R, word | Значение уровня сигнала ослабления, отрицательная величина, в большинстве случаев от -90 dB до -30 dB. При этом, -90 самый слабый сигнал, 0 - самый сильный. |
Номер банка памяти EPC и количество данных EPC | 1007 | R, [0x01, Byte] | Для этой группы данных номер банка памяти константа 0x01, соответствует банку памяти EPC. В большинстве случаев количество передаваемых данных 12 байт, соответствует EPC нумерации 96 бит (самые распространённый способ кодирования UHF меток) |
Данные из EPC-памяти метки | 1008-1013 | R, [Byte] массив 12 байт, 6 слов | EPC номер. Пример E280699500005010DE651922 в регистре выглядит следующим образом: • 1008 - 0xE280 ... • 1013 - 0x1922 |
Номер банка памяти дополнительных данных и количество данных | 1014 | R, [Byte, Byte] | Номер банка памяти с данными: • EPC 0x01 • TID 0x02 • USER 0x03 |
Данные из дополнительной памяти метки (EPC, TID или USER) | 1015-1020 | R, [Byte] массив 12 байт, 6 слов | TID номер. Пример E280699500005010DE651922 в регистре выглядит следующим образом: • 1015 - 0xE280 ... • 1020 - 0x1922 |
Секция данных от Антенны №2 | 1021-1039 | | |
---|
Секция данных от Антенны №3 | 1040-1058 | | |
---|
Секция данных от Антенны №4 | 1059-1077 | | |
---|
На изображении ниже представлен внешний вид интерфейса встраиваемого программного обеспечения SAUK, доступного через WEB-браузер. На экранной форме интерфейса отображается таблица с 4 идентифицированными RFID-метками, которые прошли фильтрацию. Прочитаны все необходимые данные EPC 12 Байт, DATA 12 Байт (в частности блок TID).
На изображении ниже представлен внешний вид интерфейса программного обеспечения MODBUSS Poll, опрашивающее регистр Holding register 0x03 считывателя SAUK E4. Общее количество данных для ревизии встраиваемого ПО версии 3.26 составляет 78 слов.
Вы также можете загрузить сохраненный файл конфигурации для MODBUS Poll для упрощения тестирования и настройки считывателя, при первом знакомстве с устройством. Ссылка для скачивания.
Вы также можете загрузить сохраненный файл конфигурации для MODBUS Poll для упрощения тестирования и настройки считывателя, при первом знакомстве с устройством. Ссылка для скачивания.
WRITE MULTIPLE REGISTERS 16 (0x10)
Ниже представлено описание формата Записи данных в RFID-метку через WRITE MULTIPLE REGISTERS 16 (0x10) для версии 3.26 встраиваемого программного обеспечения RFID-считывателя SAUK E4. RFID-считыватель SAUK E4 является 4-х портовым RFID-считывателем. Данные от метки, которая идентифицируется соответствующей антенной, представлены в отдельных группах. Также результат кодирования меток с применением той или иной антенны хранится в отдельных группах. Результат выполнения записи данных в метку возвращается в HOLDING REGISTER 0x03. Описан в соответствующем разделе (таблица 1) в адресе 1001.
Запись данных через WRITE MULTIPLE REGISTERS 16 (0x10) должна иметь фиксированную длину 17 слов (34 байта) и содержать следующие поля для записи (таблица 3). Если на RFID-считыватель будет передана посылка с иным количеством данных - такая посылка обрабатываться считывателем не будет.
Запись данных через WRITE MULTIPLE REGISTERS 16 (0x10) должна иметь фиксированную длину 17 слов (34 байта) и содержать следующие поля для записи (таблица 3). Если на RFID-считыватель будет передана посылка с иным количеством данных - такая посылка обрабатываться считывателем не будет.
Параметр | Адрес | R/W, тип | Описание, комментарий |
---|---|---|---|
Антенна, Банк памяти метки | 2000 | W, [Byte:Byte] | ANT - указывается номер антенны, которая будет кодировать метку (производить запись данных в метку). Обязательно указывается номер антенны от 1 до 4. Если номер антенны указан не будет, то такая посылка обрабатываться считывателем не будет. BANK - указывается банк памяти RFID-метки, куда будет производиться запись 0x01 - EPC 0x02 - TID (для меток, выпускаемых в настоящий момент этот банк памяти закрыт на перезапись) 0x03 - USER |
EPC метки, в которую будет производиться запись | 2001...2006 | W, [Byte] массив 12 байт, 6 слов | Массив фиксированной длины 12 байт (6 слов). Если массив заполнен нулями 0x00, то данные будут записаны в любую метку, которая окажется в поле действия антенны |
ACCESS PASSWORD для перезаписи данных | 2007...2008 | W, [Byte] массив 4 байта, 2 слова | Массив фиксированной длины 4 байта (2 слова). Если массив заполнен нулями 0x00, то пароль не будет использоваться при записи метки - такая настройка используется если память метки не закрыта паролем. Если память метки закрыта паролем, его необходимо указывать иначе данные в метку записать не получится. |
Смещение и длина данных (указывается в словах) | 2009 | W, [Byte:Byte] | Память метки устроена аналогично регистрам MODBUS, смещение и длина указывается в словах (по 2 байта). - Запись данных в память USER может производиться со смещением 0x00 - Запись данных в память EPC может производиться с минимальным смещением 0x02 (первый и второй сектора памяти служебные)! Максимальное смещение и длина данных, которые могут быть записаны в метку зависят от модели чипа (смотрите техническую спецификацию по конкретному чипу). |
Данные, которые будут закодированы в память метки | 2010...2015 | W, [Byte] массив 12 байт, 6 слов | Массив фиксированной длины 12 байт (6 слов). |
Флаг подтверждения успешной записи данных в память метки звуковым сигналом (бузера) | 2016 | W, [Byte:0x00] | 0x00 - режим тишины 0x01 - подтверждение успешного кодирования звуковым сигналом |
Ниже представлен пример кодирования USER Memory (запись данных в пользовательскую память USER).
- Адрес 2000. Запись производится антенной №1. Записывается банк памяти 0x03 (USER MEMORY)
- Адрес 2001..2006. Метка, в которую будет произведена запись имеет EPC-номер 0101010305441FFFFFF003448 (12 байт).
- Адрес 2007 и 2008. Пароль Access password не используется, соответствующие данные заполнены нулями 00000000 (4 байта).
- Адрес 2009. Запись производится со смещением 0x00. Длина записи - 1 слово (2 байта)
- Адрес 2010. Данные, которые будут записаны - 0xABCD
- Адрес 2016. Факт успешной записи будет подтвержден подачей звукового сигнала 0x0100.
Ссылка для скачивания файла-конфигурации MODBUS POLL записи данных в RFID-метку посредством WRITE MULTIPLE REGISTERS 16 (ссылка).
SAUK© 2020 – 2024. Все тексты и изображения, представленные на сайте, являются интеллектуальной собственностью SAUK. Могут быть использованы только по письменному согласию SAUK. SAUK® является зарегистрированным торговым знаком.