Обмен по MMS: чтение, отчёты и управление
Часть 61850-8-1 отображает абстрактные услуги стандарта на MMS — протокол, работающий поверх стека ISO в TCP/IP. Именно этот обмен видит клиентская программа: через него читают значения, подписываются на отчёты и подают команды.
Соединение устанавливается на порт 102. Внутри TCP идёт слой TPKT и сессия ISO, поэтому в анализаторе трафика обмен выглядит не как простые запросы-ответы, а как вложенные пакеты — это нормально.
Ассоциация и чтение
Работа начинается с ассоциации: клиент открывает соединение, стороны согласуют параметры и, если настроено, выполняется проверка прав доступа. Затем клиент может:
- обойти модель — запросить список логических устройств, узлов и объектов данных прямо у сервера; так проверяют, что реальное устройство совпадает с файлом описания;
- прочитать значение — по полной ссылке вида
IED1LD0/MMXU1.PhV.phsA.mag.fс указанием функциональной связи; - записать значение — уставку, параметр конфигурации, замещающее значение.
Опрос по одному атрибуту работает, но на реальном объекте его не применяют: обмен получается дорогим. Для регулярной передачи используют наборы данных и отчёты.
Наборы данных
Набор данных (DataSet) — это перечень атрибутов, собранный в одну именованную группу: например, все токи и напряжения присоединения плюс их качество и метки времени. Наборы описываются в файле конфигурации устройства и живут внутри логического узла LLN0.
Набор — основа и для отчётов, и для GOOSE: передаётся не «всё подряд», а ровно тот перечень, который в него включён. Порядок элементов в наборе имеет значение: приёмная сторона разбирает пришедший блок позиционно, поэтому изменение состава набора на стороне устройства ломает разбор у клиента, даже если имена не менялись.
Отчёты: буферизуемые и небуферизуемые
Отчёт — это передача изменившихся данных по инициативе устройства. Управляется он блоком управления отчётами, и блоков два вида:
- Небуферизуемый (URCB) — данные отправляются в момент изменения. Если клиент в это время не на связи, изменение теряется. Подходит для текущих измерений, где важно последнее значение.
- Буферизуемый (BRCB) — устройство накапливает изменения в собственном буфере и отдаёт их клиенту после восстановления связи, с сохранением порядка. Для сигналов защиты и положений аппаратов используют только его.
Поведение задают несколько параметров:
| Параметр | Что делает |
|---|---|
Триггеры (TrgOps) | Что считается поводом для отчёта: изменение значения (dchg), изменение качества (qchg), обновление данных (dupd), периодическая целостность (integrity) и общий запрос (GI) |
| Период целостности | Как часто передавать полный срез набора независимо от изменений — страховка от рассинхронизации картины |
| Время буферизации | Сколько ждать перед отправкой, чтобы собрать несколько изменений в один отчёт вместо потока мелких |
| Номер и идентификатор записи | Порядковый номер отчёта и метка позиции в буфере: по ним клиент понимает, что был пропуск, и с какого места продолжить |
| Резервирование блока | Один блок управления отчётами обслуживает одного клиента. Второму клиенту нужен свой экземпляр |
Самая частая ошибка на этом этапе — два клиента, настроенные на один и тот же блок: отчёты получает тот, кто успел зарезервировать блок первым, второй молча остаётся без данных.
Журналы
Кроме отчётов устройство может вести журнал — хранить изменения у себя с возможностью выборки по времени. Журнал не требует постоянно подключённого клиента и используется там, где важно восстановить историю после длительного отсутствия связи. Управляется он собственным блоком, а выборка запрашивается диапазоном времени или с позиции последней прочитанной записи.
Управление коммутационным аппаратом
Команда подаётся записью в управляющие атрибуты объекта — обычно это Pos узла CSWI. Стандарт определяет четыре модели управления, и какая из них действует, указано в самом устройстве атрибутом ctlModel:
- Прямое с обычной безопасностью — одна операция
Oper, подтверждение приходит сразу. - С выбором и обычной безопасностью — сначала выбор объекта, затем исполнение.
- Прямое с расширенной безопасностью — команда сопровождается подтверждением фактического выполнения от устройства.
- С выбором и расширенной безопасностью — выбор
SBOw, исполнениеOper, подтверждение завершения; отмена —Cancel. Это штатная схема для выключателей.
В структуре команды передаются не только значение и время, но и сведения о происхождении: orIdent — кто подал команду и orCat — категория источника (оператор станции, дистанционное управление, автоматика). Эти поля попадают в журналы и позволяют потом ответить на вопрос «кто отключил».
Отдельный атрибут Test помечает команду как тестовую: устройство, работающее в обычном режиме, такую команду не выполнит. Симметрично, данные, помеченные признаком теста, не должны восприниматься клиентом как рабочие — иначе испытания на одном присоединении «оживают» на диспетчерском щите.
Типовые ошибки
| Симптом | Где искать |
|---|---|
| Соединение не устанавливается | Закрыт порт 102; несовпадение адресов стека ISO из файла конфигурации |
| Чтение работает, отчёты не приходят | Блок управления отчётами не включён или занят другим клиентом; не настроены триггеры |
| После обрыва связи часть событий потеряна | Использован небуферизуемый отчёт там, где нужен буферизуемый |
| Клиент разбирает отчёт неправильно | Изменился состав или порядок набора данных на стороне устройства |
| Команда отклоняется | Модель управления устройства строже ожидаемой: требуется выбор перед исполнением; либо блокировка от CILO |
| Испытательные данные видны как рабочие | Клиент игнорирует признак теста в качестве и в структуре команды |
