wb-mqtt-serial
wb-mqtt-serial copied to clipboard
Перестают читаться регистры после ошибки: illegal data value
Wiren Board 8 установлен на предприятии, к нему подключено несколько частников по RS-485. Пока ими не управляем, а только собираем данные. В обычных условиях все работает хорошо, все требуемые регистры читаются, никаких ошибок не наблюдается. Но когда операторы запускают двигатели, в логах появляется большое количество ошибок: “request timed out”, “invalid crc” и “illegal data value”. Эти ошибки появляются от всех частников и от тех которые не активны в данных момент. Получается что ошибки появляются из-за возникших в этот момент внешних помех. Ошибки типа “request timed out” и “invalid crc” - не приносят больших проблем, контроллер все равно достаточно успешно считывает нужные данные. А вот ошибка “illegal data value” блокирует дальнейшее считывание регистров и нужно перезапускать wb-mqtt-serial. Я нашел у вас информацию о том что после получения ошибки “illegal data value” wb-mqtt-serial перестает читать данный регистр, думая что это ошибка в настройке. На мой взгляд данное поведение не верное, ведь контроллер уже работал с этим регистром, читал из него данные, а потом раз и решил вдруг что регистр настроен не правильно - читать его не буду. Подобное поведение актуально при первом обращении к регистру, а после того как контроллер уже начал с ним работать - реакция на ошибку должна быть такой же как к “invalid crc”.