Здравствуйте.
Подскажите пожалуйста по какой причине значения на модуле сбрасываются на начальные во время работы.
Здравствуйте!
Пожалуйста, опишите ситуацию более подробно:
- Как подключено оборудование и какое ПО используется?
- Какие значения и в какой момент времени сбрасываются.
- Что при этом находится в соответствующих регистрах?
- Модуль напрямую подключен к контроллеру. Используются wb-rules.
- Изначально была использована штатная функция установки заданного напряжения при включении. Значение выставлено как 21% после включения модуля.
- В рандомный момент во время работы (напряжение от 3000 до 6000 мВ) напряжение на канале становится равным 21%
Может ли эта проблема быть связана с тем что не удаётся прочитать значение регистра на другом устройстве и WB перезагружает сеть?
All services (2025-05-19T11:40:20.255Z - 2025-05-19T11:40:12.875Z)
2025-05-19T11:40:20.255Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 102 of device modbus:50: Serial protocol error: request timed out
2025-05-19T11:40:19.455Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 102 of device modbus:50: Serial protocol error: request timed out
2025-05-19T11:40:17.445Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 103 of device modbus:50: Serial protocol error: request timed out
2025-05-19T11:40:16.762Z [init] wb-mqtt-mbgate.service: Consumed 1.150s CPU time.
2025-05-19T11:40:16.748Z [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 121 of device modbus:120: Serial protocol error: malformed response: invalid crc
2025-05-19T11:40:16.746Z [init] wb-mqtt-mbgate.service: Failed with result ‘signal’.
2025-05-19T11:40:16.745Z [init] wb-mqtt-mbgate.service: Main process exited, code=killed, status=6/ABRT
2025-05-19T11:40:16.741Z [wb-mqtt-mbgate] terminate called without an active exception
2025-05-19T11:40:16.741Z [wb-mqtt-mbgate] ERROR: [mbgate] FATAL: IO Error occured in server work cycle
2025-05-19T11:40:16.740Z [mosquitto] 1747654816: Client mqtt-mbgate-1747654816 closed its connection.
2025-05-19T11:40:16.720Z [wb-mqtt-mbgate] ERROR: [modbus] libmodbus error: Invalid CRC
2025-05-19T11:40:16.720Z [wb-mqtt-mbgate] ERROR: [modbus] libmodbus error: Invalid CRC
2025-05-19T11:40:16.400Z [mosquitto] 1747654816: New client connected from /var/run/mosquitto/mosquitto.sock:0 as mqtt-mbgate-1747654816 (p2, c0, k60).
2025-05-19T11:40:16.399Z [mosquitto] 1747654816: New connection from /var/run/mosquitto/mosquitto.sock:0 on port 0.
2025-05-19T11:40:16.397Z [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 3)
2025-05-19T11:40:16.397Z [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 2)
2025-05-19T11:40:16.397Z [wb-mqtt-mbgate] INFO: [mqtt] subscription succeeded (message id 1)
2025-05-19T11:40:16.397Z [wb-mqtt-mbgate] INFO: [mqtt] connection estabilished with code “0”
2025-05-19T11:40:16.393Z [wb-mqtt-mbgate] INFO: [mbgate] Start loops
2025-05-19T11:40:16.393Z [wb-mqtt-mbgate] INFO: [modbus] Modbus listening
2025-05-19T11:40:16.392Z [wb-mqtt-mbgate] INFO: [mqtt] UNIX socket exists, using it for connection
2025-05-19T11:40:16.392Z [wb-mqtt-mbgate] INFO: [mqtt] UNIX socket exists, using it for connection
2025-05-19T11:40:16.389Z [wb-mqtt-mbgate] INFO: [mqtt] Default host and port detected, checking if UNIX socket exists on /var/run/mosquitto/mosquitto.sock
2025-05-19T11:40:15.993Z [init] Started Wiren Board MQTT to Modbus TCP gateway.
2025-05-19T11:40:15.441Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 102 of device modbus:50: Serial protocol error: request timed out
2025-05-19T11:40:13.996Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 102 of device modbus:50: Serial protocol error: request timed out
2025-05-19T11:40:13.096Z [init] Starting Wiren Board MQTT to Modbus TCP gateway…
2025-05-19T11:40:13.090Z [init] wb-mqtt-mbgate.service: Consumed 1.067s CPU time.
2025-05-19T11:40:13.089Z [init] Stopped Wiren Board MQTT to Modbus TCP gateway.
2025-05-19T11:40:13.086Z [init] wb-mqtt-mbgate.service: Scheduled restart job, restart counter is at 233.
2025-05-19T11:40:12.875Z [wb-mqtt-serial] WARNING: [modbus] failed to read 1 holding(s) @ 102 of device modbus:50: Serial protocol error: request timed out
Возможные причины возврата на значение по умолчанию
- Сработала функция «Initial Value» в WB-MAO4:
- Если в конфигурации MAO4 включена установка значения при перезапуске (
Initial Value Enabled = true
), то при потере связи, сбое драйвера или перезапуске контроллера модуль может установить это значение (21%). В /etc/wb-mqtt-serial.conf
найдите MAO4 и проверьте параметр:
"initial_value_enabled": false
- Сброс MQTT-соединения:
- Судя по логам, происходит аварийный перезапуск
wb-mqtt-mbgate
(критическая ошибка:terminate called without an active exception
,Failed with result ‘signal’
). - При этом соединение с Mosquitto прерывается и пересоздаётся.
wb-mqtt-serial
получает таймауты и ошибки CRC:
- Это может указывать на проблемы на шине RS-485 — возможно, наводки, плохой контакт, неподходящий кабель, отсутствующий терминатор, неправильная скорость.
- Эти ошибки могут приводить к «зависанию» Modbus-опроса и сбоям в логике
wb-rules
, если вы полагаетесь на регулярную установку значений через правила.
- Правила в
wb-rules
не переустанавливают значение:
- Если напряжение было установлено один раз в начале и больше не обновляется — то при сбросе оно не восстанавливается.
- Если
wb-mqtt-serial
или MQTT не публикует значение в топик — напряжение на выходе WB-MAO4 остаётся тем, что было задано в самом модуле (в данном случае 21%).
- Функция установка значения при перезапуске отключена.
- По какой причине такое может происходить? Как решить эту проблему?
- Попробую оставить только контроллер и модуль в сети. Остальное уберу.
- Убедитесь, что на WB-MAO4 используете актуальную версию прошивки — 2.6.3.
- Проверьте настройки “Поведение при отключении питания” и “Безопасный режим”. Отключите действия, если их не используете.
Если есть возможность, то вышлите правило ,которым управляете устройством.
- Если после исключения лишних устройств проблема повторится, то сформируйте и вышлите архив с диагностической информацией контроллера. Создание архива описано в документации.
Добрый день!
Удалось проверить WB-MAO4 по вышеприведенным рекомендациям?
Добрый день.
- Модуль обновил до актуальной версии.
- Действия при безопасном режиме отключено.
- Правило управляется из web-интерфейса, поэтому без нажатия кнопки не работает.
- Лишние устройства были отключены.
Контроллер пришлось заменить на другой в процессе тестов.
По итогу проблем не наблюдалось. Даже после подключения в сеть ещё одного WB-MAO4, одного WB-MAI6 и частотного преобразователя.
При изменении настроек устройств перезагружался wb-mqtt-serial, из-за чего значения на канале WB-MAO4 сбрасывались до 21%.
Как я понимаю - это только на одном WB-MAO4, а с другим такого не наблюдалось?
На другом модуле изначально были выставлены значения, которые были нужны и после не менялись.
Возможно, если установить на нём любое значение, а потом перезапустить wb-mqtt-serial, то произойдёт такой же сброс на начальные значения.
Надо пробовать
Попробую воспроизвести у себя.
К сожалению воспроизвести не удалось.
Следует обратить внимание на правильность установки регистров в разделе Поведение диммера при включении питания и Безопасный режим.
Убрать влияние wb-rules. Возможно в правилах имеется ошибка.