Коротко о главном
При нестабильной связи Modbus RTU разделите проверку на четыре уровня: проводка, электрический сигнал, временные параметры и смысл данных. Меняйте по одному условию и сохраняйте известный рабочий вариант для сравнения.
Начните с минимального воспроизводимого соединения
Подключите один инициатор и одно устройство, затем отправьте известный запрос. Запишите адрес, скорость, чётность, стоповые биты, питание и распиновку. После устойчивой работы добавляйте участников и участки кабеля последовательно, фиксируя момент появления ошибки.
Не ориентируйтесь только на буквы A/B. Сопоставьте документацию изготовителей и фактические контакты обоих устройств. Схема с назначением сигналов полезнее устного описания цветов кабеля. Сохраните фотографию или чертёж именно проверяемой конфигурации.
Проверьте согласование и состояние покоя
Руководство TI по RS-485 рассматривает согласование линии, топологию и fail-safe-смещение. Сравните реальную сеть с выбранной схемой; установка согласующего резистора на каждом участнике не является универсальным решением. Texas Instruments — The RS-485 Design Guide
Уточните, в каких устройствах резисторы уже установлены и какие из них включены переключателями. Наблюдайте ошибки отдельно при покое шины, обмене и переключении соседних нагрузок. Разные условия могут указывать на разные причины, поэтому не объединяйте их в один общий счётчик неисправностей.
Сопоставьте направление передачи и время
В полудуплексной системе слишком раннее или позднее отключение передатчика может нарушать обмен. Запишите запрос и ответ с временными отметками. По возможности сравните UART с сигналом разрешения драйвера, чтобы найти потерю первых или последних символов.
Увеличение тайм-аута может скрыть задержку ответа, но не исправляет повреждённый пакет. Различайте отсутствие ответа, ошибку контрольной суммы, неполный пакет и корректный ответ с кодом исключения. Для каждого случая следующий диагностический шаг будет своим.
Проверьте смысл успешно полученных данных
Если обмен выглядит исправным, сверяйте код функции, адрес регистра, тип данных и масштаб с документацией устройства. Обозначение адреса в таблице может отличаться от числа в запросе. Порядок нескольких регистров для длинного значения тоже нужно уточнить отдельно.
Пример: температура стабильна, но явно неверна. Прочитайте исходные регистры и сравните их с заданным состоянием устройства. Не меняйте одновременно порядок байтов, масштаб и адрес: иначе невозможно понять, какое предположение было ошибочным.
Что сохранить в журнале диагностики
- Схему шины, участки кабеля и положение согласующих резисторов.
- Версии устройств и полные параметры последовательного порта.
- Исходные запросы и ответы с временными отметками.
- Частоту ошибок и состояние внешних нагрузок.
- Одно изменение и результат каждого сравнительного испытания.
Частые вопросы
Почему на столе всё работает, а на объекте нет?
Могут отличаться кабель, ответвления, опорные потенциалы и помеховая обстановка. Сначала сопоставьте эти условия, а не ограничивайтесь изменением программы.
Ошибка CRC доказывает проблему прошивки?
Нет. Причина может быть в передаче или обработке пакета. Запись обмена помогает определить, на каком участке появляются отличия от ожидаемых данных.
Технические источники
Услуга по теме