16 809
правок
Строка 1: | Строка 1: | ||
{{Draft}} | {{Draft}} | ||
== Создание шаблона == | |||
Рассказать драйверу wb-mqtt-serial, который в контроллере работает с Modbus-устройствами можно двумя способами: | Рассказать драйверу wb-mqtt-serial, который в контроллере работает с Modbus-устройствами можно двумя способами: | ||
# Добавить регистры устройства прямо в веб-интерфейсе контроллера по [[RS-485:Configuration_via_Web_Interface#without-template|инструкции]]. Этот способ удобен для быстрой проверки работы. | # Добавить регистры устройства прямо в веб-интерфейсе контроллера по [[RS-485:Configuration_via_Web_Interface#without-template|инструкции]]. Этот способ удобен для быстрой проверки работы. | ||
Строка 114: | Строка 115: | ||
Далее идёте в настройки драйвера и выбираете шаблон. Все это хорошо описано в инструкции [[RS-485:Configuration_via_Web_Interface||Начальное конфигурирование устройств через веб-интерфейс]]. | Далее идёте в настройки драйвера и выбираете шаблон. Все это хорошо описано в инструкции [[RS-485:Configuration_via_Web_Interface||Начальное конфигурирование устройств через веб-интерфейс]]. | ||
== Решение возможных проблем == | |||
Стандартом Modbus RTU предусмотрен обязательный интервал тишины в 3.5 символа между фреймами данных (под символом подразумевается посылка, состоящая из стартового бита, битов данных, бита четности и стоп-битов). | |||
Для ускорения опроса устройств Wiren Board мы соблюдаем этот интервал только перед первым запросом к следующему в цикле опроса устройству (параметр ''frame_timeout_ms'' в шаблонах устройств). | |||
Поэтому, чтобы соответствовать требованиям протокола Modbus-RTU, нужно для сторонних устройств задавать параметр ''guard_interval_us''. Этот параметр задает задержку перед записью каждого запроса в порт. | |||
Нужное значение рассчитывается по формуле: | |||
<syntaxhighlight lang="bash"> | |||
guard_interval_us = (3.5*11*106)/(скорость в бит/с). | |||
</syntaxhighlight> | |||
Например, для скорости 9600 бит/с <code>guard_interval_us = (3.5*11*106)/9600 = 4000 мкс</code>. При проблемах с подключением стороннего устройства для теста это значение можно увеличить (например до 100000 мкс), так как сторонние устройства иногда работают не совсем корректно. |