В информационных системах российских распределительных сетей трудностей немало, одна из самых весомых — отсутствие достоверных данных о распределительной сети 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