Wiren Board Devices Modbus Management/en: различия между версиями

Материал из Wiren Board
(Новая страница: «=== Modbus commands supported by the device ===»)
(Новая страница: «The Wirenboard sensors support all major Modbus commands. Read more here: Протокол_Modbus/en#Register reading and writing function codes|Register readin…»)
Строка 9: Строка 9:
=== Modbus commands supported by the device ===
=== Modbus commands supported by the device ===


Датчики Wirenboard поддерживают все основные команды Modbus. Подробнее смотрите здесь: [[Протокол Modbus#Коды функций чтения и записи регистров|Коды функций чтения и записи регистров]].
The Wirenboard sensors support all major Modbus commands. Read more here: [[Протокол_Modbus/en#Register reading and writing function codes|Register reading and writing function codes]].


=== Modbus-регистры устройства ===
=== Modbus-регистры устройства ===

Версия 14:13, 3 июля 2019

Другие языки:

Modbus parameters

Modbus address

Modbus-the address of the Wiren Board devices is easy to determine — it is printed on the sticker (the address is in decimal format). The new address of the device is written by the command WRITE_SINGLE_REGISTER to the storage register (holding register) with the address 128 (0x80). For details on how to determine (if the address has been changed) or change the Modbus address of the module, see Define and change the Modbus address of Wirenboard devices.

Modbus commands supported by the device

The Wirenboard sensors support all major Modbus commands. Read more here: Register reading and writing function codes.

Modbus-регистры устройства

Данные и конфигурационные параметры Modbus-устройств хранятся в Modbus-регистрах. Для каждого типа устройств имеются свои карты Modbus-регистров, ссылки на которых приводятся на страницах соответствующих устройств.

Сигнатура устройства

По адресу 200 хранится сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:

Для получения сигнатуры устройства нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.

Управление устройствами из командной строки

Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице Modbus-client. Доступ к командной строке описан в статье SSH.

Пример чтения регистров

Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный шестнадцатеричный ответ в символьную строку:

echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`

В результате выполнения команды получаем строку, например WBMS. Модуль WB-MS в примере имеет Modbus-адрес 1.