Connecting Third Party Devices to Wiren Board: различия между версиями

Материал из Wiren Board
(Поправил текст)
(Добавил структуру, поправил текст)
Строка 1: Строка 1:
{{DISPLAYTITLE: Как подключить Modbus RTU-устройство стороннего производителя к контроллеру Wirenboard?}}
{{DISPLAYTITLE: Как подключить Modbus RTU-устройство стороннего производителя к контроллеру Wirenboard?}}
== Введение ==
Протокол Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard.


Протокол Modbus RTU - один из самых распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, значит, его можно будет подключить к контроллеру Wirenboard по данному интерфейсу. Список всех поддерживаемых контроллером протоколов можно найти в [[Wb-mqtt-serial_driver | документации]] .
Список всех поддерживаемых контроллером протоколов можно найти в [[Supported_devices | Таблице поддерживаемых устройств]].


Рекомендуемый процесс подключения устройства стороннего производителя к контроллеру Wirenboard заключается в следующем.
== Подключите устройство ==
Для подключения стороннего устройства по протоколу Modbus RTU:
# Откройте документацию на устройство и убедитесь, что оно имеет интерфейс RS-485 и поддерживает протокол Modbus RTU.
# Определите, какая информация вам нужна и в каких регистрах она находится.
# Подключите устройство к контроллеру по [[RS-485 | шине RS-485]].
# Узнайте в документации на устройство параметры подключения: скорость (Baud rate), Количество битов данных (Data bits), Бит чётности (Parity), Количество стоповых битов (Stop bits), Modbus-адрес устройства.
# Проверьте связь с устройством и правильность подключения:
#* {{Wbincludes:Stop wb-mqtt-serial}}
#* Подключитесь к устройству с помощью утилиты [[modbus_client]] и считайте данные из любого известного вам регистра.
Если чтение данных пройдёт успешно — вы верно подключили устройство и настроили параметры соединения.


# По документации нужно убедиться, что выбранное устройство имеет интерфейс RS-485 и поддерживает протокол Modbus RTU.
== Создайте шаблон ==
# Определить, какую информацию нужно считывать из устройства и номера регистров, которые хранят данную информацию.
Для удобства использования устройства [[Wb-mqtt-serial_templates | создайте шаблон для драйвера wb-mqtt-serial]] в шаблоне укажите:
# Физически подключить устройство устройство к контроллеру, руководствуясь [[RS-485:Физическое подключение | рекомендациями по подключению]]
* регистры, в которых хранятся нужные вам данные;
# Задать адреса устройствам и установить требуемые настройки связи. Настройки связи должны совпадать на обоих устройствах.
* параметры инициализации, если они необходимы;
# Убедиться в работоспособности линии связи, используя утилиту [[Modbus-client | modbus_client]] из командной строки контроллера. При этом необходимо, чтобы драйвер опроса устройств [[Wb-mqtt-serial_driver | wb-mqtt-serial]] был остановлен.
* обязательно задайте параметр <code>guard_interval_us</code>, значение которого должно быть не менее 3.5 бита при выбранной скорости.
# [[Wb-mqtt-serial_templates | Создать шаблон устройства]], в котором перечислить необходимые для опроса регистры, начальные настройки, задаваемые пользователем параметры. Также особое внимание нужно обратить на временные таймауты и интервалы, которые влияют на работу связи.


{{note|info| Важно! Стандарт Modbus RTU предполагает обязательный интервал тишины между фреймами данных в 3,5 символа. Однако для ускорения опроса Modbus-устройств производства Wirenboard этот интервал (frame_timeout_ms) используется только перед первым запросом к каждому следующему устройству в цикле опроса. Для соответствия требованиям протокола Modbus RTU требуется установка параметра guard_interval_us равного по длительности не менее 3,5 символа (бита) при выбранной скорости}}
== Особенности реализации Modbus RTU в устройствах Wiren Board ==
# Для того, чтобы шаблон появился в перечне устройств в веб-интерфейсе контроллера нужно скопировать файл шаблона в папку на контроллере для пользовательских шаблонов /etc/wb-mqtt-serial.conf.d/templates. Чтобы шаблон появился в веб-интерфейсе иногда требуется несколько раз обновить страницу конфигурации со сбросом кеша (в Goole Chrome для этого используется сочетание клавиш Ctrl+F5)
Стандартом Modbus RTU предусмотрен обязательный интервал тишины между фреймами данных в 3.5 символа — ''frame_timeout_ms''.
# Дальше работать с новым шаблоном как обычно


Для ускорения опроса устройств Wiren Board мы соблюдаем этот интервал только перед первым запросом к следующему в цикле опроса устройству.


== Информация по теме на форуме ==
Поэтому, чтобы соответствовать требованиям протокола Modbus-RTU, нужно для сторонних устройств задавать параметр ''guard_interval_us''.


https://support.wirenboard.com/t/oshibki-pri-chtenii-bolid-s2000-pp/8080
== Полезные ссылки ==


https://support.wirenboard.com/t/request-timed-out/8344/17
* [[Modbus|Описание протокола Modbus]]
 
* [[RS-485|Описание шины RS-485]]
https://support.wirenboard.com/t/oshibki-pri-chtenii-modbus-ustrojstv/8253
* Темы на форуме:
 
** [https://support.wirenboard.com/t/oshibki-pri-chtenii-bolid-s2000-pp/8080 Ошибки при чтении Bolid С2000-ПП]
https://support.wirenboard.com/t/wb-mr6hv-i-perestalo-otvechat-po-modbus/8286/18
** [https://support.wirenboard.com/t/request-timed-out/8344/17 Request timed out]
** [https://support.wirenboard.com/t/oshibki-pri-chtenii-modbus-ustrojstv/8253 Ошибки при чтении ModBus устройств]
** [https://support.wirenboard.com/t/wb-mr6hv-i-perestalo-otvechat-po-modbus/8286/18 WB-MR6HV/I перестало отвечать по Modbus]

Версия 12:53, 8 августа 2021

Введение

Протокол Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard.

Список всех поддерживаемых контроллером протоколов можно найти в Таблице поддерживаемых устройств.

Подключите устройство

Для подключения стороннего устройства по протоколу Modbus RTU:

  1. Откройте документацию на устройство и убедитесь, что оно имеет интерфейс RS-485 и поддерживает протокол Modbus RTU.
  2. Определите, какая информация вам нужна и в каких регистрах она находится.
  3. Подключите устройство к контроллеру по шине RS-485.
  4. Узнайте в документации на устройство параметры подключения: скорость (Baud rate), Количество битов данных (Data bits), Бит чётности (Parity), Количество стоповых битов (Stop bits), Modbus-адрес устройства.
  5. Проверьте связь с устройством и правильность подключения:
    • Остановите драйвер wb-mqtt-serial или иное ПО, которое опрашивает устройство.
    • Подключитесь к устройству с помощью утилиты modbus_client и считайте данные из любого известного вам регистра.

Если чтение данных пройдёт успешно — вы верно подключили устройство и настроили параметры соединения.

Создайте шаблон

Для удобства использования устройства создайте шаблон для драйвера wb-mqtt-serial в шаблоне укажите:

  • регистры, в которых хранятся нужные вам данные;
  • параметры инициализации, если они необходимы;
  • обязательно задайте параметр guard_interval_us, значение которого должно быть не менее 3.5 бита при выбранной скорости.

Особенности реализации Modbus RTU в устройствах Wiren Board

Стандартом Modbus RTU предусмотрен обязательный интервал тишины между фреймами данных в 3.5 символа — frame_timeout_ms.

Для ускорения опроса устройств Wiren Board мы соблюдаем этот интервал только перед первым запросом к следующему в цикле опроса устройству.

Поэтому, чтобы соответствовать требованиям протокола Modbus-RTU, нужно для сторонних устройств задавать параметр guard_interval_us.

Полезные ссылки