Connecting Third Party Devices to Wiren Board: различия между версиями
(Добавил ссылку на тему форума) |
(Дополнил введение) |
||
Строка 3: | Строка 3: | ||
Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard. | Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard. | ||
Список всех поддерживаемых контроллером протоколов можно найти в [[Supported_devices | Таблице поддерживаемых устройств]]. | Список всех поддерживаемых контроллером протоколов можно найти в [[Supported_devices | Таблице поддерживаемых устройств]]. | ||
При подключении сторонних устройств, которые не были протестированы в работе с контроллером Wirenboard, нужно иметь в виду, что некоторые сторонние устройства могут влиять на работу всех устройств, подключенных к этому же порту, вплоть до полной остановки работы шины. Поэтому перед настройкой подключения рекомендуется оставить только одно устройство, подключенным к порту RS-485. После его успешной настройки можно подключать остальные устройства. | |||
== Подключите устройство == | == Подключите устройство == |
Версия 09:12, 26 октября 2021
Введение
Modbus RTU — один из распространенных протоколов для связи устройств. Если устройство стороннего производителя поддерживает протокол Modbus RTU, то его можно подключить к контроллеру Wirenboard.
Список всех поддерживаемых контроллером протоколов можно найти в Таблице поддерживаемых устройств. При подключении сторонних устройств, которые не были протестированы в работе с контроллером Wirenboard, нужно иметь в виду, что некоторые сторонние устройства могут влиять на работу всех устройств, подключенных к этому же порту, вплоть до полной остановки работы шины. Поэтому перед настройкой подключения рекомендуется оставить только одно устройство, подключенным к порту RS-485. После его успешной настройки можно подключать остальные устройства.
Подключите устройство
Для подключения стороннего устройства по протоколу Modbus RTU:
- Откройте документацию на устройство и убедитесь, что оно имеет интерфейс RS-485 и поддерживает протокол Modbus RTU.
- Проверьте, нет ли вашего устройства в Таблице поддерживаемых устройств. Если устройство там есть — используйте указанные в таблице рекомендации по подключению.
- Определите, какая информация вам нужна и в каких регистрах она находится.
- Подключите устройство к контроллеру по шине RS-485.
- Узнайте в документации на устройство параметры подключения: скорость (Baud rate), Количество битов данных (Data bits), Бит чётности (Parity), Количество стоповых битов (Stop bits), Modbus-адрес устройства.
- Проверьте связь с устройством и правильность подключения:
- Остановите драйвер wb-mqtt-serial или иное ПО, которое опрашивает устройство.
- Подключитесь к устройству с помощью утилиты modbus_client и считайте данные из любого известного вам регистра.
Если чтение данных пройдёт успешно — вы верно подключили устройство и настроили параметры соединения.
Создайте шаблон
Для удобства использования устройства создайте шаблон для драйвера wb-mqtt-serial в шаблоне укажите:
- регистры, в которых хранятся нужные вам данные;
- параметры инициализации, если они необходимы;
- обязательно в шаблоне задайте параметр
guard_interval_us
, значение которого должно быть не менее 3.5 символа при выбранной скорости. Нужное значение рассчитывается по формуле:
guard_interval_us = (3.5*11*106)/(скорость в бит/с)
.
Например, для скорости 9600 бит/с guard_interval_us = (3.5*11*106)/9600 = 4000 мкс
. При проблемах с подключением стороннего устройства для теста это значение можно увеличить (например до 100000 мкс), так как сторонние устройства иногда работают не совсем корректно.
- для проверки корректности шаблона выполните на контроллере команду
wb-mqtt-serial -g
.
Эта команда проверит на корректность файлы шаблонов в директориях /usr/share/wb-mqtt-serial/templates
(директория предустановленных шаблонов) и /etc/wb-mqtt-serial.conf.d/templates
(директория для пользовательских шаблонов). Если в шаблонах содержатся ошибки, то на экран будут выведены диагностические сообщения с указанием имени шаблона и ошибка.
Особенности реализации Modbus RTU в устройствах Wiren Board
Стандартом Modbus RTU предусмотрен обязательный интервал тишины между фреймами данных в 3.5 символа — frame_timeout_ms.
Для ускорения опроса устройств Wiren Board мы соблюдаем этот интервал только перед первым запросом к следующему в цикле опроса устройству.
Поэтому, чтобы соответствовать требованиям протокола Modbus-RTU, нужно для сторонних устройств задавать параметр guard_interval_us.