Как 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 Ом между проводами на каждом конце последовательного канала.