WB 8.5.1. unstable.latest testing
В одном щите размещены контроллер + WBIO-DO-R1G-16, 7 * WB-LED, 4 * WB-MAI6, 2 * (WB-MIO + 2 * WB-DO-SSR-8 + 2 * WB-DO-R10R-4), WB-MWAC v.2, в соседнем щите WB-MAP3E. Шина RS-485 подключена к /ttyRS485-1 на скорости 115200 c включенным терминатором в контроллере и с терминирующим резистором на WB-MAP3E. Версии прошивок во всех модулях самые свежие.
Суммарное количество регистров опроса ~220, по 5мс – 1100мс.
Опрос выходов SSR8, R10R-4 мне фактически не нужен – поставил период опроса канала раз в сутки (86400000мс). Знаю, что большие значения не рекомендуются, но «правильных» напутствий от WB как убрать каналы из очереди опроса, оставив при этом mqtt-топик, не нашёл.
Входы WB-LED не задействованы, а выходы я получаю благодаря быстрому Modbus – поэтому регулярный период опроса по ним мне не нужен – также ставлю период опроса выходных каналов раз в сутки. Входы не опрашиваю.
На MAI6 заведены NTC датчики температуры (36шт.) и три датчика давления 4-20мА. Опрос раз в минуту достаточен – поставил период опроса каналов в 60000мс.
На MAP3E и MWAC v.2 суммарно ~35 каналов. Большинство опрашивается «в порядке очереди».
Исходя из своих настроек, полагаю, что, опрашивая каналы раз в сутки, я их фактически исключил из очереди опросов, и допускаю ошибки на шине именно в момент опроса ВСЕХ каналов (раз в сутки). Оставшиеся каналы по моим подсчетам укладываются в 430мс (даже если их все поставить «в порядке очереди»). Тем не менее на шине перманентно имею ошибки invalid CRC
и invalid data size
. Понимаю, что ошибки допустимы, мнение WB об этом неоднократно видел в сообщениях поддержки. Условия монтажа и расположения не «стерильные», просто пытался минимизировать количество ошибок (перфекционизм). Что пробовал сделать: заменил изначально сделанную шину в щите на специализированную многожильную витую пару RS-485 с волновым сопротивлением 120 Ом, увеличил таймаут ответа на ttyRS485-1 до 2000мс, игрался с разными периодами опроса каналов – существенной зависимости и исчезновения ошибок CRC не добился. Рассматривал приобретение WBE2-I-RS485-ISO для снижения количества каналов на интерфейс. Текущее состояние – 20-30 ошибок в час, ~500 ошибок в сутки.
24-07-2025 14:57:59.046 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:56:21.957 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:52:34.859 [wb-mqtt-serial] WARNING: [modbus] failed to read 12 input(s) @ 5136 of device modbus:42: Serial protocol error: malformed response: invalid crc
24-07-2025 14:52:23.519 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:41:05.460 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:40:57.432 [wb-mqtt-serial] WARNING: [modbus] failed to read 10 input(s) @ 5136 of device modbus:42: Serial protocol error: malformed response: invalid crc
24-07-2025 14:40:47.236 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:39:18.113 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:38:49.653 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 1068 of device modbus:145: Serial protocol error: malformed response: invalid crc
24-07-2025 14:37:47.073 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:36:07.637 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:29:29.074 [wb-mqtt-serial] WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:145: Serial protocol error: malformed response: invalid crc
24-07-2025 14:27:10.480 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 1068 of device modbus:145: Serial protocol error: malformed response: invalid crc
24-07-2025 14:24:03.164 [wb-mqtt-serial] WARNING: [modbus] failed to read 12 input(s) @ 5136 of device modbus:42: Serial protocol error: malformed response: invalid crc
24-07-2025 14:21:05.516 [wb-mqtt-serial] WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:145: Serial protocol error: malformed response: invalid data size
24-07-2025 14:17:02.390 [wb-mqtt-serial] WARNING: [modbus] failed to read 2 input(s) @ 17666 of device modbus:173: Serial protocol error: malformed response: invalid crc
24-07-2025 14:15:20.661 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:09:22.421 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:08:39.788 [wb-mqtt-serial] WARNING: [modbus] failed to read 6 discrete(s) @ 0 of device modbus:145: Serial protocol error: malformed response: invalid crc
24-07-2025 14:06:03.830 [wb-mqtt-serial] WARNING: [modbus] failed to read 4 input(s) @ 13568 of device modbus:73: Serial protocol error: malformed response: invalid crc
24-07-2025 14:02:09.139 [wb-mqtt-serial] WARNING: [modbus] failed to read 1 input(s) @ 4284 of device modbus:42: Serial protocol error: malformed response: invalid crc
Примечание: модули с адресами 42 = MAP3E; 73, 173 = MAI6; 145 = MWAC v.2
Наткнулся в ТГ чате на возможность использования преобразователя Waveshare USB to 4*RS485
. Для проверки работоспособности этого устройства перекинул на один его вход всю шину ttyRS485-1, скопировал в web-интерфейсе в ttyACM1 все модули WB, затем удалил их в ttyRS485-1, настройки порта ttyACM1 идентичны ttyRS485-1, за исключением того, что таймаут ответа на ttyACM1 я вообще не устанавливал (по умолчанию 500мс?).
После переноса шины с контроллера на преобразователь интерфейса ошибки CRC в логах исчезли. Совсем исчезли (uptime 20 часов). Значит ли это, что ошибки были связаны с реализацией интерфейса RS485 в контроллере?
Кроме этого: в контроллере установлен WBE2-I-Opentherm (версия прошивки 1.5). После исчезновения CRC ошибок стало явно видно ещё одно. Ошибка на модуле Opentherm Serial protocol error: request timed out
появляется всегда сразу после попытки поиска свежей прошивки модуля:
25-07-2025 08:47:50.660 [wb-mqtt-serial] WARNING: [modbus] failed to read 1 input(s) @ 205 of device modbus:11: Serial protocol error: request timed out
25-07-2025 08:47:50.113 [wb-device-manager] [WARNING] Can't get firmware info for 11 (/dev/ttyMOD1 19200 8N1): Request timeout [-32600]: Serial protocol error: request timed out