Клиент МЭК 61850-8-1

Материал из WIKI
Перейти к навигации Перейти к поиску

В данной статье описывается использование функций клиента МЭК 61850-8-1 MMS в составе SCADA-системы, а также в контроллерах с исполнительной системой ENLOGIC.

Постановка задачи: осуществить прием данных по протоколу МЭК 61850-8-1 от оборудования, поддерживающего данный протокол обмена. В качестве источника данных в настоящей статье используется прибор ЭНИП-2, с настройкой коммуникации в стандарте МЭК 61850-8-1 по умолчанию (заводская).

Внимание: для чтения данной статьи требуется понимание базовых принципов протокола МЭК 61850-8-1.

Для начала, для более глубоко понимания, проведем некоторые исследования, для чего воспользуемся триальной версией программы IEDScout. Также можно использовать бесплатную программу IEDExplorer – она также умеет подключаться к приборам по протоколу МЭК 61850-8-1, вычитывать дерево узлов и объектов, и также использовать готовый файл CID для эмуляции работы прибора.

Прочитаем дерево узлов и объектов МЭК 61850-8-1 из прибора ЭНИП-2 с помощью программы IEDScout, и сохраним его в файл:

61850-01.png

На сайте производителя прибора ЭНИП-2 также можно скачать готовый CID-файл enip2.cid. Мы возьмем этот файл, чтобы средствами программы IEDScout запустить симулятор прибора ЭНИП-2 по протоколу МЭК 61850-8-1 – симулятор позволит нам более детально изучить формирование и передачу значений по этому протоколу.

Симуляция ЭНИП-2 в IEDScout:

61850-02.png


Функции клиента МЭК 61850-8-1 реализуются в составе исполнительной системы ENLOGIC. На момент написания данной статьи они были предусмотрены в составе следующих реализаций:

  • Исполнительная система для платформы Windows
  • Исполнительная система для платформы Linux х86 (Ubuntu и т.п.)
  • Исполнительная система для контроллера ЭНТЕК E2R2(G) (Linux ARM)

В статье мы рассмотрим использование клиента в исполнительной система для платформы Windows, для остальных вариантов процедура полностью аналогична.

Исполнительная система ENLOGIC для платформы Windows представляет собой виртуальный контроллер (SoftLogic-контроллер), располагается в каталоге Bin\EnLogicPLC установленной SCADA-системы, и представлена двумя версиями исполняемых файлов:

  • EmulatorForPLClib.exe – визуальное приложение-эмулятор контроллера, удобное для целей тестирования и отладки проектов SCADA, не подходит для использования в промышленной эксплуатации.
  • EnLogicSvcForPLClib.exe – не визуальное приложение, устанавливаемое как служба Windows, используется для промышленной эксплуатации SoftLogic-контроллера ENLOGIC, требует лицензирования.

Мы будем использовать визуальное приложение-эмулятор, запускаем его:

61850-03.png

При первом запуске в эмуляторе нет загруженной конфигурации, лог загрузки короткий.

Последующие промежуточные шаги стандартны при формировании конфигурации ENLOGIC:

  1. Создаем новый проект SCADA, или открываем существующий.
  2. Запускаем модуль среду разработки ENLOGIC IDE – модуль Контроллеры.
  3. Добавляем новый узел ENLOGIC – контроллер типа None-target, задаем у него IP-адрес 127.0.0.1 и порт связи 30292.
  4. В контроллер в Каналы ввода-вывода добавляем протокол МЭК 61850-8-1 клиент из группы Универсальные.
  5. В протокол МЭК 61850-8-1 клиент добавляем из группы Универсальные модуль УСО Ячейка КРУ.
  6. В модуле Ячейка КРУ добавляем нужные нам каналы (теги), которые мы хотим получить от прибора ЭНИП-2.
  7. Для модуля Ячейка КРУ задаем параметры связи с источником данных по протоколу МЭК 61850-8-1.
  8. Для тегов модуля Ячейка КРУ формируем корректные MMS-адреса переменных.
  9. Загружаем полученную конфигурацию в виртуальный контроллер.

  Рассмотрим созданную конфигурацию.

Настройки контроллера:

61850-04.png

Настройки протокола МЭК 61850-8-1 клиент:

61850-05.png

  Настройки связи модуля и дерево созданных тегов:

61850-06.png
61850-07.png


Рассмотрим настройки модуля более детально. Посмотрим на окно эмулятора нашего устройства:

61850-08.png

Физическое устройство (IED) имеет имя ENIP2, а логическое устройство (LD) имеет имя BAYCTRL. Чтобы в MMS-адресах тегов не указывать для каждого тега имя логического узла BAYCTRL, мы в настройке IED Name нашего модуля вписываем полное название ENIP2BAYCTRL/ (вместе с завершающей косой чертой). Далее для каждого тега мы можем уже использовать относительный адрес внутри LD, например для параметра Ia это будет строка MMXU1.A.phsA.cVal.mag.f[MX]. Клиент МЭК 61850-8-1 в ENLOGIC сам сложит две эти строки, и получит полный MMS-адрес тега: ENIP2BAYCTRL/MMXU1.A.phsA.cVal.mag.f[MX].

Общий принцип: полный MMS-адрес тега складывается из поля IED Name модуля и поля Адрес тега каждого тега путем простой «склейки» строк.

Настройка адреса тега:

61850-09.png

Этот параметр в окне сервера 61850-8-1:

61850-10.png

Всплывающая подсказка показывает полный MMS-адрес данного параметра.

Замечание: для клиента МЭК 61850-8-1 в ENLOGIC принято указывать функциональное ограничение параметра в квадратных скобках в конце тега – она является частью полного MMS-адреса тега.

Клиент МЭК 61850-8-1 в ENLOGIC позволяет получать данные одновременно периодическим опросом, и подпиской на отчеты. Алгоритм работы драйвера протокола реализует автоматический поиск параметров в отчетах устройства, если отчеты определены в настройках клиента, и на них удается подписаться. Те параметры, которые не удается найти в отчетах – начинают автоматически опрашиваться с заданным периодом, период опроса задается настройкой модуля Частота опроса, в нашем примере мы поставили довольно большое значение 10 сек – специально для эксперимента.

Группа настроек модуля Report 1 и Report 2 задают клиенту МЭК 61850-8-1 в ENLOGIC настойки для подписки на отчеты.

Наш прибор ЭНИП-2 в свое конфигурации имеет два отчета.

Отчет brcbST01 с функцией буферизации значений для набора данных (DataSet) MainST, содержащий некоторое кол-во дискретных параметров из логического узла GGIO1:

61850-11.png

Отчет urcbMX01 без буферизации значений для набора данных (DataSet) MainMX, содержащий некоторое кол-во аналоговых параметров из логического узла MMXU1 (узел трехфазных измерений):

61850-12.png

В настройках клиента МЭК 61850-8-1 в ENLOGIC в группе Report 1 задаем настройки для подписки на отчет brcbST01:

  • Идентификатор: LLN0$BR$brcbST01
  • Набор данных: LLN0$MainST

В группе Report 2 задаем настройки для подписки на отчет urcbMX01:

  • Идентификатор: LLN0$RP$urcbMX01
  • Набор данных: LLN0$MainMX

По аналогии с MMS-адресами тегов – здесь в полях Идентификатор и Набор данных прописываем относительный адрес, а для получения полного адреса клиент МЭК 61850-8-1 сам добавит к нему в начало префикс, который мы прописали в настройке IED Name – строку ENIP2BAYCTRL/ (вместе с завершающей косой чертой).

Замечания по формированию дерева тегов в системе ENLOGIC:

  1. Нет никакой зависимости между названиями тегов в дереве ENLOGIC и их расположению в этом дереве и MMS-адресом тега в источнике данных – сервере МЭК 61850-8-1. Представление устройства в виде тегов в дереве ENLOGIC, а значит далее и в SCADA, зависит только от нашего собственного инженерного видения. Мы (инженеры, а не разработчики SCADA) вполне можем сформировать дерево тегов так, что оно будет очень близко копировать структуру адресации в сервере МЭК 61850-8-1, но далеко не факт, что такое представление будет удобно для последующего использования в HMI SCADA.
  2. В данной статье рассматривается настройка клиента МЭК 61850-8-1 с применением готовых шаблонов из файла iec61850-none-vendor.io: шаблон Ячейка КРУ содержит типовой набор сигналов ТС/ТУ/ТИ по автоматизации ячейки подстанции 6/10 к, шаблон Модуль ТС содержит универсальный набор из телесигналов, шаблон Точка измерений похож на шаблон Ячейка КРУ, но содержит только блок параметров измерений. При необходимости в процессе работы эти шаблоны можно легко расширять самостоятельно – добавлять необходимые параметры, или же сделать совсем новый шаблон для своих задач. Файл iec61850-none-vendor.io имеет структуру XML, внутри устроен очень просто, и его легко редактировать редактором типа Notepad++ (с подсветкой синтаксиса XML).
  3. Кроме механизма шаблонов также можно конфигурировать клиент МЭК 61850-8-1 и формировать дерево тегов ENLOGIC используя таблицы EXCEL. Но данный вариант стоит рассматривать для тех случаев, когда источник данных – сервер МЭК 61850-8-1 имеет большое адресное пространство, и конфигурации отдельных серверов индивидуальны, и поэтому нет никакого смысла для одноразового использования делать для такого сервера шаблон в файле IO.
  4. В будущей версии клиента МЭК 61850-8-1 в ENLOGIC будет добавлена возможность формирования переменных из CID-файла.

Кроме тегов из реального прибора клиент МЭК 61850-8-1 также имеет служебные теги:

Тег Связь для соблюдения единой идеологии работы объектов HMI SCADA находится в корне модуля, и показывает наличие связи с сервером МЭК 61850-8-1.

В группе DIAG_TAGS дополнительные информационные теги:

  • CONNECTION_TIME_IN_SEC – длительность связи с сервером MMS
  • RECEIVED_IO_COUNT – кол-во принятых значений
  • SENDED_COMMANDS_COUNT – кол-во посланных команд управления
  • ACTIVATED_REPORTS_COUNT – кол-во активированных отчетов
  • PERIODICAL_READS_COUNT – кол-во значений, запрашиваемых опросом (не отчетами)

Значения для этих тегов клиент МЭК 61850-8-1 в ENLOGIC формирует самостоятельно.

Итак, конфигурация для контроллера ENLOGIC готова, загружаем ее в эмулятор контроллера, эмулятор автоматически перезагружается, и через несколько секунд в окне ENLOGIC видны данные от сервера МЭК 61850-8-1:

61850-13.png

Теги в корневой группе модуля – измерения, берутся из сервера МЭК 61850-8-1 из логического узла MMXU1 – трехфазные измерения.

Теги в группе ТС берутся из разных логических узлов:

  • ТС1-ТС8 это сигналы логического узла GGIO1 – Ind9-Ind16, в модуле ЭНИП-2 эти сигналы отображаются на 8 входов модуля
  • У тега Выключатель MMS-адрес тега мы задали как CSWI1.Pos.stVal[ST] – это значит что сигнал положения выключателя (и идеологии ENLOGIC и SCADA) мы берем из логического узла CSWI1 - класс логического узла оперативное управление коммутационным аппаратом

Также в группе ТУ сигнал управления Вкл/Откл также берется из этого же узла CSWI1 – адрес тега CSWI1.Pos.Oper.ctlVal[CO].

В эмуляторе сервера 61850-8-1 в программе IEDScout можно менять значения переменных.

Неопределенное состояние коммутационного аппарата (DP=00):

61850-14.png

Ошибочное состояние коммутационного аппарата (DP=11):

61850-15.png

Также эмулятор IEDScout умеет имитировать работу функционального блока в части отработки команд телеуправления, изменяя состояние выходного сигнала CSWI1.Pos.stVal[ST], поэтому подавая команды в тег Вкл/Откл мы автоматически видим изменение состояния тега Выключатель.

Включение:

61850-16.png

Отключение:

61850-17.png

Лог формирования команд управления в эмуляторе контроллера ENLOGIC:

61850-18.png

Отметим, что приход сигнала CSWI1.Pos.stVal[ST] происходит не сразу, а с задержкой несколько секунд. Это происходит по причине того, что этот сигнал в текущей конфигурации модели 61850 в ЭНИП-2 не находится в наборе данных, используемом для отсылки информации по изменению – сейчас там лежат только сигналы логического узла GGIO1. Поэтому сигнал CSWI1.Pos.stVal[ST] опрашивается периодическим опросом, который в нашей текущей конфигурации происходит с периодом 10 сек.

Ну и наконец изменим IP-адрес сервера 61850 в нашей конфигурации на адрес реального прибора ЭНИП-2, и загрузим конфигурацию в эмулятор контроллера:

61850-19.png

Для прибора ЭНИП-2 также была немного скорректирована конфигурация в части списка объектов в наборах данных, поэтому теперь служебный тег PERIODICAL_READS_COUNT показывает значение 0, что означает, что все параметры успешно запрашиваются через механизм отчетов.

© Alexander Burmistrov, 2019