В логах раз в несколько минут, иногда несколько раз в минуту, наблюдаю проблему:
23-07-2025 22:23:07.523 WARNING: [modbus] failed to read 2 coil(s) @ 5001 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: malformed response: invalid crc
23-07-2025 22:06:11.907 WARNING: [modbus] failed to read 1 input(s) @ 121 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: malformed response: invalid crc
23-07-2025 22:01:46.904 WARNING: [modbus] failed to read 1 input(s) @ 121 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: malformed response: invalid data size
23-07-2025 22:00:51.992 WARNING: [modbus] failed to read 2 coil(s) @ 5001 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: malformed response: invalid crc
23-07-2025 21:53:27.914 WARNING: [modbus] failed to read 12 coil(s) @ 0 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: request timed out
23-07-2025 21:52:44.912 WARNING: [modbus] failed to read 1 input(s) @ 121 of device </dev/ttyRS485-2 115200 8 N 2> modbus:29: Serial protocol error: request timed out
Проблема воспроизводиться на обоих портах RS485. Наиболее часто проявляется на скорости 115200. На 9600 реже, и, в основном, request timed out. Invalid crc на 9600 было, но давно и мало.
Проблема повторяется со всеми устройствами на обоих шинах. Устройств много (на одной шине WB-MR6C v.2 8шт., WB-MCM8 7шт., WB_LED 5шт., на другой датчики WB-MSW v.4) все прошивки обновлены до последних версий на 23.07.2025
Поставлены терминаторы
Из щита демонтирован контроллер и собран тестовый стенд с одним датчиком и терминатором и расположен в дали от всех электрических приборов и прочих помех
После всех шагов ошибки не уходят.
Не знаю куда копать. Условия почти лабораторные, а ошибки постоянно сыплются. Устройства в UI не краснеют, но я толком пока ничего из-за этих ошибок и не настраивал. Хочется получить стабильную быструю связь.
приложен диагностический архив, доступен только сотрудникам поддержки
Несколько раз в минуту с одним датчиком в условиях близких к стерильным. Поймите, правильно, у меня ещё 20 модулей в щите и 10 датчиков. Я хотел бы решить проблему с ошибками, а не искать приключения когда всё подключено и настроено.
Помехи генерить и ваш блок питания может. Не факт, но может. У вас единичные ошибки, и для Modbus RTU это обычное дело, практически не бывает таких систем, в которых ошибки обмена данными отсутствуют в принципе. CRC для того и придуман, чтобы “битые” пакеты отсекать. Весь вопрос в проценте этих ошибок. Если каждый второй пакет ошибочный - это все еще рабочая система, но надо разбираться, почему так. Если из (условно) 100 пакетов один битый - я бы не переживал.
Ну а меры для уменьшение процента ошибок известны:
специализированный кабель;
качественное функциональное заземление;
использование оборудования (тех же блоков питания) с высокими характеристиками по электромагнитной совместимости.
Самый простой критерий: если контролы в веб-интерфейсе контроллера не краснеют, значит, данные с нужным периодом контроллер получает. Т.е. все Ок. Если у вас есть требования по гарантированной доставке данных за гарантированное время - расскажите, какую задачу решаете, подумаем вместе.
По шагам соседней темы вставил модуль WBE2-I-RS485-ISO и подключил через него. Ошибки ушли!
Больше ничего не менял, ни место эксперимента, ни участников.
Почему так? Получается дело в контроллере?
Почему на изолированном порту ошибки не воспроизводятся? Мне нужно 3 шины (модули эл. щита, датчики, приводы штор) Как избавиться от ошибок на двух встроенных портах?