16 281
правка
(не показано 11 промежуточных версий 3 участников) | |||
Строка 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 протоколов для устройств, подключённых: | ||
* к шине RS-485 — протокол Modbus RTU и других; | * к шине RS-485 — протокол Modbus RTU и других; | ||
* через Ethernet — протоколы Modbus TCP, Modbus over TCP и другие; | * через Ethernet — протоколы Modbus TCP, Modbus over TCP и другие; | ||
* к разъёмам MOD1–MOD3 — при наличии модулей | * к разъёмам MOD1–MOD3 — при наличии модулей расширения, использующих обмен по UART. | ||
Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства настраиваются через [[RS-485:Configuration via Web Interface | веб-интерфейс]]. | Драйвер опрашивает serial-устройства и публикует данные в топики [[MQTT|MQTT]]-брокера. Устройства настраиваются через [[RS-485:Configuration via Web Interface | веб-интерфейс]]. | ||
Строка 17: | Строка 17: | ||
* <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* | guard_interval_us = (3.5*11*10^6)/(скорость в бит/с) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Так же этот параметр можно установить через веб-интерфейс: | Так же этот параметр можно установить через веб-интерфейс: | ||
Строка 48: | Строка 50: | ||
systemctl restart wb-mqtt-serial # перезапустить | systemctl restart wb-mqtt-serial # перезапустить | ||
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d # запустить в отладочном режиме с указанием пути к конфигурационному файлу | wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d # запустить в отладочном режиме с указанием пути к конфигурационному файлу | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 67: | Строка 67: | ||
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: ERROR: [serial] Failed to parse JSON /etc/wb-mqtt-serial.conf:* Line 2, Column 14 | Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: ERROR: [serial] Failed to parse JSON /etc/wb-mqtt-serial.conf:* Line 2, Column 14 | ||
Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: Syntax error: value, object or array expected. | Jan 28 15:10:51 wirenboard-A6XXXT2R wb-mqtt-serial[23682]: Syntax error: value, object or array expected. | ||
</syntaxhighlight> | |||
Проверить только шаблоны, в том числе и не подключённые в файле конфигурации, можно командой: | |||
<syntaxhighlight lang="console"> | |||
# wb-mqtt-serial -g | |||
<3>ERROR: [serial config] Failed to parse /usr/share/wb-mqtt-serial/templates/config-bac-6000-series.json | |||
Failed to parse JSON /usr/share/wb-mqtt-serial/templates/config-bac-6000-series.json:* Line 12, Column 5 | |||
Missing ',' or '}' in object declaration | |||
</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> | |||
При необходимости, можно добавить путь к файлу, который нужно проверить: | |||
<syntaxhighlight lang="bash"> | |||
wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -j | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 98: | Строка 121: | ||
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> | ||
== Полезные ссылки == | |||
* [[WB FAQ/thirdparty-modbus-devices-conection | Как подключить стороннее Modbus-устройство]] | |||
* [https://github.com/contactless/wb-mqtt-serial Описание wb-mqtt-serial на Github] | |||
* [[Modbus|Описание протокола Modbus]] | |||
* [[RS-485|Описание шины RS-485]] |