Периодически возникает ошибка связи по RS485

Здравствуйте.

Контроллер:

Batch No : 7.3.1B/2GC/2 636
HW Revision : 7.3.1
Release name : wb-2310

Периодически в системном журнале появляются записи вида:

09-01-2024 09:38:06.469 WARNING: [modbus] failed to read 1 input(s) @ 32 of device modbus:83: Serial protocol error: request timed out
09-01-2024 09:38:06.377 WARNING: [modbus] failed to read 1 discrete(s) @ 7 of device modbus:73: Serial protocol error: request timed out
09-01-2024 09:38:06.285 WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:73: Serial protocol error: request timed out
09-01-2024 09:38:06.193 WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
09-01-2024 09:38:06.193 WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
09-01-2024 09:38:06.140 WARNING: [serial client] Reading events failed: Serial protocol error: request timed out

На порт подключено 6 устройств WB-MR6C. Подключение выполнено витой парой, длина линии не более 1 м. Лечится перезагрузкой.

Еще помогает в настройках порта включить/отключить порт

Добрый день.
Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Понял. Спасибо

Архив

приложен диагностический архив, доступен только сотрудникам поддержки
(177,7 КБ)

Подскажите пожалуйста, как давно обновляли прошивку?
Попробуйте выполнить обновление до последней версии и понаблюдать за логами.

Обновлял в ноябре прошивку на контроллере и на всех устройствах. Порт отваливался до обновления, отваливается и после

думаю далее вам предложат обновиться на текущий стабильный релиз и проверить всю проводку , отключить лишнее, поставить терминатор и т.п… иногда это и правда помогает…
но сколько я не бился с serial драйвером - работает через ухо…
в каких-то сочетаниях прошивок и версиях работает \ потом перестает. даже в стабильной ветке… уследить за всеми изменениями сочетаний - задача дохлая.
Если давно не трогали настройки опроса устройств - может имеет смысл провести ревизию - там есть новые варианты и что-то постепенно выпиливают.

1 лайк

Я по тексту ответа специалиста поддержки так и понял.
По поводу резистора на конце линии - это мысль. На одном порту у меня датчики температуры, в документации сказано, что там не обязательно, а на этом порту реле и про резистор я забыл ! Спасибо, в выходные попробую.

Кроме обновления есть варианты поиска проблемы?

Тут всё-таки, скорее всего, какая-то физическая проблема, поэтому да, я бы посоветовал начать с проверки шины и установки терминатора.
По логу достаточно мало информации об ошибках видно, и тип сообщений WARNING это не ошибка, а предупреждение, после предупреждения связь восстанавливается сразу.

Понял. На выходных попробую.

Ну уж нет…
Достаточно взять анализатор - и посмотреть в шину. В ней нет магии, совсем. Если диффсигнал “хороший” - то устройство получившее корректный modbus запрос обязано на него ответить.
Ну и можно отследить естественно вопрос-ответ.

Анализатор это осциллограф ?

Да, можно и осциллограф с анализатором использовать.
Даже простенький ригол DS1054* умеет UART разбирать.
Но, в общем это если надо именно отследить опрос какого-то устройства, то есть далеко не всегда.
Обычно, да еще в поле - и простого карманного одноканального хватает оценить фронты-срезы.

Спасибо

Увы - “взять осцилограф” - это не для конечного пользователя.
тут как всегда разрыв в понятиях что для кого просто, а что нет.
Одолжите на пару недель? :slight_smile:

А что возвращает опрос модулей с помощью modbus_client?
В частности - 104 и 105 input регистров? Какое наприяжение питания модулей, есть ли просадки?

Собственно, оборудование - промышленный контроллер, его пусконаладка подразумевает приборы. То есть - этим занимаются не пользователи, ни в коем случае.
Без инструментов - как? Ну, да, если делать заведомо по требованиям для шины - то в огромном большинстве случаев все работает сразу. Но при необходимости найти причину неполадок с ними проще.

Если вопрос ко мне - опрос регистров 104/105 (время работы?) идет нормально при выключенном wb-serial. При работающем wb-serial естественно ошибки через раз.
Одно время мониторил напряжение на ряде модулей - всё ок (24В) и никаких просадок и корреляции с ошибками чтения устройств не выявил.

Оборудование то промышленное, но позиционировалось как “контроллер для умного дома” - а это предполагает кучу людей хотящих чтобы всё работало “из коробки”. И они таки правы (ибо клиенты)! В будущем постараюсь меньше ворчать.

Сейчас на работе, смогу посмотреть регистры вечером