Добрый день.
Имеется стороннее модбус slave устройство на шине вместе с другими модулями WB (MAI6 -1 шт, MAO4-шт). Порт настроен на 115200,8,N,1 длинны проводов 200 мм. Сделал шаблон для устройства (опрашивается только один регистр) и прописал в шаблоне guard interval= 334 (для 115200) но не помогает. После начала обмена через 5-30 секунд устройство перестает отвечать, помогает только перезагрузка по питанию.
Если посадить на отдельный порт вроде такой проблемы нет (но хочется добиться определенности почему так происходит).
Если остановить обмен и посылать через терминал вручную то все запросы проходят нормально. Проблема именно когда на шине идет интенсивный обмен с другими устройствами WB/
При разговоре с производителем выяснилось следующее - устройство при получении пакета с неправильным CRC не посылает ответ мастеру. А должно ли ? и какой ответ о ошибке посылать(№)? или просто не отвечаем и мастер по истечении таймаута должно переспросить?. Подскажите куда копать.
Добрый день.
Крайне интересно. А какое количество запросов успевает пройти?
Нет, не должно отвечать. А у вас есть подозрение что мастер отправляет именно неверные CRC, и только одном устройству?
Советую для начала - отключить опрос остальных устройств на шине, естественно не отключая физически и включать по одному.
Не замерял, но всегда по разному (ориентируюсь по времени до “отвала”).
Если отключить опрос других устройств, то в течении 12 часов устройство не отключалось. При включении опроса (в веб интерфейсе) MAI 6 , то устройство уходит в “даун” перестает отвечать. В логах “ошибка таймаута” , при этом все каналы mai 6 (12 шт) опрашиваются без ошибок
Не исключено что оно не умеет работать с другими на одной шине. Возможно - воспринимает запросы на чужие адреса как свои. Пока мало информации. Посмотрите в лог, включив debug для wb-mqtt-serial, например.
Вы оказались правы. Устройство в первоначальном варианте не умело "сидеть " на шине вместе с другими устройствами. После разговора с производителем и исправлением ошибки , обмен наладился.
Ну, отлично. А каким способом удалось устранить проблему? Что производитель посоветовал?
Изменил прошивку (вроде как он правил таймауты )