Какие функции Modbus поддерживает PD310 и как устроен кадр?
PD310 поддерживает две функции: 03 — чтение нескольких 16-битных регистров и 06 — запись одного регистра. Функции групповой записи (16) в приводе нет, поэтому каждый изменяемый регистр пишется отдельным запросом.
Структура кадра: период тишины — адрес (1 байт) — код функции (1 байт) — данные (0–255 байт) — контрольная сумма CRC (2 байта) — период тишины.
Тайминги, из-за которых чаще всего не поднимается обмен:
- новое сообщение распознаётся после паузы на шине не менее 3,5 символов (14 бит);
- пауза внутри кадра дольше 1,5 символов (6 бит) означает, что кадр повреждён и должен быть отброшен приёмником.
Отсюда практический вывод: преобразователи USB–RS-485 без аппаратного управления направлением и «медленные» шлюзы рвут кадр паузой и дают неустойчивую связь, которая выглядит как проблема с проводкой.
Контроль ошибок — стандартный CRC-16 с инициализацией 0xFFFF и полиномом 0xA001; стартовые, стоповые биты и бит чётности в расчёте не участвуют. В руководстве приведена готовая функция расчёта на языке C.
Ответ на запись функцией 06 — эхо запроса. Если мастер ждёт иного подтверждения, обмен будет считаться неуспешным при фактически выполненной команде.
Прикреплённая документация
Влад Ватагин
Ведущий инженер