Работа с Modbus-устройствами Wiren Board без контроллера

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Схема подключения modbus-устройств через адаптер USB-RS485. Если у адаптера есть клемма GND — подключите её к клемме GND modbus-устройства

Аппаратная часть

Большинство устройств Wiren Board могут работать без управления контроллером, но для их настройки потребуется подключиться к ним по протоколу Modbus. Для этого вы можете использовать компьютер с ОС Windows или Linux и преобразователь интерфейса USB-RS-485, например, WB-USB485 .

Для начала работы надо клеммы A, B и GND устройства подключить к входам адаптера, подать на устройство питание и настроить программное обеспечение на компьютере.

Подготовка к работе

Перед настройкой устройства вам нужно знать:

  1. modbus-адрес устройства,
  2. коды функций чтения и записи регистров,
  3. адреса регистров устройства.

Перечень общих для всех устройств Wiren Board регистров можно найти в таблице общих регистров. Полный список регистров для каждого устройства смотрите в документации к нему.

Программы для работы по протоколу Modbus

Интерфейс программы Rilheva Modbus Poll

Мы рекомендуем использовать программу Rilheva Modbus Poll. Она бесплатна, не требует установки, имеет понятный интерфейс и возможность сохранения настроек обмена и конфигурации регистров.

Программа написана для ОС Windows. На ОС Linux программа может быть запущена с помощью эмулятора wine (проверено на wine 7.0) и указанием пути к исполняемому файлу:

wine ~/RilhevaModbusPoll_1.0.7/RilhevaModbusPoll.exe

Также можно использовать утилиты Modbus Poll из комплекта Modbus Tools (программа платная, но с бесплатным пробным периодом в 30 дней) и termite (есть «Pro» и «Free» версия) в ОС Windows и утилиту modbus_client в ОС Linux.

Выбор порта

В ОС Windows узнать, к какому порту у вас подключен адаптер, можно в диспетчере устройств. Найдите в дереве тип устройств Порты (COM и LPT), разверните ветку и найдите в ней свой адаптер. Если устройство выделено восклицательным знаком — это значит, что драйвер не был установлен автоматически. Установите его вручную по инструкции производителя.

В ОС Linux порт можно узнать с помощью команды команды dmesg -wH, которую нужно запустить перед физическим подключением USB-адаптера. В диагностических сообщениях будет выведено сообщение об обнаружении адаптера и назначении ему порта:

[  +7,705022] usb 3-7: new full-speed USB device number 6 using xhci_hcd
[  +0,149142] usb 3-7: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.62
[  +0,000014] usb 3-7: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[  +0,000005] usb 3-7: Product: USB2.0-Serial
[  +0,001500] ch341 3-7:1.0: ch341-uart converter detected
[  +0,000549] usb 3-7: ch341-uart converter now attached to ttyUSB0

В данном примере был назначен порт /dev/ttyUSB0.

В интерфейсе программы Rilheva Modbus Poll для адаптера обычно нужно выбрать COM-порт с самым большим номером. Чтобы проверить правильность выбора порта в Linux, нужно в пользовательской директории со списком портов эмулятора wine (~/.wine/dosdevices) найти файл, который является символической ссылкой на реальный USB-порт, к которому подключен адаптер.

Работа с программой Rilheva Modbus Poll

Использование готовых конфигураций регистров для модулей Wiren Board

Для упрощения настройки наших устройств без контроллера Wiren Board, мы написали готовые шаблоны для программы Rilheva Modbus Poll, лежат в репозитории wb-community. Использование:

  1. Скачайте файл конфигурации с расширением .rilmp к себе на компьютер.
  2. Запустите программу Rilheva Modbus Poll и загрузите в неё файл конфигурации.
  3. Настройки обмена будут заполнены значениями по умолчанию, при необходимости, измените их.
  4. Укажите modbus-адрес устройства и выберите используемый последовательный порт.
  5. Запустите опрос устройства, для этого нажмите кнопку Connect. Значения регистров из будут показаны в таблице.
  6. Установите нужные значения в поле Current value, они будут сразу отправлены в устройство.
  7. Остановите опрос кнопкой Disconnect.

Шаблоны для некоторых Modbus-устройств Wiren Board:

Создание собственной конфигурации

  1. Выберите в главном окне программы Rilheva Modbus Poll подключение к последовательному порту и укажите номер порта.
  2. Настройте параметры обмена: скорость, четность, количество стопбитов в соответствии с настройками модуля, а также таймаут ответа и частоту повторения запросов.
  3. Добавьте регистры устройства, которые необходимо опрашивать. Нажмите кнопку Add register и в появившемся диалоговом окне заполните поля в соответствии с картой регистров используемого модуля:
    • Address — адрес регистра в десятичном формате.
    • Alias — понятное описание регистра.
    • Read only — запрет на запись значений в регистр. Для регистров, значения которых нужно изменять снимите галочку.
    • Read function — выбор типа регистра и соответствующей modbus-функции для его опроса.
    • Type — задает формат данных.
    • Multiplier — коэффициент, на который умножается значение регистра для удобного отображения.
    • Offset — значение, которое прибавляется к значению регистра для удобного отображения.
    • Decimal places — количество десятичных знаков при отображении.
    • Add further registers with the same kind — опция позволяет добавить сразу несколько регистров одного типа в список опроса.
  4. Запустите опрос устройства, для этого нажмите кнопку Connect.
  5. Установите нужные значения в поле Current value, они будут сразу отправлены в устройство.
  6. Остановите опрос кнопкой Disconnect.

Рассмотрим работу с устройством по протоколу Modbus RTU на примере модуля реле WB-MR6C v.2. Считаем состояние выхода 1, счетчик срабатываний входа 1 и серийный номер модуля:

  1. В таблице регистров модуля реле найдите описание этих регистров:
    • состояние выхода 1 реле: адрес регистра 0, тип coil, формат bool
    • счетчик срабатываний входа 1: адрес регистра 32, тип input, формат u16
    • серийный номер модуля: адреса регистров 270, 271, тип input, формат u32
  2. Впишите эти параметры в настройках опроса регистров и включите опрос.
  3. Если параметры обмена и конфигурация регистров корректны, то в поле Current value отобразится содержимое регистров.
  4. Внесите изменения и остановите опрос.

Конфигурацию можно сохранить и использовать её для настройки таких же устройcтв.

Работа с программой modbus_client

Для работы с modbus-утройством в ОС Linux также можно использовать консольную утилиту modbus_client.

Для этого скачайте пакет для настольных компьютеров с Linux.

Перейдите в папку со скаченным пакетом и установите его командой:

sudo apt install ./modbus-utils_1.2_amd64.deb

Также автоматически должен установиться пакет libmodbus, если этого не произошло — установите его из репозитория apt.

Как работать и примеры использования смотрите в статье modbus_client.