Ошибка Modbus 02 «Illegal Data Address»: что она значит и что проверять
Код 02 означает, что запрошенный адрес недоступен именно сейчас: регистра нет, он читается другой функцией, диапазон вышел за границу — или соответствующий объект в приборе не сконфигурирован.
Что означает код 02
Получив запрос, ведомый может ответить не данными, а исключением. Код 02 — Illegal Data Address — говорит: комбинация «начальный адрес + количество регистров» для этой функции недопустима. Формулировка стандарта важна: адрес недопустим в данный момент и для этой функции, а не «не существует в принципе».
Не путайте с соседними кодами:
- 01 Illegal Function — прибор не поддерживает такой код функции.
- 02 Illegal Data Address — функция поддерживается, но адрес/диапазон не тот.
- 03 Illegal Data Value — адрес корректен, но переданное значение недопустимо.
Ответ с исключением — это признак исправной связи: прибор получил кадр, разобрал его и осознанно отказал. Физический уровень при коде 02 проверять уже не нужно.
Четыре обычные причины
- Смещение нумерации. Таблица нумерует регистры с единицы, в кадр передаётся адрес с нуля. Запрос последнего регистра диапазона при этом выходит за границу.
- Не та функция. Input register, прочитанный функцией 03 вместо 04, — адрес формально существует, но в другой области.
- Диапазон пересекает границу блока. Начало запроса корректно, а «начало + количество» выходит за конец доступной области. Прибор отвергает запрос целиком, а не отдаёт часть.
- Объект не сконфигурирован. Регистр физически предусмотрен прошивкой, но соответствующая сущность в приборе не описана, поэтому адрес недоступен.
Случай УВП-280: регистры СИКН
Четвёртая причина — самая неочевидная, и в вычислителе УВП-280 она встречается регулярно.
- Регистры СИКН (область 3500+ IR) доступны только если в приборе есть трубопроводы, сконфигурированные как СИКН/ОУУН (FAQ СКБ). Без такой конфигурации адрес возвращает ошибку 02, хотя прошивка его поддерживает.
- Ошибка 02 при чтении области БИК означает, что прибор не находит трубопровод БИК — источник значения плотности для измерительных линий. Исправляется переописанием системы так, чтобы трубопроводы измерительных линий получали плотность не с логического входа, а с трубопровода, в котором плотность описана через логический вход (FAQ СКБ).
Общий вывод: ошибка 02 — это часто вопрос конфигурации прибора, а не запроса. Прежде чем править опрос, проверьте, что описанные в приборе объекты соответствуют тем данным, которые вы пытаетесь прочитать.
Порядок диагностики
- Прочитайте заведомо существующий регистр — убедитесь, что обмен в целом работает.
- Сверьте функцию чтения с областью, в которой лежит регистр.
- Проверьте смещение нумерации: попробуйте адрес на единицу меньше.
- Запросите один регистр вместо диапазона — так видно, где именно проходит граница.
- Проверьте, описан ли в приборе объект, к которому относится регистр.
Нормативный источник
Точные требования — в руководстве по эксплуатации. Справочник объясняет принцип, РЭ определяет, что допустимо для конкретного прибора.
Приборы СКБ «Промавтоматика»
Связанные вопросы
Смежные статьи
Источники
- Modbus Organization, Modbus Application Protocol Specification V1.1b3, коды исключений KSRC-MODBUS-APP
- FAQ СКБ «Промавтоматика», вопросы о чтении регистров СИКН и области БИК KSRC-SKB-FAQ

