Working with WB devices without a controller: различия между версиями

Материал из Wiren Board
Строка 85: Строка 85:


=== Использование готовых конфигураций регистров для модулей Wirenboard ===
=== Использование готовых конфигураций регистров для модулей Wirenboard ===
Чтобы упросить пользователям настройку наших устройств без нашего контроллера, мы написали несколько готовых шаблонов для программы Rilheva Modbus Poll и опубликовали их в [https://github.com/wirenboard/wb-community/tree/main/rilheva-modbus-poll-templates репозитории wb-community]. При необходимости, вы можете сделать подобные шаблоны для других устройств.
Чтобы упросить пользователям настройку наших устройств без контроллера Wiren Board, мы написали несколько готовых шаблонов для программы Rilheva Modbus Poll и опубликовали их в [https://github.com/wirenboard/wb-community/tree/main/rilheva-modbus-poll-templates репозитории wb-community]. При необходимости, вы можете сделать подобные шаблоны для других устройств.


Использование:
Использование:

Версия 13:58, 21 июня 2022

Схема подключения modbus-устройств через адаптер USB-RS485. Если у адаптера есть клемма GND — подключите её к клемме GND modbus-устройства

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

Большинство устройств Wiren Board могут работать без управления контроллером — достаточно подать питание на клеммы «V+» и «GND». Но для их настройки и считывания данных потребуется подключиться к ним по протоколу Modbus. Для этого вы можете использовать компьютер с ОС Windows или Linux и адаптер USB-RS485.

Чтобы начать обмен с modbus-устройством, нужно клеммы A и B устройства подключить ко входам адаптера, подать на устройство питание и настроить программное обеспечение на компьютере.

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

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

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

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

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

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

Для работы с устройствами по протоколу Modbus мы рекомендуем использовать программу 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

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

Работа с устройством по протоколу Modbus RTU:

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

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

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

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

Использование:

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

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

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

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

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

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

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

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

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