Sidebar Left

Разбор обмена: от установления связи до чтения объекта

Теория объектной модели становится понятной, когда видишь реальный обмен. Разберём типовой сеанс: что улетает в линию, что возвращается и как понять, на каком шаге что-то пошло не так. Примеры установления соединения и обмена приведены в разделе 12 ГОСТ Р 58940-2020 — здесь мы объясняем ту же последовательность словами практика.

Шаг 1. Канальный уровень
На последовательном канале или оптопорте клиент открывает соединение HDLC: посылает запрос установления режима, прибор отвечает подтверждением и сообщает параметры — максимальные размеры окна и информационного поля. Дальше обе стороны обязаны эти размеры соблюдать.

Что смотреть в дампе: кадр начинается и заканчивается флагом 0x7E, за ним поле формата с типом кадра и длиной, адреса, поле управления и две контрольные суммы — на заголовок и на весь кадр. Если ответа нет вовсе, проблема ниже уровнем: скорость, адрес прибора, физика линии.

Шаг 2. Ассоциация
Поверх канала устанавливается логическое соединение — ассоциация. Клиент отправляет запрос на установление с указанием версии протокола, предлагаемого размера PDU, требуемого уровня аутентификации и адреса клиента, который и определяет права. Прибор отвечает согласием либо отказом с причиной.

Здесь чаще всего и обрываются попытки:

  • отказ по аутентификации — не тот пароль или не тот уровень;
  • отказ по правам — адрес клиента не соответствует запрошенным операциям;
  • согласованный размер PDU меньше запрошенного — дальше ответы будут приходить блоками.

При высоком уровне аутентификации добавляется обмен вызовом и ответом: стороны доказывают друг другу знание ключа, и только после этого ассоциация считается установленной.

Журнал: установление соединения по СПОДЭС
Установление соединения в журнале: запрос и подтверждение канального уровня, затем ассоциация с аутентификацией

Шаг 3. Чтение объекта
Дальше всё однообразно: клиент запрашивает атрибут объекта, указывая интерфейсный класс, логическое имя и номер атрибута. Прибор возвращает данные с типом — целое, строка октетов, структура, массив.

Типовой пример — чтение заводского номера. Запрос адресует объект паспортных данных, ответ приходит строкой октетов, которую нужно расшифровать как текст. Ровно здесь появляется первая ловушка для новичка: строка октетов не обязана быть текстом, и по типу данных этого не видно — смысл задаёт модель.

Второй пример — мгновенное напряжение. В ответе придёт целое число, а рядом, в атрибуте единиц и масштаба, — множитель. Значение 2219 при масштабе −1 и единице «вольт» означает 221,9 В.

Структурный разбор кадра обмена СПОДЭС
Тот же обмен в разборе: видно структуру запроса и ответа, а не только байты

Шаг 4. Длинные ответы
Профиль за месяц в один пакет не помещается. Прибор передаёт ответ блоками: клиент подтверждает получение каждого блока и запрашивает следующий, пока не придёт признак последнего. Если клиент не умеет собирать блоки, он увидит первый фрагмент и решит, что связь оборвалась.

Шаг 5. Завершение
Корректный сеанс завершается разрывом ассоциации и закрытием канала. Пропущенный разрыв — не безобидная мелочь: у прибора ограничено число одновременных соединений, и «повисшая» сессия может помешать следующему опросу, пока не сработает таймаут.

Чек-лист при разборе проблем

  • Есть ли ответ на канальном уровне — если нет, дело в физике или адресации.
  • Чем закончилась ассоциация — согласием или отказом, и с какой причиной.
  • Совпадает ли уровень аутентификации с настройками прибора.
  • Не пришёл ли отказ по правам доступа — тогда нужен другой тип соединения.
  • Не потерялись ли блоки длинного ответа.
  • Применён ли масштаб к числовым значениям и учтён ли часовой пояс при выборке по времени.

Чем смотреть
Всё перечисленное видно в журнале обмена Телескоп+ Конфигуратор СПОДЭС: каждый кадр можно развернуть в структурный разбор, посмотреть в виде XML или побайтово с подсветкой. Программа бесплатна, работает под Windows и Linux.

← Все разделы справочника СПОДЭС

Style Selector

Primary Color

Direction