Как Modbus может быть частично поврежден?

У меня есть ведомое устройство Modbus, от которого я получаю, как представляется, частично искаженные ответы. Я подтвердил, что при некоторых обстоятельствах связь хорошая. В других я получаю ошибку контрольной суммы.

Если отправить команду 01 04 00 05 00 01 21 CBгде 04 - чтение входного регистра, а 05 - адрес, три раза я возвращаюсь F8 9E 01 04 02 00 97, B8 9A 01 04 02 00 92, а также 38 9D 01 04 02 00 93, Так как 01 04 02 00 последовательный каждый раз, кажется, что сигнал не полностью уничтожен, но первые два байта, очевидно, вызывают сбой контрольной суммы.

Какие проблемы вызывают это поведение?

Я использую библиотеку python minimalmodbus на Raspberry Pi.

Примечание редакции: я опубликовал это в SO, потому что у него есть все вопросы по Modbus в сети SE, но если кто-то может придумать лучшее место для него, я открыт для его перемещения

1 ответ

Вы общаетесь по последовательной линии? Я видел шумные или неправильно завершенные последовательные линии Modbus, которые приводили к появлению фантомных значений до или после действительного запроса и ответа.

В то время как особенности меняются в зависимости от деталей вашей установки (количество проводов, скорость передачи данных, топология последовательного канала и т. Д.), Общее правило заключается в размещении резистора 120 Ом между проводами на каждом конце последовательного канала.

Другие вопросы по тегам