How to diagnose: различия между версиями
(не показано 26 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | {{DISPLAYTITLE: Диагностика ошибок в работе контроллера Wiren Board}} | ||
[[Image: journalctl — logs.png |400px|thumb|right| Просмотр системного журнала с помощью journalctl]] | [[Image: journalctl — logs.png |400px|thumb|right| Просмотр системного журнала с помощью journalctl]] | ||
[[Image: | [[Image: WebUI 2.0 — logs.png |400px|thumb|right| Просмотр системного журнала в веб-интерфейсе контроллера Wiren Board {{SupportedSinceRelease|release=wb-2110|nobanner=true}}]] | ||
== Введение == | == Введение == | ||
Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. | Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. | ||
Строка 9: | Строка 9: | ||
Читать журналы можно двумя способами: | Читать журналы можно двумя способами: | ||
* из консоли с помощью [[journalctl]]. | * из консоли с помощью [[journalctl]]. | ||
* из веб-интерфейса с помощью | {{SupportedSinceRelease | ||
| release = wb-2110 | |||
|content= | |||
* из веб-интерфейса с помощью [[Wiren Board Web Interface#logs | инструмента Logs]]. | |||
}} | |||
Цель диагностики — локализовать и устранить неисправность, общий алгоритм: | Цель диагностики — локализовать и устранить неисправность, общий алгоритм: | ||
# Сформулируйте проблему: контроллер перезагружается или не включается, Modbus-устройство работает нестабильно, не работает 4G-модем, не работает веб-интерфейс и т.д. | # Сформулируйте проблему: контроллер перезагружается или не включается, Modbus-устройство работает нестабильно, не работает 4G-модем, не работает веб-интерфейс и т.д. | ||
# Смотрите, есть ли в системном журнале ошибки. Прочитайте разделы [[#Основы|Основы]] и [[#Примеры типовых неисправностей |Примеры типовых неисправностей]] — это даст вам понимание того, как всё устроено и поможет понять, что именно искать. | # Смотрите, есть ли в системном журнале ошибки. Прочитайте разделы [[#Основы|Основы]] и [[#Примеры типовых неисправностей |Примеры типовых неисправностей]] — это даст вам понимание того, как всё устроено и поможет понять, что именно искать. | ||
# Если нашли в журнале ошибки — внимательно прочитайте их, они дадут понимание того, что происходит и кто виноват. Дополнительно поищите упоминание проблемы на | # Если нашли в журнале ошибки — внимательно прочитайте их, они дадут понимание того, что происходит и кто виноват. Дополнительно поищите упоминание проблемы на форуме техподдержки, возможно, кто-то уже с ней сталкивался и есть готовое решение. | ||
# Если из текста ошибки и результатов поиска на форуме непонятно, что происходит — проверьте, что вы используете свежую версию ПО. Если это не так — | # Если из текста ошибки и результатов поиска на форуме непонятно, что происходит — проверьте, что вы используете [[Wiren Board Firmware Update| свежую версию ПО]]. Если это не так — обновите прошивку контроллера. | ||
В случае, если вы не смогли самостоятельно определить | В случае, если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на [https://support.wirenboard.com форуме техподдержки], подробно опишите проблему и приложите записи системного журнала или [[Wiren_Board_Web_Interface#Settings -> System (Настройки -> Системные) |архив с диагностической информацией]]. Если ошибка связана с serial-устрйоствами, приложите файл настроек <code>/etc/wb-mqtt-serial.conf</code>. | ||
Обмен файлами с контроллером можно организовать по протоколу SFTP(SSH File Transfer Protocol) | Обмен файлами с контроллером можно организовать по протоколу SFTP(SSH File Transfer Protocol). Подробные инструкции смотрите в статье [[View controller files from your computer|Просмотр файлов контроллера с компьютера]]. | ||
== Основы == | == Основы == | ||
=== Как устроено ПО контроллера === | === Как устроено ПО контроллера === | ||
[[File: | [[File:MQTT.png | thumb | 600px | Через [[MQTT]] работают драйверы внутренних функций, внешних устройств, веб-интерфейс, система правил]] | ||
В основе программной архитектуры Wiren Board — MQTT-брокер, в который пишут информацию различные сервисы wb: | В основе программной архитектуры Wiren Board — MQTT-брокер, в который пишут информацию различные сервисы wb: | ||
Строка 48: | Строка 52: | ||
=== Полезные команды === | === Полезные команды === | ||
Команды ниже выполняются в консоли контроллера, подключиться к которой можно через [[SSH]] или [[Debug UART | отладочный порт]]. | Команды ниже выполняются в консоли контроллера, подключиться к которой можно через [[SSH]] или [[Debug UART | отладочный порт]]. | ||
Посмотреть, когда был запущен контроллер: | Посмотреть, когда был запущен контроллер: | ||
Строка 94: | Строка 96: | ||
/dev/mmcblk0p6 4.7G 1.1G 3.4G 24% /mnt/data | /dev/mmcblk0p6 4.7G 1.1G 3.4G 24% /mnt/data | ||
tmpfs 50M 0 50M 0% /run/user/0 | tmpfs 50M 0 50M 0% /run/user/0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 136: | Строка 104: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Проверить статус сервиса и посмотреть его последние 10 сообщений в системном журнале можно командой <code>service <имя сервиса> status</code>: | |||
Проверить статус сервиса и посмотреть его последние 10 сообщений в системном журнале можно командой <code> | |||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # service wb-mqtt-serial status | ||
● wb-mqtt-serial.service - MQTT Driver for serial devices | ● wb-mqtt-serial.service - MQTT Driver for serial devices | ||
Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled) | Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled) | ||
Строка 157: | Строка 124: | ||
Nov 09 10:11:34 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 1 discrete(s) @ 4 of device modbus:58: Serial protocol error: request timed out | Nov 09 10:11:34 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 1 discrete(s) @ 4 of device modbus:58: Serial protocol error: request timed out | ||
Nov 09 10:12:15 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:58: Serial protocol error: request timed out | Nov 09 10:12:15 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:58: Serial protocol error: request timed out | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Примеры типовых неисправностей == | == Примеры типовых неисправностей == | ||
=== | === Serial-устройства работают нестабильно === | ||
Если устройства, подключённые к портам RS-485 работают нестабильно — проверьте [[RS-485:Физическое подключение|физическое подключение]]. Несоблюдение рекомендаций по организации шины RS-485, плохой контакт в клеммах и обрывы на линии — частые причины проблем. | |||
Узнать, с каким именно устройством проблемы, можно: | Узнать, с каким именно устройством проблемы, можно: | ||
* в веб-интерфейсе контроллера, на вкладке ''Devices'' — каналы такого устройства будут окрашены красным; | * в веб-интерфейсе контроллера, на вкладке ''Devices'' — каналы такого устройства будут окрашены красным; | ||
Строка 203: | Строка 136: | ||
Если ошибок обмена в сообщениях драйвера нет, но устройство не работает — включите вывод отладочных сообщений. Как это сделать, смотрите в описании драйвера [[wb-mqtt-serial#Включение отладки | wb-mqtt-serial]]. | Если ошибок обмена в сообщениях драйвера нет, но устройство не работает — включите вывод отладочных сообщений. Как это сделать, смотрите в описании драйвера [[wb-mqtt-serial#Включение отладки | wb-mqtt-serial]]. | ||
После того как вы определились с проблемным устройством — подключите его | После того как вы определились с проблемным устройством — подключите его на отдельный порт RS-485, настройте и добейтесь стабильной работы: проверьте параметры подключения, снизьте скорость обмена, убедитесь, что в устройстве выставлен верный стоп-бит. | ||
Диагностика устройств, которые работают по протоколу Mosbus TCP или Modbus Over TCP почти не отличается от тех, что подключены к контроллеру по RS-485. Разница лишь в том, что у вас добавляется ещё одно звено — локальная сеть, через которую подключены устройства. | Диагностика устройств, которые работают по протоколу Mosbus TCP или Modbus Over TCP почти не отличается от тех, что подключены к контроллеру по RS-485. Разница лишь в том, что у вас добавляется ещё одно звено — локальная сеть, через которую подключены устройства. | ||
=== Не работают модули WBIO === | === Не работают модули WBIO === | ||
Строка 256: | Строка 154: | ||
Перед началом диагностики, попробуйте просто перезагрузить страницу с очисткой кэша браузера — часто помогает. Обычно это можно сделать нажатием клавиш <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>R</kbd> или <kbd>Ctrl</kbd>+<kbd>F5</kbd> — комбинация зависит от вашего браузера. | Перед началом диагностики, попробуйте просто перезагрузить страницу с очисткой кэша браузера — часто помогает. Обычно это можно сделать нажатием клавиш <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>R</kbd> или <kbd>Ctrl</kbd>+<kbd>F5</kbd> — комбинация зависит от вашего браузера. | ||
Если это не помогло | Если это не помогло — ищите в логах сообщения от ''wb-mqtt-serial'' и ''wb-mqtt-confed''. Особенно интересны сообщения типов ''error'' и ''warning''. | ||
=== Контроллер перезагружается === | === Контроллер перезагружается === | ||
Строка 277: | Строка 173: | ||
* индикатор загорается и спустя пару минут начинает мигать зелёным — ОС контроллера загрузилась: попробуйте подключиться к нему по [[SSH]]. Если это удалось, точнее сформулируйте неисправность: не заходит в веб-интерфейс, не работают подключённые устройства и т.п. Потом начинайте диагностику. | * индикатор загорается и спустя пару минут начинает мигать зелёным — ОС контроллера загрузилась: попробуйте подключиться к нему по [[SSH]]. Если это удалось, точнее сформулируйте неисправность: не заходит в веб-интерфейс, не работают подключённые устройства и т.п. Потом начинайте диагностику. | ||
Описание состояний индикатора контроллера смотрите в [[Wiren Board#Индикация этапов загрузки | документации]] | Описание состояний индикатора контроллера смотрите в [[Wiren Board#Индикация этапов загрузки | документации]]. | ||
== Полезные ссылки == | == Полезные ссылки == | ||
* [[Заглавная страница | Документация устройств Wiren Board]] — описание устройств, схемы подключения, инструкции по обновлению и т.п. | * [[Заглавная страница | Документация устройств Wiren Board]] — описание устройств, схемы подключения, инструкции по обновлению и т.п. | ||
* [https://support.wirenboard.com | * [https://support.wirenboard.com Форум технической поддержки] — техподдержка и помощь сообщества. | ||
* [[WB_FAQ| Ответы на часто задаваемые вопросы (FAQ)]] — сборник полезных советов и ссылок. | * [[WB_FAQ| Ответы на часто задаваемые вопросы (FAQ)]] — сборник полезных советов и ссылок. | ||
Версия 10:12, 9 ноября 2021
Введение
Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала.
В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит ему занять всё свободное пространство.
Читать журналы можно двумя способами:
- из консоли с помощью journalctl.
- из веб-интерфейса с помощью инструмента Logs.
Цель диагностики — локализовать и устранить неисправность, общий алгоритм:
- Сформулируйте проблему: контроллер перезагружается или не включается, Modbus-устройство работает нестабильно, не работает 4G-модем, не работает веб-интерфейс и т.д.
- Смотрите, есть ли в системном журнале ошибки. Прочитайте разделы Основы и Примеры типовых неисправностей — это даст вам понимание того, как всё устроено и поможет понять, что именно искать.
- Если нашли в журнале ошибки — внимательно прочитайте их, они дадут понимание того, что происходит и кто виноват. Дополнительно поищите упоминание проблемы на форуме техподдержки, возможно, кто-то уже с ней сталкивался и есть готовое решение.
- Если из текста ошибки и результатов поиска на форуме непонятно, что происходит — проверьте, что вы используете свежую версию ПО. Если это не так — обновите прошивку контроллера.
В случае, если вы не смогли самостоятельно определить причину ошибок в работе контроллера, создайте тему на форуме техподдержки, подробно опишите проблему и приложите записи системного журнала или архив с диагностической информацией. Если ошибка связана с serial-устрйоствами, приложите файл настроек /etc/wb-mqtt-serial.conf
.
Обмен файлами с контроллером можно организовать по протоколу SFTP(SSH File Transfer Protocol). Подробные инструкции смотрите в статье Просмотр файлов контроллера с компьютера.
Основы
Как устроено ПО контроллера
![](/wiki/images/9/95/MQTT.png)
В основе программной архитектуры Wiren Board — MQTT-брокер, в который пишут информацию различные сервисы wb:
- wb-mqtt-adc — драйвер аналоговых входов
- wb-mqtt-dac — драйвер аналоговых выходов
- wb-mqtt-confed — конфигуратор в WebUI
- wb-mqtt-db — хранение архива данных
- wb-mqtt-gpio — драйвер для работы с GPIO
- wb-mqtt-knx — мост KNX
- wb-mqtt-mbgate — шлюз MQTT-ModbusRTU/TCP
- wb-mqtt-opcua — шлюз MQTT-OPC UA
- wb-mqtt-serial — драйвер для serial-устройств
- wb-mqtt-w1 — драйвер для 1-Wire
Кроме этого, есть сервисы, которые реализуют дополнительные функции:
- watchdog — сторожевой таймер
- wb-hwconf-manager — драйвер модулей расширения
- wb-rules — движок правил
Подробнее читайте в статье Программное обеспечение Wiren Board.
На контроллер Wiren Board можно установить ПО сторонних разработчиков, которое может сбоить и блокировать нормальную работу контроллера — помните об этом. В большинстве случаев стороннее программное обеспечение так же оставляет записи в системном журнале.
Полезные команды
Команды ниже выполняются в консоли контроллера, подключиться к которой можно через SSH или отладочный порт.
Посмотреть, когда был запущен контроллер:
# who -b
system boot Nov 4 13:43
Узнать, когда контроллер перезагружался:
# last -x reboot
reboot system boot 5.10.35-wb6 Thu Nov 4 13:43 still running
reboot system boot 5.10.35-wb6 Thu Nov 4 10:39 still running
Посмотреть текущую версию прошивки контроллера:
# wb-release
Wirenboard release wb-2108 (as stable), target wb6/stretch
Узнать версию пакета можно с помощью команды apt policy <имя пакета>
, например, узнаем версию wb-mqtt-serial:
# apt policy wb-mqtt-serial
wb-mqtt-serial:
Installed: 2.22.1-wb5
Candidate: 2.22.1-wb5
Version table:
*** 2.22.1-wb5 990
990 http://deb.wirenboard.com/wb6/stretch stable/main armhf Packages
100 /var/lib/dpkg/status
Узнать, сколько свободного места на eMMC:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 976M 581M 329M 64% /
devtmpfs 240M 0 240M 0% /dev
tmpfs 248M 0 248M 0% /dev/shm
tmpfs 248M 584K 248M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 248M 0 248M 0% /sys/fs/cgroup
/dev/mmcblk0p6 4.7G 1.1G 3.4G 24% /mnt/data
tmpfs 50M 0 50M 0% /run/user/0
Посмотреть, какое ядро загружено:
# uname -a
Linux wirenboard-AYXIHFQ6 5.10.35-wb6 #1 Thu Sep 30 00:33:57 UTC 2021 armv7l GNU/Linux
Проверить статус сервиса и посмотреть его последние 10 сообщений в системном журнале можно командой service <имя сервиса> status
:
# service wb-mqtt-serial status
● wb-mqtt-serial.service - MQTT Driver for serial devices
Loaded: loaded (/lib/systemd/system/wb-mqtt-serial.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-11-08 22:21:59 +04; 12h ago
Main PID: 8180 (wb-mqtt-serial)
CGroup: /system.slice/wb-mqtt-serial.service
└─8180 /usr/bin/wb-mqtt-serial
Nov 09 02:29:54 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 6 coil(s) @ 0 of device modbus:241: Serial protocol error: request timed out
Nov 09 02:46:10 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:58: Serial protocol error: request timed out
Nov 09 02:46:41 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:58: Serial protocol error: request timed out
Nov 09 02:53:57 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:241: Serial protocol error: request timed out
Nov 09 03:54:33 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:241: Serial protocol error: request timed out
Nov 09 05:39:59 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 3 discrete(s) @ 0 of device modbus:111: Serial protocol error: request timed out
Nov 09 06:50:47 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 1 holding(s) @ 0 of device modbus:58: Serial protocol error: request timed out
Nov 09 08:47:36 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:58: Serial protocol error: request timed out
Nov 09 10:11:34 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 1 discrete(s) @ 4 of device modbus:58: Serial protocol error: request timed out
Nov 09 10:12:15 wirenboard-AYXIHFQ6 wb-mqtt-serial[8180]: WARNING: [modbus] failed to read 2 input(s) @ 270 of device modbus:58: Serial protocol error: request timed out
Примеры типовых неисправностей
Serial-устройства работают нестабильно
Если устройства, подключённые к портам RS-485 работают нестабильно — проверьте физическое подключение. Несоблюдение рекомендаций по организации шины RS-485, плохой контакт в клеммах и обрывы на линии — частые причины проблем.
Узнать, с каким именно устройством проблемы, можно:
- в веб-интерфейсе контроллера, на вкладке Devices — каналы такого устройства будут окрашены красным;
- в сообщениях драйвера wb-mqtt-serial — ищите ошибки обмена error и warning. Если сообщения об ошибках обмена возникают периодически — повод проверить физическое подключение устройств.
Если ошибок обмена в сообщениях драйвера нет, но устройство не работает — включите вывод отладочных сообщений. Как это сделать, смотрите в описании драйвера wb-mqtt-serial.
После того как вы определились с проблемным устройством — подключите его на отдельный порт RS-485, настройте и добейтесь стабильной работы: проверьте параметры подключения, снизьте скорость обмена, убедитесь, что в устройстве выставлен верный стоп-бит.
Диагностика устройств, которые работают по протоколу Mosbus TCP или Modbus Over TCP почти не отличается от тех, что подключены к контроллеру по RS-485. Разница лишь в том, что у вас добавляется ещё одно звено — локальная сеть, через которую подключены устройства.
Не работают модули WBIO
Сперва проверьте правильность подключения и настройки.
Если модули правильно подключены и настроены, но не работают:
- В настройках контроллера удалите все модули ввода-вывода.
- Выключите контроллер и физически отключите от него все модули, кроме одного.
- Включите контроллер и настройте оставшийся модуль по инструкции.
- Если модуль появился в веб-интерфейсе на странице Devices — проверьте его работу.
Если подключённый модуль работает без проблем — добавляйте новые модули по одному и не забывайте конфигурировать их в веб-интерфейсе. Дальше у вас или все модули заработают, или вы найдёте тот, который влияет на работу других.
Не открывается страница конфигурации устройств
Перед началом диагностики, попробуйте просто перезагрузить страницу с очисткой кэша браузера — часто помогает. Обычно это можно сделать нажатием клавиш Ctrl+Shift+R или Ctrl+F5 — комбинация зависит от вашего браузера.
Если это не помогло — ищите в логах сообщения от wb-mqtt-serial и wb-mqtt-confed. Особенно интересны сообщения типов error и warning.
Контроллер перезагружается
Контроллер может перезагружаться по ряду причин:
- Нестабильное питание — просадки напряжения питания ниже допустимого значения могут вызвать перезагрузку.
- Нехватка места на eMMC.
- Зависание программ и сервисов — сработает watchdog, которые перезагрузит контроллер.
- Перезагрузка вызвана пользователем, например, командой
shutdown -r now
.
Сперва стоит проверить качество питания: уровень напряжения, отсутствие «просадок». Попробуйте подключить контроллер к другому блоку питания.
Если питание стабильно, то причину перезагрузки ищите в сообщениях watchdog и ядра ОС Linux (dmesg). Если контроллер перезагружается в цикле и вы не можете попасть в консоль, попробуйте отключить watchdog.
Контроллер не включается
Здесь нужно определиться, что происходит — подайте питание на контроллер, включите его кнопкой и следите за индикатором:
- прошла минута, но индикатор не загорается — аппаратная проблема: нет питания, неисправно «железо» контроллера. Если питание в норме и контроллер на гарантии — обратитесь в техподдержку для замены или ремонта.
- индикатор загорается, но даже через две-три минуты остаётся красного или оранжевого цвета — не загружается ОС: подключитесь к отладочному порту контроллера, перезагрузите его и смотрите сообщения в консоли.
- индикатор загорается и спустя пару минут начинает мигать зелёным — ОС контроллера загрузилась: попробуйте подключиться к нему по SSH. Если это удалось, точнее сформулируйте неисправность: не заходит в веб-интерфейс, не работают подключённые устройства и т.п. Потом начинайте диагностику.
Описание состояний индикатора контроллера смотрите в документации.
Полезные ссылки
- Документация устройств Wiren Board — описание устройств, схемы подключения, инструкции по обновлению и т.п.
- Форум технической поддержки — техподдержка и помощь сообщества.
- Ответы на часто задаваемые вопросы (FAQ) — сборник полезных советов и ссылок.