Обозначение
Рис. 1
Описание
На Рис. 1 представлен фрагмент программы в среде Полигон 2, на котором в верхней части можно видеть программный модуль (далее блок) IEC61850srv, выполняющий основную логику протокола, а также вспомогательные программные модули (далее блоки) для управления данными о состоянии устройства, передаваемые клиенту, и\или полученными от клиента.
Назначение входов и выходов
Входы:
- tmp – период вызова главной функции блока (мс).
- sdr – выбор сетевого интерфейса для подключения к устройству.
- cfg – конфигурация:
- бит 4 – активирует принудительное обновление значений атрибутов mag из значения instMag. Таймаут задается соответствующим свойством в узле CIED.
- ctl – управление:
- бит 8-15 – восьмибитовая маска, определяющая, какие диагностические сообщения будут выводиться в системную консоль (число 0xFF разрешает вывод всех типов сообщений, см. п. Диагностика).
Выходы:
- sts – выход статуса устройства.
- бит 0 – соединение с клиентом установлено.
- dstsi – не используется
Использование
После создания блока на листе программы Полигон 2, необходимо создать описание данного устройства в виде дерева, представляющего собой набор специальных объектов (узлов), таких как:
- CIED – узел верхнего уровня, представляющий физическое устройство. Может быть только один такой узел.
- CIEC61850LD – узел, представляющий логическое устройство.
- CIEC61850LN – логический узел. Протокол определяет обязательное наличие в каждом логическом устройстве узлов LLN0 и LPHD
- CIEC61850DO – объект данных.
- CIEC61850DA – атрибут данных.
- CIEC61850DAt – типизированный атрибут данных. Именно с помощью таких узлов происходит обмен данными между клиентом и прикладной программой, использующей данный сервер.
- CIEC61850DS – набор данных (отчет).
- CIEC61850RCB – блок управления набором данных (отчетом).
В шаблонах библиотеки paIEC850 можно найти основные строительные блоки для описания устройства. Пример такого дерева можно увидеть на Рис.2. На нем:
- testIED – узел верхнего уровня (CIED).
- testDevice0, testDevice1 – логические устройства (CIEC61850LD).
- LLN0, LPHD1, MMXU1, GGIO1 – логические узлы testDevice0 (CIEC61850LN).
- PPV, phsAB – объекты данных (CIEC61850DO).
- cVal, mag – атрибуты данных (CIEC61850DA).
- f, q, t, db – типизированные атрибуты данных (CIEC61850DAt<float>, CIEC61850DAt<uint32_t>, CIEC61850DAt<uint64_t>, CIEC61850DAt<uint32_t> соответственно).
- В атрибут данных f добавлен выход o0 от вспомогательного блока TransFlt.
- MainMX – набор данных (отчет) (CIEC61850DS).
- urcbMX01 – блок управления отчетом MainMX (CIEC61850RCB).
Рис. 2
Некоторые узлы в дереве требуют определение свойств, необходимых для правильного функционирования сервера. Например, любое физическое устройство должно определить TCP порт, который будет прослушивать в ожидании подключения клиента. Таким свойством является Порт (prop_inter_port), определенное для testIED. Описание доступных свойств приведено в Приложении 1.
Создав дерево описания устройства, необходимо связать интересующие атрибуты данных из описания с входами\выходами других блоков программы. Это позволит контролировать и\или использовать данные о состоянии устройства внутри программы.
Создав дерево описания устройства, необходимо связать интересующие атрибуты данных из описания с входами\выходами других блоков программы. Это позволит контролировать и\или использовать данные о состоянии устройства внутри программы.

Рис. 3
На Рис. 3 приведен пример таких связей. Например, чтобы определить значение атрибута данных testIEDtestDeice0/GGIO1.Outs.outBool (которое клиент сможет прочесть, либо\или может быть передано в составе отчета) можно выход блока TransBit добавить в узел outBool по пути testIED/testDevice0/GGIO1/Outs. Для использования данных этого же узла, заданных клиентом функцией записи, можно добавить вход другого блока TransBit в тот же узел.
Протокол МЭК 61850 позволяет создавать так называемые наборы данных (отчеты). Для создания отчета необходимо добавить в дерево устройства узел CIEC61850DS. Затем, в этот узел нужно добавить интересующие объекты данных, и\или отдельные атрибуты данных.
Протокол МЭК 61850 позволяет создавать так называемые наборы данных (отчеты). Для создания отчета необходимо добавить в дерево устройства узел CIEC61850DS. Затем, в этот узел нужно добавить интересующие объекты данных, и\или отдельные атрибуты данных.

Рис. 4
На Рис. 4 приведен пример сформированного отчета с названием MainMX. В него добавлен составной объект данных PPV, объект данных phsA и отдельный атрибут данных f из объекта phsA. Атрибутам данных, включенным в отчет, необходимо определить свойства, активирующие те или иные причины отправки этих данных в отчете. Например, по изменению данных, или периодически. Свойства описаны в Приложении 1.
Для управления созданным отчетом также необходим узел типа CIEC61850RCB – блок управления отчетом. На рисунке таковым является urcbMX01. После добавления этого узла, необходимо в свойствах указать, к какому отчету он относиться (в данном случае MainMX), а также причины передачи, подобно тем, что определены для атрибутов данных.
Для управления созданным отчетом также необходим узел типа CIEC61850RCB – блок управления отчетом. На рисунке таковым является urcbMX01. После добавления этого узла, необходимо в свойствах указать, к какому отчету он относиться (в данном случае MainMX), а также причины передачи, подобно тем, что определены для атрибутов данных.
Диагностика
При отладке программы, использующей блок IEC61850csrv, может понадобится прочитать диагностические сообщения, формируемые данным модулем.
Для вывода сообщений в консоль необходимо на входе ctl, начиная с бита 8 и заканчивая битом 15, выставить единицу для желаемой подробности вывода. При этом бит 8 отвечает за сообщения высокого приоритета (например, ошибка подключения к устройству), а бит 15 за сообщения самого низкого приоритета (например, содержание буферов приемо-передачи). Если в данное восьмибитовое поле записать 0xFF, то будут выводиться все возможные сообщения.
Для вывода сообщений в консоль необходимо на входе ctl, начиная с бита 8 и заканчивая битом 15, выставить единицу для желаемой подробности вывода. При этом бит 8 отвечает за сообщения высокого приоритета (например, ошибка подключения к устройству), а бит 15 за сообщения самого низкого приоритета (например, содержание буферов приемо-передачи). Если в данное восьмибитовое поле записать 0xFF, то будут выводиться все возможные сообщения.
Приложение 1. Описание свойств узлов дерева описания устройства
Класс CIED. Корневой узел дерева описания устройства.
- Порт (prop_inter_port) – сетевой порт, на котором устройство ожидает подключения.
- МЭК61850: Таймаут принудительного обновления атрибута mag (мс) – для классов MV определяет период, с которым будет обновляться атрибут mag, независимо от заданной мертвой зоны.
Класс CIEC61850DO. Объект данных.
- МЭК61850: Функциональное ограничение (prop_FC) – определяется протоколом.
Класс CIEC61850DA. Атрибут данных.
- МЭК61850: Базовый тип данных (prop_bType) – базовый тип данных, определенный протоколом.
- МЭК61850: Функциональное ограничение (prop_FC) – определяется протоколом.
Класс CIEC61850DAt<T> (шаблонный). Атрибут данных.
- МЭК61850: Базовый тип данных (prop_bType) – базовый тип данных, определенный протоколом. (клиент)
- МЭК61850: Функциональное ограничение (prop_FC) – определяется протоколом. (клиент)
- МЭК61850: Значение по умолчанию (prop_defVal) – значение величины после запуска устройства.
- МЭК61850: Отправлять по изменению данных (prop_trg_data_changed) – условие отправки отчета.
- МЭК61850: Отправлять при общем опросе (prop_trg_general_inter) – условие отправки отчета.
- МЭК61850: Отправлять при обновлении данных (prop_trg_data_update) – условие отправки отчета.
- МЭК61850: Отправлять по изменению качества данных (prop_trg_qual_changed) – условие отправки отчета.
- МЭК61850: Отправлять периодически (prop_trg_integrity) – условие отправки отчета.
- МЭК61850: Модель управления (prop_ctlModel) – определяется протоколом. Только для управляемых атрибутов данных. Возможные значения: status_only, direct_with_normal_security, sbo_with_normal_security, direct_with_enhanced_security, sbo_with_enhanced_security, not_controllable)
Класс CIEC61850RCB. Блок управления набором данных (Отчетом).
- МЭК61850: Идентификатор отчета (prop_ReportID) – имя данного отчета без постфикса (прим. "urcbMX").
- МЭК61850: Название набора данных (Отчета) (prop_dataSetName) – имя отчета, которым управляет данный блок (прим. "MainMX").
- МЭК61850: Отправлять по изменению данных (prop_trg_data_changed) – условие отправки отчета.
- МЭК61850: Отправлять при общем опросе (prop_trg_general_inter) – условие отправки отчета.
- МЭК61850: Отправлять при обновлении данных (prop_trg_data_update) – условие отправки отчета.
- МЭК61850: Отправлять по изменению качества данных (prop_trg_qual_changed) – условие отправки отчета.
- МЭК61850: Отправлять периодически (prop_trg_integrity) – условие отправки отчета.
- МЭК61850: Период отправки отчета (мс) (prop_trg_integrity_period_ms) – период отправки отчета в случае установки свойства prop_trg_integrity.
- МЭК61850: Включить отчет (prop_rcb_enabled) – активировать данный отчет.
- МЭК61850: Буферированный отчет (prop_isBuffered) – этот отчет буферированный.