Столкнулся с неадекватным поведением системы после конфигурирования.
Что было: WB6+DI-WD-14+DO-R10A и внешнее MR6C. Всё работало.
Что сделал: Отключил физически MR6C и подключил MRPS6/S. В web конфигурации на тот же RS добавил MRPS6/S и MWAC (его не подключал совсем, купил на будущее). При этом MR6C и MWAC в свойствах пометил как отключенные. В Девайсах появился MRPS6/S, но не MWAC.
И всё работало пока не перезапустил WB6 по питанию. После этого система стала неадекватно работать. MRPS6/S то опрашивается, то нет. DI-WD-14 с DO-R10A вообще перестали отслеживать состояние и управляться из web. Перезапуск из программы иногда отпускал работу MRPS6/S, но не боковые модули.
Решилось только после того, как удалил из конфигурации полностью MR6C и MWAC.
Видимо, какой-то баг в ПО есть.
Попробую воспроизвести, интересно.
Сделайте, пожалуйста, следующее:
- Соберите и пришлите конфигурацию с минимальным количеством устройств, на которой видна проблема.
- Пришлите её фотографию общим планом, чтобы было видно, как и что подключено.
- Пришлите скриншоты из интерфейса.
- Измерьте напряжение питания на всех устройствах, и тоже напишите сюда.
- Отдельно сфотографируйте блок питания, чтобы было видно мощность.
Получил на объекте ситуацию: Контроллер после последней перезагрузки проработал примерно 22 дня и прекратился опрос устройств Modbus, перестали обрабатывается правила.
В логе этот момент ,судя по всему произошел после этих строк (лог прилагаю):
Oct 14 06:27:47 wirenboard-AZPUXWBH user.notice serial: terminate called after throwing an instance of ‘std::logic_error’
Oct 14 06:27:47 wirenboard-AZPUXWBH user.notice serial: what(): basic_string::_M_construct null not valid
messages.txt (3.9 МБ)
На следующее утро контроллер перезагрузили и все заработало.
Еще заметил, что ротация логов, которая делается каждые сутки в 6:25 не была выполнена после этого зависания пока контроллер не перезагрузили
На всякий случай информация: setInterval используется в скрипте 4 раза со следующими значениями : 3 сек, 5 сек, 10 сек , 1 час.
Схема состоит из 15 шкафов по одному блоку WB-MR6+WB-MGE, соединенных по локальной сети.
Куда копать?
Еще: В логе часто встречаются строки вида:
user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 discrete(s) @ 7 of device modbus:36: Serial protocol error: request timed out
Собрал макет и обнаружил, что такие строки появляются даже, если 1 шт MGE подключена рядом с контроллером через отдельный коммутаторе (а не как на объекте через кучу узлов и VLAN, изначально грешил на это).
Установив в wb-mqtt-serial.conf для данного TCP соединения Desired poll interval (ms): 2000 получилось избавиться от этих ошибок
Добрый день.
Для начала - какая версия драйвера установлена?
dpkg -s wb-mqtt-serial | grep Version
Актуальная 1.63.0
Добрый день. Объект удаленный, поэтому сразу не отвечу.
Как правильно обновить и что может пострадать из конфигов при обновлении?
Обновляется штатно,
apt update && apt upgrade -y
Перед заменой конфигов выводится вопрос - использовать от разработчика или существующий. Если выбрать “разработчика” - конфиг будет заменен на умолчальный. Если нет - то останется.