В информационных системах российских распределительных сетей трудностей немало, одна из самых весомых — отсутствие достоверных данных о распределительной сети 0.4-20 кВ, важных для формирования обоснованной инвестиционной программы.
В СИГМЕ комплексные задачки любят. Поэтому отдел решений по автоматизации расчетов технических условий, чья работа напрямую зависит от достоверности данных, взялся за создание универсального инструмента для их выверки. И начали мы с разработки механизма загрузки и выгрузки данных с помощью конструктора на базе стандартов CIM (Common Information Model, electricity).
Команда работала над модулем выверки в рамках СИГМА СУС — решения нашей компании для управления распределительными электрическими сетями. Однако созданный конструктор и наши рекомендации будут полезны не только тем, кто занимается выверкой данных в распределительных электросетевых компаниях, но и тем, кто работает с показателями на других проектах.
С чего мы начали
За годы работы мы накопили неплохой опыт по загрузке и верификации данных из следующих информационных систем: РТП-3, Omnis, Quasy-Q3, СУПА на базе SAP, КГИС Горизонт, ИВК-СЭС, Пирамида, VISIO и других. Но нашим знаниям стандартов и методологии CIM не хватало глубины.
В первую очередь, мы изучили российские стандарты ГОСТ Р 58651.1-2019 и ГОСТ Р 58651.2−2019. Но с учетом их направленности преимущественно на высоковольтные сети (110кВ и выше), а также длительных сроков утверждения, мы обратили внимание на европейские стандарты от IEC. Основным документом CIM, выбранным для изучения, стал IEC 61970-301:2016.
Загрузка данных
За несколько лет нам удалось разработать специальные шаблоны Excel, на которых базируется ручная выверка данных, проводимая операторами и аналитиками. Нам было важно сохранить этот опыт, поэтому мы решили создать программу разбора CIM XML файлов, в которой бы на первом этапе динамически создавались именно плоские таблицы (под плоскими понимаются таблицы без иерархической структуры) со всем атрибутивным составом с последующей записью в них исходных данных в полном объеме.
С точки зрения программирования любой приходящий файл мы, в первую очередь, представляем как шаблон. В нашем случае шаблонов оказалось два: DMS[1] и TM[2]. Соответственно, для формирования шаблона типовой файл должен содержать максимальное количество структурных элементов.
Ниже представлен небольшой фрагмент полученного (типового) XML файла типа TM:
Чтобы контролировать и обеспечивать целостность данных, мы обратились к существующим стандартам с описанием базисных классов (структурных элементов).
На сегодняшний день мы обрабатываем следующие классы. Расшифровка классов:
№ |
Наименование |
Примечание |
1. |
Substation |
Подстанция |
2. |
Bay |
Группа коммутационного оборудования |
3. |
BaseVoltage |
Стандартное номинальное напряжение |
4. |
PowerTransformer |
Силовой трансформатор |
5. |
PowerTransformerEnd |
Электрический вывод силового трансформатора |
6. |
VoltageLevel |
Распределительное устройство |
7. |
BusbarSection |
Секция шин |
8. |
Disconnector |
Разъединитель |
9. |
Breaker |
Выключатель |
10. |
LoadBreakSwitch |
Выключатель нагрузки |
11. |
GroundDisconnector |
Заземляющий разъединитель |
12. |
Fuse |
Предохранитель |
13. |
Line |
ЛЭП |
14. |
ACLineSegment |
Сегмент линии переменного тока |
15. |
ConnectivityNode |
Соединительный узел |
16. |
Terminal |
Полюс электропроводящего оборудования |
17. |
EnergyConsumer |
Точка потребления (потребитель электрической энергии) |
18. |
SubGeographicalRegion |
Административно-территориальная единица |
19. |
CurrentTransformer |
Трансформатор тока |
20. |
PotentialTransformer |
Трансформатор напряжения |
21. |
LoadBreakSwitch |
Выключатель нагрузки |
22. |
ExtNetworkInJection |
Внешняя сеть |
В краткой форме наш функционал по разбору полученного CIM XML файла и загрузке в плоские таблицы выглядит так:
В результате обработки файлов мы получили таблицы с классами (GUID, атрибуты, свойства и ассоциации с другими классами) и сформировали итоговую количественную аналитику:
Количество таблиц с классами |
18 |
Перечень классов |
Substation, Bay, BaseVoltage, PowerTransformer, PowerTransformerEnd, VoltageLevel, BusbarSection, Disconnector, Breaker, LoadBreakSwitch, GroundDisconnector, Fuse, Line, ACLineSegment, ConnectivityNode, Terminal, EnergyConsumer |
Классы, которые отсутствуют в выгрузке полностью |
SubGeographicalRegion, CurrentTransformer, PotentialTransformer |
Классы, которые используются частично |
LoadBreakSwitch, ExtNetworkInJection |
Выгрузка данных
Мы разобрались в стандартах и классах CIM, создали функционал загрузки и распределения данных, после чего приступили к работе над инструментом для выгрузки данных. Проверив внутренние данные СИГМА СУС на соответствие стандартам CIM, пришли к выводу, что при формировании объектов исходной системы в формате CIM могут возникнуть задачи, связанные с несоответствием классов, структуры, смыслового наполнения системы и стандарта CIM. Для каждой системы это индивидуально.
В процессе работы мы столкнулись с необходимостью урегулировать задачи по соответствию, наличию классов и определению соединительных узлов. Решалась эта проблема объединением классов в группы, созданием дополнительных таблиц и использованием вспомогательных атрибутов объектов СИГМА СУС.
После устранения несоответствий мы приступили к созданию инструмента для выгрузки данных. Им стал конструктор, который собирает блоки с информацией об объекте, а также его характеристиках и ассоциациях с другими объектами. Преимущество такого конструктора очевидное — у обычного пользователя есть возможность добавить новые атрибуты, характеристики объектов и связи между ними без корректировки исходного кода.
Ниже перечислили названия основных таблиц конструктора и их описание:
Наименование таблицы |
Описание |
CLASS_REFERENCE |
Перечень классов Q3 и соответствующие им группы классов СИГМА СУС. Также описание начала и конца блока для каждого класса, описание конструкции записи полной ссылки ассоциации для класса. Классы Q3 могут повторяться несколько раз, при этом соответствовать разным группам СИГМА СУС. Это связано с несоответствием классов двух систем. |
CONSTRUCTOR |
Перечень классов Q3 и группа СИГМА СУС, с указанием классов-свойств или классов, которые наследуют те или иные свойства. Указывается таблица, с которой работаем по объектам (текущая строка). Также указывается тип класса 0 или 1. Это принятое нами деление классов на условные — 0, которым нет соответствующего класса СИГМА СУС, и вещественные — 1. |
CLASS_ATTRIBUTES |
Перечень атрибутов с указанием наименования поля, из которого берется значение. |
CLASS_PROPERTY |
Перечень свойств с указанием класса Q3, к которому относится то или иное свойство. Наименование поля, из которого берется значение свойства. Описание начала и конца конструкции, а также указание на тип класса. |
ASSOCIATION |
Перечень ассоциаций объектов, с указанием начального, конечного классов, наименования ассоциации, таблицы, из которой берется GUID. |
CONNECTIONS |
Перечень связей объектов СИГМА СУС между собой, как условных, так и вещественных. С указанием таблицы, поля или комбинации полей, по котором связаны объекты. |
LIMIT |
Перечень объектов, для которых мы собираем блоки в формате Q3. Значение в поле LIMIT дает возможность выбрать объекты, по которым мы хотим собрать блоки и получить данные в результирующей таблице. |
RESULT_XML |
Таблица с результатом отработки кода конструктора. |
AS_OBJECTS |
Таблица, в которой запросом отбираются объекты СИГМА СУС с необходимым набором полей, с которыми работаем. Также на данном этапе формируются записи наименований, которые попадают в блоки итоговой таблицы RESULT_XML |
Также делимся моделью конструктора:
В итоге данные из таблицы RESULT_XML представляются в виде файла XML. Делимся фрагментом полученного XML-файла:
В итоге
Мы сделали первый шаг на пути к созданию модуля выверки данных на базе форматов CIM: собрали конструктор, который можно адаптировать и использовать в различных проектах, где требуется работа с данными, их выгрузка и систематизация. Сейчас мы в минимальные сроки можем загрузить данные из цифровых источников, которые есть у любой сетевой компании, и выполнить их выверку, но пока в полуручном режиме.
Куда хотим двигаться дальше?
Автоматически создавать непротиворечивые схемы нормального режима любой сетевой компании с помощью СИГМА СУС. Сопоставлять данные, для которых есть однозначное соответствие; формировать таблицы связей между различными источниками данных; выявлять противоречия (без ручной выверки) и возвращать информацию с рекомендациями по исправлению данных источнику.
Запускать автоматический расчет технических условий на присоединение потребителей до 150 кВт с подключением к сайту Госуслуг. Что в свою очередь создаст спрос на достоверные данные и может запустить процесс формирования достоверной цифровой модели всех электрических сетей России.
Формировать обоснованную инвестиционную программу с привязкой каждого титула к местности и перспективной схеме нормального режима.
Делимся стандартами, которые рекомендуем изучить:
Наименование |
Перевод |
CHF |
Ссылка |
IEC 61970-301:2016 Part 301: Common information model (CIM) base |
Интерфейс прикладных программ системы управления производством и передачи электроэнергии (EMS-API) — Общая информационная модель – базовая часть |
455 |
|
IEC TS 61970-401:2005 Part 401: Component interface specification (CIS) framework |
Общая информационная модель – расчет динамической устойчивости |
100 |
|
IEC 61970-453:2014+AMD1:2018 CSV Part 453: Diagram layout profile |
Профиль обмена графической информацией |
250 |
|
IEC 61970-452:2017 Part 452: CIM static transmission network model profiles |
Профили статических моделей электрических сетей |
350 |
|
IEC 61970-456:2018 Part 456: Solved power system state profiles |
Профили для вычисленных состояний энергосистем |
300 |
|
IEC 61970-552:2016 Part 552: CIM XML Model exchange format |
Описание формата обмена моделями CIM XML |
200 |
|
|
|
2110 |
|
Нам было бы очень интересно обсудить способы решения схожих задач, с которыми сталкивались вы. Будем рады вашим комментариям и вопросам!
Автор: Дарья Думкина
[1] DMS (Distribution Management System) — непосредственное описание распределительной сети
[2] ТМ (Техническое Место) — объекты CIM с привязанным кодом ТМ SAP
dcs_pls
Т.е. ваша цель распространить систему на всю страну?
SIGMA_team Автор
Да, все верно