ru
ru en

Алтай — онлайн-генератор Model Implementation Conformance Statement (MICS)

Месяц назад мы запустили онлайн-сервис для формирования декларации соответствии реализованной информационной модели, лучше известной специалистам в области IEC 61850 как Model Implementation Conformance Statement (MICS). По итогам месяца «обкатки» мы нашли в нём некоторые «косяки» — спасибо нашим пользователям, безжалостно заливающим в него все возможные SCL, и теперь считаем, что боевое крещение он вполне прошёл для того, чтобы быть представленным широкой публике.

Алтай — для кого?

В первую очередь, Алтай — это инструмент для разработчиков устройств (ИЕДов). Нет, конечно, им может воспользоваться кто угодно, например, для того, чтобы в экспресс-режиме в виде таблички вывести все имеющиеся в устройстве логические узлы и посмотреть их группировку по логическим устройствам. Однако, это не основное назначение Алтая.

Когда разработчику необходим Алтай?

Во-первых, Алтай необходим разработчику при подготовке к испытаниям для получения сертификата соответствия IEC 61850 образца UCA. Большинство разработчиков, обращавшихся в испытательные центры, включая российский НТЦ ФСК ЕЭС, знают, что первым этапом прохождения проверки соответствия является предоставление всей необходимой сопроводительной документации на устройство: PICS, MICS, TICS, PIXIT. Собственно, самый объемный из них — MICS — Алтай и позволяет сформировать буквально за секунду на основе ICD-файла. Ниже мы ещё обсудим формат этого документа, пока перейдём к «во-вторых».

Во-вторых, Алтай позволяет систематизировать процесс разработки модели устройства, используя при этом устоявшиеся практики написания программного кода. Для этого мы дополнили выводимый файл подсвечиваемыми метками FIXME, TODO и CHANGED.

Как их использовать? Этому мы посвятим отдельный пост в нашем блоге.

Почему MICS из Алтая отличается от шаблона UCA?

«Мы посмотрели Алтай, он нам не подходит, он формирует документ не так, как требуется» — примерно так нам говорили первые наши пользователи.
«Ок, — говорили мы, пожимая плечами. — Но позвольте вам объяснить…»

Во-первых, в коммерческой версии доступно формирование MICS в точном соответсвии с шаблоном UCA. Это так, чтоб не было похоже, что мы слишком много на себя берем…

Но всё же, во-вторых: предложенная нами форма родилась не с пустого места… Начнём с того, что мы подсмотрели как формируют MICS производители, которые уже прошли проверки в UCA. Например, Alstom, Siemens, Schneider Electric. Как вы можете догадаться, их MICS отличаются от стандартного слабоинформативного шаблона UCA.

Основное отличие заключается в представлении перечня логических узлов.

Форма представления списка логических узлов в шаблоне Model Implementation Conformance Statement (MICS) по образцу UCA
Шаблон MICS-файла по форме UCA

Шаблон UCA предлагает перечислить только классы логических узлов, мы — экземпляры. Кроме того, мы группируем экземпляры логических узлов по логическим устройствам. Почему мы так делаем?

Представление перечня логических узлов в MICS из Алтая
Представление перечня логических узлов в MICS из Алтая

MICS — это декларация соответствия модели. Модель устройства — это и логические узлы, и логические устройства. А как без логических устройств понять как сгруппированы функции? Какие функции вводятся и выводятся одновременно переключением режима Mod в LLN0?.. Ну, вот поэтому мы сделали группировку по логическим устройствам.

Перечисление использованных классов логических узлов без указания на их экземпляры (или хотя бы типы) тоже крайне малоинформативно. Любимый всеми репейщиками логический узел PTOC может использоваться для моделирования половины функций КСЗ. Все они могут иметь различный набор объектов данных. Одни могут использовать расширения, другие — нет. Поэтому немыслимо просто взять и описать их все одним классом, без каких-либо дополнительных уточнений. В отличие от стандартного шаблона мы выводим полный перечень экземпляров логических узлов с указанием на их тип. Таким образом можно быстро видеть какие узлы какой тип используют, где есть расширения, а где их нет.

Второе отличие Алтая — это то, что Алтай выводит не только новые и расширенные элементы, но и стандартные. Почему? Опять же — в целях повышения наглядности. Куда проще посмотреть отличие в наборе объектов и атрибутов данных двух логических узлов, если они выведены все, чем ограничиваться только расширенными и новыми.

Но, ещё раз подчеркнём, мы представляем вам выбор — если хотите, формируйте стандартный MICS, в нём никаких отступлений от шаблона нет. Эта функция предоставляется только в коммерческой версии.

Немного о технологии

Важная особенность Алтая — это то, что он не просто делает трансформацию ICD-файла (как это делают XSLT-инструменты), а создаёт модель по ICD-файлу и сравнивает её со стандартом, который «зашит» в Алтай. Именно такой подход позволяет Алтаю выделять расширения и опознавать новые логические узлы, а не просто выводить табличку со всеми данными.

Пример выделения extension-елемента в логическом узле
Пример выделения extension-елемента в логическом узле

Вся обработка файла делается на нашем сервере, вам выдаётся лишь результат обработки. Перед формированием описания Алтай делает базовую проверку файла на предмет его целостности. Отдельно хотелось бы отметить, что Алтай сегодня не делает ни валидации (по XSD), ни проверок (по методикам UCA), он проверяет файл только на предмет доступности всех элементов, на которые установлены ссылки, достаточных для построения MICS. Поэтому в отношении Алтая работает правило «Rubbish In — Rubbish Out».

Ещё одно важное замечание: демонстрационная версия видит ошибки только в той части, по которой она формирует описание. В остальных могут быть ошибки, о которых вы узнаете, получив доступ к полной версии.

О первой и второй редакции

На сегодняшний день MICS формируется по отношению к первой редакции стандарта, но над второй редакцией мы, как вы понимаете, уже работаем.

Лицензия

Полная версия Алтая доступна по подписке. Минимальный срок подписки — 3 месяца. В рамках месяца доступно либо ограниченное, либо неограниченное количество загрузок. Загрузка файла, по которому MICS построить не удаётся (выдаётся ошибка) в загрузки не засчитывается — то есть у вас будет возможность потренироваться. Цена на минимальный комплект, как нам кажется, более чем гуманна — вы можете запросить ТКП просто нажав на кнопку «Request full access» в разделе About или на странице со сформированным в демонстрационном режиме MICS.

Следующий шаг

Мы дали нашему продукту такое «большое» название не просто так. Это будет «большой продукт», просто через некоторое время. Вы можете повлиять на то, что появится в нём раньше: проголосовать за необходимый именно вам функционал вы можете в форме запроса полной версии (в самом низу).

Попытка обмана

Мы не предусматривали каких-то интеллектуальных механизмов защиты от многократной загрузки частей ICD-файла c целью обхода установленных ограничений демонстрационной версии. Вы можете потратить время и попробовать нас обмануть. Но мы об этом узнаем, вы же сами это понимаете…