Где смотреть причину сбоя обмена по Modbus в PMP20?
Код результата лежит в системном регистре своего порта: SD140 — порт 0, SD150 — порт 1, SD160 — порт 2, SD170 — порт 3, SD180 — порт 4, SD190 — порт 5. Ноль означает успешный обмен, любое другое значение — конкретную причину.
Расшифровка кодов:
- 100 — ошибка при приёме данных.
- 101 — превышено время приёма (ведомый не ответил).
- 180 — ошибка CRC, 181 — ошибка LRC: помехи в линии или несовпадение режима RTU и ASCII.
- 182 — ошибка номера станции: ответ пришёл не от того адреса.
- 183 — переполнение буфера пересылки.
- 400 — ошибка кода функции: ведомый не поддерживает запрошенную функцию.
- 401 — ошибка адреса: регистр вне допустимого диапазона.
- 402 — ошибка длины, 403 — ошибка в данных.
- 404 — ведомая станция занята.
- 405 — ошибка памяти (сбой стирания flash).
Рядом лежит признак занятости: SM140 для порта 0, SM150 — порт 1, SM160 — порт 2 и далее по той же схеме. Он включается на время выполнения команды и выключается по её завершении — по нему организуют очередь опроса, чтобы не запускать следующий запрос поверх незавершённого.
Диагностика по кодам экономит время: 101 и 180 — это физика линии и параметры порта, 400 и 401 — неверно составленный запрос, 404 — слишком частый опрос ведомого.
Прикреплённая документация
Георгий Жуков
Ведущий инженер