Ошибки invalid crc, invalid data size и request timed out

Wiren Board 8.5.1 (s/n AX3HO42B), release wb-2504

В логах раз в несколько минут, иногда несколько раз в минуту, наблюдаю проблему:

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 было, но давно и мало.

Какие попытки были проделаны:

  1. Прочитаны похожие соседние темы: 1 2
  2. Сброс к заводским настройкам
  3. Переключение на скорость 9600
  4. Проблема повторяется со всеми устройствами на обоих шинах. Устройств много (на одной шине WB-MR6C v.2 8шт., WB-MCM8 7шт., WB_LED 5шт., на другой датчики WB-MSW v.4) все прошивки обновлены до последних версий на 23.07.2025
  5. Поставлены терминаторы
  6. Из щита демонтирован контроллер и собран тестовый стенд с одним датчиком и терминатором и расположен в дали от всех электрических приборов и прочих помех
    После всех шагов ошибки не уходят.


Кабель VOKA EIB / KNX J-Y(St)Yh 2x2x0,8, на блоке питания LI100-20B24PR2 тоже самое.

Настройки порта и интерфейса


Не знаю куда копать. Условия почти лабораторные, а ошибки постоянно сыплются. Устройства в UI не краснеют, но я толком пока ничего из-за этих ошибок и не настраивал. Хочется получить стабильную быструю связь.

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

Добрый день.
Внешние наводки (помехи) исключены?
С точки зрения шины ошибка раз в минуту - вполне допустима и на работу не влияет.

Тестовый стенд на фото выше переносил в разные части квартиры, не помогло.

Я конечно могу вывезти это всё в чистое поле, но это не те условия которые ожидаешь от промышленной электроники.

В документации указано что ошибок быть не должно.

Несколько раз в минуту с одним датчиком в условиях близких к стерильным. Поймите, правильно, у меня ещё 20 модулей в щите и 10 датчиков. Я хотел бы решить проблему с ошибками, а не искать приключения когда всё подключено и настроено.

Помехи генерить и ваш блок питания может. Не факт, но может. У вас единичные ошибки, и для Modbus RTU это обычное дело, практически не бывает таких систем, в которых ошибки обмена данными отсутствуют в принципе. CRC для того и придуман, чтобы “битые” пакеты отсекать. Весь вопрос в проценте этих ошибок. Если каждый второй пакет ошибочный - это все еще рабочая система, но надо разбираться, почему так. Если из (условно) 100 пакетов один битый - я бы не переживал.
Ну а меры для уменьшение процента ошибок известны:

  • специализированный кабель;
  • качественное функциональное заземление;
  • использование оборудования (тех же блоков питания) с высокими характеристиками по электромагнитной совместимости.
1 лайк

На фото в первом сообщении блок питания для теста. В щите блок с сайта. С ним такие же ошибки.

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

Какой процент ошибок считать не нормальным?

Самый простой критерий: если контролы в веб-интерфейсе контроллера не краснеют, значит, данные с нужным периодом контроллер получает. Т.е. все Ок. Если у вас есть требования по гарантированной доставке данных за гарантированное время - расскажите, какую задачу решаете, подумаем вместе.

По шагам соседней темы вставил модуль WBE2-I-RS485-ISO и подключил через него. Ошибки ушли!
Больше ничего не менял, ни место эксперимента, ни участников.
Почему так? Получается дело в контроллере?

Вы совершили при подключении ошибку - не соединили Gnd шины. Напомню - это изолированный модуль.

Сделал, так?

Почему на изолированном порту ошибки не воспроизводятся? Мне нужно 3 шины (модули эл. щита, датчики, приводы штор) Как избавиться от ошибок на двух встроенных портах?

Проверил, взяв аналогичный набор оборудования. Нет ошибок.
Посмотрите пожалуйста - что именно возвращается при неудачных запросах.

Если в изолированный порт подключать у меня тоже нет ошибок. А вот если любой из двух встроенных сразу ошибки.

Вот логи. Для вашего удобства я указал время где происходит invalid crc:



wb-mqtt-serial_20250725T213726.log (18.8 KB)
wb-mqtt-serial_20250725T213726+.log (456.1 KB)

Я считаю, что я доказал, что проблема в контроллере и его встроенных портах RS-485.

Да. Это описано в Wiren Board 8: Errata — Wiren Board
Ну и - будет исправлено в следующих обновлениях.

1 лайк

Подскажите, когда проблема будет взята в работу и исправлена?