16 581
правка
(Поправил текст) |
(Добавил структуру, поправил текст) |
||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Как подключить Modbus RTU-устройство стороннего производителя к контроллеру Wirenboard?}} | {{DISPLAYTITLE: Как подключить Modbus RTU-устройство стороннего производителя к контроллеру Wirenboard?}} | ||
== Введение == | |||
Протокол Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard. | |||
Список всех поддерживаемых контроллером протоколов можно найти в [[Supported_devices | Таблице поддерживаемых устройств]]. | |||
== Подключите устройство == | |||
Для подключения стороннего устройства по протоколу 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]] и считайте данные из любого известного вам регистра. | |||
Если чтение данных пройдёт успешно — вы верно подключили устройство и настроили параметры соединения. | |||
== Создайте шаблон == | |||
Для удобства использования устройства [[Wb-mqtt-serial_templates | создайте шаблон для драйвера wb-mqtt-serial]] в шаблоне укажите: | |||
* регистры, в которых хранятся нужные вам данные; | |||
* параметры инициализации, если они необходимы; | |||
* обязательно задайте параметр <code>guard_interval_us</code>, значение которого должно быть не менее 3.5 бита при выбранной скорости. | |||
== Особенности реализации Modbus RTU в устройствах Wiren Board == | |||
Стандартом Modbus RTU предусмотрен обязательный интервал тишины между фреймами данных в 3.5 символа — ''frame_timeout_ms''. | |||
Для ускорения опроса устройств Wiren Board мы соблюдаем этот интервал только перед первым запросом к следующему в цикле опроса устройству. | |||
Поэтому, чтобы соответствовать требованиям протокола Modbus-RTU, нужно для сторонних устройств задавать параметр ''guard_interval_us''. | |||
== Полезные ссылки == | |||
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] |