Перейти к содержанию

Навигация

Wb-mqtt-serial driver: различия между версиями

Убрал старый текст, и поменял ссылку на ssh
(Убрал старый текст, и поменял ссылку на ssh)
 
(не показано 16 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Драйвер wb-mqtt-serial}}
{{DISPLAYTITLE: Драйвер wb-mqtt-serial}}
== Описание ==
[[Image: wb-mqtt-serial a few protocols.png |500px|thumb|right| Драйвер wb-mqtt-serial может одновременно опрашивать устройства, работающие по разным протоколам: <br> ​1 — виртуальный порт для устройств с протоколом Modbus TCP,<br> 2  — устройство работает по протоколу Modbus RTU,<br> 3 — устройство работает по протоколу DLMS]]
[[Image: wb-mqtt-serial a few protocols.png |500px|thumb|right| Драйвер wb-mqtt-serial может одновременно опрашивать устройства, работающие по разным протоколам: <br> ​1 — виртуальный порт для устройств с протоколом Modbus TCP,<br> 2  — устройство работает по протоколу Modbus RTU,<br> 3 — устройство работает по протоколу DLMS]]
== Описание ==
=== Общая информация ===
=== Общая информация ===
''wb-mqtt-serial'' — драйвер master-slave протоколов для устройств, подключённых:
''wb-mqtt-serial'' — драйвер master-slave протоколов для устройств, подключённых:
Строка 8: Строка 8:
* к разъёмам MOD1–MOD3 — при наличии модулей расширения, использующих обмен по UART.
* к разъёмам MOD1–MOD3 — при наличии модулей расширения, использующих обмен по UART.


Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства настраиваются через [[RS-485:Configuration via Web Interface | веб-интерфейс]].
Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства и порты настраиваются через веб-интерфейс, подробнее в статье [[RS-485:Configuration via Web Interface | Начальное конфигурирование устройств через веб-интерфейс]].


wb-mqtt-serial использует систему JSON-шаблонов, которые описывают подключённые устройства: тип протокола, номера регистров, название параметров и контролов в веб-интерфейсе контроллера. В стандартной поставке есть шаблоны для всех устройств Wiren Board, а также некоторых сторонних устройств: счётчики электроэнергии, частотные преобразователи, холодильные контроллеры и другие.
Wb-mqtt-serial использует систему JSON-шаблонов, которые описывают подключённые устройства: тип протокола, номера регистров, название параметров и контролов в веб-интерфейсе контроллера. В стандартной поставке есть шаблоны для всех устройств Wiren Board, а также некоторых сторонних устройств: счётчики электроэнергии, частотные преобразователи, холодильные контроллеры и другие.


Если ваше устройство работает по поддерживаемому драйвером протоколу, но в стандартной поставке под него нет шаблона — можете написать шаблон сами.
Если ваше устройство работает по поддерживаемому драйвером протоколу, но в стандартной поставке под него нет шаблона — можете написать шаблон сами: [[Connecting_Third_Party_Devices_to_Wiren_Board | Подключение стороннего Modbus-устройства к контроллеру Wiren Board]].


Файлы и папки:
Файлы и папки:
* <code>/etc/wb-mqtt-serial.conf</code> — файл настроек драйвера, редактировать вручную не рекомендуем;
* <code>/etc/wb-mqtt-serial.conf</code> — файл настроек драйвера, редактировать вручную не рекомендуем;
* <code>/usr/share/wb-mqtt-serial/templates</code> — папка с предустановленными шаблонами;
* <code>/usr/share/wb-mqtt-serial/templates</code> — папка с предустановленными шаблонами;
* <code>/etc/wb-mqtt-serial.conf.d/templates</code> — папка для пользовательских шаблонов, которые имеют приоритет на предустановленными.
* <code>/etc/wb-mqtt-serial.conf.d/templates</code> — папка для пользовательских шаблонов, которые имеют приоритет над предустановленными.
 
Если вы добавили свой шаблон или изменили существующий, подождите 20 секунд, а потом перезагрузите страницу конфигуратора в веб-интерфейсе клавишами <kbd>Ctrl</kbd>+<kbd>F5</kbd> или перезапустите сервис: <syntaxhighlight lang="bash>systemctl restart wb-mqtt-confed</syntaxhighlight>


О том, как получить доступ к файлам и папкам, читайте в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]].
О том, как получить доступ к файлам и папкам, читайте в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]].
Строка 28: Строка 30:
Поэтому при написании шаблона для сторонних Modbus-устройств, нужно указать параметр ''guard_interval_us'', который рассчитывается по формуле:
Поэтому при написании шаблона для сторонних Modbus-устройств, нужно указать параметр ''guard_interval_us'', который рассчитывается по формуле:
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
guard_interval_us = (3.5*11*106)/(скорость в бит/с)
guard_interval_us = (3.5*11*10^6)/(скорость в бит/с)
</syntaxhighlight>
</syntaxhighlight>
Так же этот параметр можно установить через веб-интерфейс:
Так же этот параметр можно установить через веб-интерфейс:
Строка 51: Строка 53:


== Диагностика неполадок ==
== Диагностика неполадок ==
Если возникли проблемы с запуском драйвера, например, новое устройство не появилось, то можно узнать причину: выполните команду <code>systemctl status wb-mqtt-serial</code> и в последних двух строчках ответа будет подсказка.  
{{SupportedSinceRelease
 
| release = wb-2407
В примере файл конфигурации содержит синтаксическую ошибку во второй строке на 14 позиции:
|content=
Если возникли проблемы с запуском драйвера, например, новое устройство не появилось, то можно узнать причину в журнале wb-mqtt-serial двумя способами:
* [[SSH | Подключитесь к контроллеру]], выполните команду <code>systemctl status wb-mqtt-serial</code>, вывод будет содержать сообщения о ошибке. В примере файл конфигурации содержит синтаксическую ошибку во второй строке на 14 позиции:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
# systemctl status wb-mqtt-serial
# systemctl status wb-mqtt-serial
Строка 67: Строка 71:
</syntaxhighlight>
</syntaxhighlight>


Также можно запустить драйвер с параметром проверки файла конфигурации на ошибки:
<syntaxhighlight lang="console">
# wb-mqtt-serial -j
<3>ERROR: [serial config] Failed to parse /usr/share/wb-mqtt-serial/templates/config-wb-mdm3.json
Failed to parse JSON /usr/share/wb-mqtt-serial/templates/config-wb-mdm3.json:* Line 8, Column 9
  Missing ',' or '}' in object declaration
<3>ERROR: [serial] Can't find template for 'WB-MDM3'
</syntaxhighlight>


При необходимости, можно добавить путь к файлу, который нужно проверить:
* Откройте в [[Wiren_Board_Web_Interface|веб-интерфейс контроллера]], перейдите '''Настройки → Системный журнал''' в пункте '''Выберите сервис — wb-mqtt-serial.service''' и нажмите кнопку '''загрузить'''. В примере файл конфигурации содержит два дублирующих друг друга параметра:
<syntaxhighlight lang="bash">
[[Файл:Wb-mqtt-serial error.png|600px|thumb|centre| Журнал ошибок в веб-интерфейсе]]
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -j
}}
</syntaxhighlight>


== Включение отладки==
== Включение отладки==
Строка 111: Строка 105:
Jan 29 14:27:24 wirenboard-A6ZZXT2R wb-mqtt-serial[1667]: DEBUG: [serial port driver] register value change: input @ 3 of device modbus:22 <- 39.01
Jan 29 14:27:24 wirenboard-A6ZZXT2R wb-mqtt-serial[1667]: DEBUG: [serial port driver] register value change: input @ 3 of device modbus:22 <- 39.01
</syntaxhighlight>
</syntaxhighlight>
== Полезные ссылки ==
* [[Connecting_Third_Party_Devices_to_Wiren_Board | Как подключить стороннее Modbus-устройство]]
* [https://github.com/contactless/wb-mqtt-serial Описание wb-mqtt-serial на Github]
* [[Modbus|Описание протокола Modbus]]
* [[Fast_Modbus| Описание расширения Быстрый Modbus]]
* [[RS-485|Описание шины RS-485]]
wb_editors
127

правок