Гибридный моделирующий комплекс (ГМК) создан на кафедре электрических станций Томского политехнического университета по заказу объединенного диспетчерского управления Тюменской энергосистемы. Руководитель проекта - A.С.Гусев. Назначение комплекса - моделирование электродинамических и электромагнитных переходных процессов в больших энергосистемах. ГМК представляет собой гибрид специализированной аналоговой вычислительной машины и цифрового компьютера. Аналоговая часть решает системы нелинейных дифференциальных уравнений в реальном масштабе времени, а цифровая часть управляет работой аналоговой части, реализует функции системной автоматики и релейной защиты и организует взаимодействие ГМК с пользователями.
В этом проекте я участвовал как разработчик программного обеспечения. Кроме того, в мою задачу входила разработка магистрально-модульного интерфейса взаимодействия частей комплекса и контроллера магистрали.
Программное обеспечение комплекса представляет собой интегрированную среду Admw, в которой работают пользователи ГМК и которая управляет его аппаратурой. Admw написана на C++ (Borland C++ 5.0) для операционной системы Windows 95, 98. ГМК был сдан в эксплуатацию в 1998 году и сейчас я выполняю сопровождение программы. Это самая сложная из моих программ - как по объему кода (200 тыс. строк), так и по количеству реализованных в ней идей.
Admw содержит несколько подсистем. Далее будут вкратце описаны характеристики этих подсистем.
С точки зрения пользователя, моделирование осуществляется совокупностью связанных друг с другом объектов: генераторов, линий, трансформаторов, групп двигателей, системной автоматики и т.д. Каждый такой объект является классом (в терминах объектно-ориентированного программирования) - он имеет набор собственных данных, свойств и методов. Класс инкапсулирует либо аналоговый вычислительный модуль, либо программный управляющий модуль. Классы аналоговых модулей наследуются от базовых классов, ориентированных на работу с аппаратурой ГМК. Редактор базы объектов позволяет создавать новые объекты и их свойства. Все объекты базы организованы в иерархическую древовидную структуру.
Объекты базы могут простыми (процедуры, функции, переменные) или составными (классы, элементы, субмодули). Для программирования объектов используется специально разработанный объектно-ориентированный язык AdmwL. На этом языке описываются сценарии моделирования и программные элементы ГМК.
Эта подсистема играет в Admw роль, подобную роли проводника Windows.
Пользователи ГМК запускают сценарии моделирования, наблюдают ход и результаты моделирования с помощью интерактивных форм, на которых изображается моделируемая схема, измерительные приборы различных типов (цифровые, линейные, угловые, векторные, многолучевые осциллографические) и элементы управления. Для их создания и редактирования используется Редактор форм. Эта подсистема напоминает редактор форм Delphi.
Вид форм в конкретной энергетической программе
Редактирование свойств приборов выполняется с помощью специализированных диалогов, например:
Быстрые переходные процессы, возникающие в ходе моделирования, можно сохранять (осциллографировать). После завершения моделирования их можно посмотреть в Визуализаторе.
Наиболее важная компонента Admw - язык AdmwL. Использование проблемно-ориентированного языка позволило изолировать друг от друга вопросы разработки системного и прикладного программного обеспечения. Это дает мне возможность заниматься только системной частью программного обеспечения (не вникая в тонкости, связанные с проблемами энергетического моделирования), а программисты-энергетики получают возможность самостоятельно решать свои постоянно изменяющиеся прикладные задачи (не вникая в тонкости Windows-программирования). Это снимает у энергетика барьер между постановкой задачи и ее реализацией, требуя от него только минимальных знаний из области программирования.
AdmwL имеет все основные управляющие программные структуры - присваивание, ветвление, цикл, вызов процедуры, блок. Кроме этого, язык имеет оператор запуска параллельных процессов (работающих в режиме кооперативной мультизадачности) и оператор запуска системного процесса, управляющего моделированием и осциллографированием быстропротекающих процессов. Синтаксис AdmwL подобен синтаксису C, но с русскими ключевыми словами и идентификаторами. Компилятор AdmwL транслирует исходные тексты в интерпретируемый байт-код. Такое построение компилятора дает хороший компромисс между скоростью компиляции и скоростью выполнения, позволяет легко реализовать диспетчеризацию параллельных процессов и обработку всех ошибок, которые могут возникнуть при выполнении программы. Синтаксический анализатор компилятора AdmwL написан на языке YACC.
Расширение функциональных возможностей языка происходит за счет библиотеки процедур и функций. Компоненты библиотеки можно разделить на такие группы:
Несмотря на то, что программа разрабатывалась для конкретного применения в составе гибридного моделирующего комплекса, Admw можно определить как универсальную SCADA-систему с клиент-серверной архитектурой, обладающую возможностями сбора данных и управления технологическими процессами, функциональной обработки полученных данных и их визуализации.
Admw.zip - Документация к Admw (171K).
Выполнена в виде документа Word на 95 страницах. Соответствует Admw версии 7.0 от 19 июля 2001.