Воеводин В.П., Клименков Е.В.
ГНЦ РФ Институт физики высоких энергий, Протвино, Россия
Работа пользователя с Системой Управления (СУ) состоит из двух этапов – выбора конкретной задачи управления или контроля участком технологической подсистемы (ТП) ускорителя и работы с этой задачей. Поэтому основные структуры данных, которые необходимы для обеспечения работы пользователя, - это описание пользователей, описание задач, описание прикладных программ (ПП), параметры настройки и состояния ТП (прикладные данные) (рис.1).
Разработка и унификация структур данных в Системе Управления (СУ) У-70 обеспечивается единой в СУ средой хранения данных, которой является распределенная База Данных реального времени (БД) ССУДА [1]. БД поддерживает трехмерные структуры данных в виде таблиц, состоящих из нескольких плоскостей, каждая их которых одинаковым образом разбита на строки и столбцы.
1. Описание пользователей СУ.
Одной из функций СУ является защита данных настройки ТП от несанкционированного доступа. Для реализации этого организовано описание всех пользователей СУ, а взаимодействие пользователей с СУ допускается только посредством Диалоговой программы [2], которая идентифицирует работающего с ней пользователя.
Для хранения описаний в БД создана таблица, каждая строка которой содержит описание одного пользователя. Описание содержит имя пользователя, код профессии и список приоритетов работы – права на работу с каждой установкой ускорительного комплекса, соответствующие профессии. В настоящее время фиксированы следующие профессиональные группы пользователей – физик-ускорительщик, оператор и старший оператор службы управления, инженер-электронщик, программист, суперпользователь.
2. Описание задач СУ.
Описание задач контроля и управления всеми технологическими подсистемами ускорительного комплекса У-70 организовано в виде иерархически упорядоченной структуры типа дерево. Дерево описания задач представляется для вывода пользователю в виде диалогового меню СУ. Минимальным объектом описания задач является пункт диалогового меню.
Для хранения меню в БД организована трехмерная таблица, каждая плоскость которой содержит список пунктов, на которые имеется одна общая ссылка, – одна страница меню. Начальная страница меню содержит список установок ускорительного комплекса. Строка таблицы состоит из атрибутов одного пункта - название пункта, ссылка на следующую страницу меню, уровень приоритета доступа к следующей странице, ссылка на список связанных пунктов.
Уровень приоритета запрещает доступ к следующей странице пользователям, имеющим приоритет меньше, чем задан уровнем. Запрет распространяется на всю ветвь дерева, т.е. на все страницы, на которые укажут последующие ссылки. Пункты с максимальным значением 255 уровня приоритета не выводятся пользователю, они содержат специальную информацию о системе.
Пункты меню, связанные с данным, - это пункты, в которых запрещается вести работу одновременно с работой в данном пункте. Запрет распространяется также на всю ветвь дерева. Для хранения списков связанных пунктов меню в БД создана вспомогательная таблица. Каждая ее строка содержит один список, составленный из координат каждого пункта – номер плоскости и строки в таблице, содержащей все меню.
3. Описание прикладных программ.
Работа пользователя с конкретной задачей начинается в конечном пункте меню. Такой пункт содержит ссылку не на следующую страницу меню, а на описание данной конкретной задачи, которым является описание всех необходимых для работы с задачей прикладных программ – одной ПП или пакета ПП.
Минимальной единицей описания является одна ПП. Поэтому для хранения описаний в БД создана трехмерная таблица, каждая плоскость которой содержит одну строку с атрибутами одной ПП:
-
сетевое имя компьютера, в котором должна работать ПП, имя ПП и каталога, в котором она хранится, и командная строка параметров, передаваемая программе при загрузке ее в память;
-
список функций, поддерживаемых ПП или пакетом ПП в данной задаче - редактирование данных, просмотр данных, запись данных в контроллер оборудования, создание файла нестандартной графики bitmap;
-
списки физических и технологических параметров ТП (см. ниже), для работы с которыми предназначена ПП или пакет ПП;
-
если есть еще одна ПП, то указывается ссылка на ее описание, содержащая номер плоскости этой же таблицы.
Списки функций и параметров ТП указываются только в описании первой ПП, т.е. описания ПП пакета повторяют описание головной ПП.
4. Параметры настройки и состояния ТП.
Параметры настройки технологического процесса и параметры его состояния определяются как набор дискретных величин – значений параметров, распределенных по времени или по координатам, например, дискретные функции токов управления источниками питания и измерения этих же токов. Поэтому каждый параметр состоит из нескольких значений и рассматривается как вектор.
Параметр-вектор является в СУ У-70 минимальной и основной единицей описания технологического процесса. Прикладные программы в СУ У-70 можно рассматривать как объекты, обладающие необходимыми свойствами для работы с определенными группами параметров.
Все прикладные данные в СУ У-70 разделены на два основных типа (рис.2) – физические и технологические, которые по своему назначению могут быть управляющими или измеренными.
4.1. Технологические параметры.
Технологические параметры - это внутрипрограммные данные, которые часто представляют собой коды аппаратуры. Поэтому для них предусмотрен только один тип переменной – целое, 2 байта. Просмотр значений технологических параметров полезен в аварийных ситуациях разработчикам аппаратуры и программного обеспечения, выводятся они только как числа в десятичном и шестнадцатиричном форматах.
4.2. Физические параметры.
Физические параметры описывают технологический процесс в реальных физических величинах – амперах, вольтах, метрах и т.п. Для этой цели в СУ определены следующие типы переменных – вещественное длиной 8 байт, целые длиной 4, 2 и 1 байт, текстовая строка длиной не более 16 байт. Значения физических параметров представляются пользователю в числовом и графическом видах.
Определены дополнительные переменные – статус и комментарий - как однобайтовые целые, которые при выводе пользователю заменяются на текстовые строки из специально созданных для этого двухмерных таблиц БД. Каждая строка такой таблицы содержит несколько текстовых строк длиной 16 байт. Статусная переменная может редактироваться пользователем, а комментарий – нет.
4.3. Управляющие и измеренные параметры.
Настройка технологического процесса ведется посредством управляющих физических параметров – их редактированием, преобразованием в управляющие технологические параметры и передачи технологических параметров в контроллер оборудования для последующей записи в аппаратуру.
Состояние технологического процесса характеризуют измеренные физические параметры, которые вычисляются по специальным алгоритмам преобразования измеренных значений технологических параметров.
5. Хранение параметров.
Разработано три унифицированных типа таблиц в БД, предназначенных для хранения прикладных данных СУ У-70, – таблицы значений, паспортные таблицы, таблицы списков параметров. Значения параметров формируются во время работы с объектом СУ, информация в паспортных таблицах и таблицах списков готовится программистом при разработке задачи работы с объектом СУ.
5.1. Значения параметра (рис.3.а).
Хранение значений параметров организовано в столбцах таблиц значений. Таблицы значений физических параметров организуются только на дисках Рабочих Станций, а таблицы значений технологических параметров – на дисках и в памяти контроллеров оборудования.
5.2. Паспорт параметра (рис.3.б).
Каждому параметру-вектору соответствует его описание – паспорт, содержащий название параметра, число его значений, тип значений как переменных, формат вывода значений, максимально допустимые границы его значений. Паспорт каждого параметра содержит также два семафора для организации взаимодействия ПП [3] – для передачи пользователю сообщения от ПП об обновлении значений параметра (семафор 1) и для передачи команды пользователя для ПП (семафор 2).
Каждая паспортная таблица соответствует какой-либо таблице значений. Паспорт каждого параметра хранится в строке паспортной таблицы. Строка с паспортом параметра имеет тот же номер, что и номер столбца со значениями параметра в таблице значений. Паспортные таблицы организуются только на диске Рабочей Станции, т.к. ПП в контроллерах оборудования с ними не работают и интерфейс с ПП на Рабочих Станциях организован специальным образом [4].
5.3. Список параметров (рис.3.в).
Параметры для вывода пользователю формируются в списки, хранение которых организуется в таблицах списков на диске. Каждый список расположен в строке таблицы. Строка содержит число параметров в списке и однозначное определение всех параметров списка. Определение состоит из имени паспортной таблицы, номера ее плоскости, номера ее строки, имени таблицы значений. Если номер строки отрицательный, то параметр не редактируется. Если номер плоскости и номер строки оба отрицательные, то параметр не выводится пользователю. Это требуется, например, в задаче копирования параметров из одной таблицы в другую [5] или, чтобы скрыть измеренные значения, которые предназначены для записи в архив измерений и могут быть упакованными в сжатый формат для уменьшения объема архива.
Строка таблицы списка включает три семафора для организации взаимодействия ПП [3]- для передачи пользователю сообщения от ПП об обновлении значений нередактируемых и управляющих параметров в списке (семафоры 1, 2) и для передачи команды пользователя для ПП (семафор 3).
5.4. Хранение измеренных технологических параметров (рис.4.а).
Для хранения значений группы измеренных технологических параметров организуется двухмерная таблица БД, расположенная как на диске Рабочей Станции, так и в памяти контроллера оборудования. Набор статистики измерений ведется в другой таблице БД и только на диске. Эта таблица трехмерная, состоит из 30 плоскостей, каждая из которых идентична единственной плоскости первой таблицы.
Паспортная таблица имеет две плоскости, соответствующих таблицам со значениями параметров.
5.5. Хранение управляющих технологических параметров (рис.4.б).
Для хранения значений группы управляющих технологических параметров организуется двухмерная таблица БД, расположенная на диске Рабочей Станции и в памяти контроллера оборудования. Соответствующая ей паспортная таблица состоит из одной плоскости.
Если технологическая подсистема поддерживает возможность независимой работы в нескольких режимах работы ускорителя, то таблица значений и паспортная таблица организуются как трехмерные. Каждая плоскость таблиц соответствует одному режиму работы.
5.6. Хранение измеренных физических параметров (рис.4.в).
Для хранения значений группы измеренных физических параметров организуется трехмерная таблица БД, состоящая из 33 плоскостей и расположенная на диске Рабочей Станции. Непосредственно измеренные значения записываются в первую плоскость, а значения предыдущих измерений записываются в плоскости с 5 по 33 и соответствуют значениям измеренных технологических параметров в таблице на диске. Паспортная таблица состоит из одной плоскости.
5.7. Хранение управляющих физических параметров (рис.4.г).
Значения группы управляющих физических параметров хранятся в трехмерной таблице БД на диске Рабочей Станции. Таблица состоит из 33 плоскостей. Первая плоскость всегда содержит корректные значения параметров, предназначенные для вывода пользователю – это так называемая “горячая” копия параметра. Во вторую плоскость записываются новые значения, введенные пользователем или скопированные из архива. Новые значения предназначены для проверки на корректность прикладной программой, которая после проверки запишет их в первую плоскость. Третья плоскость служит как временный буфер для хранения значений только во время работы пользователя с параметром – “теплая” копия параметра. Плоскости с 4 по 33 являются архивом для долговременного хранения значений параметра – “холодные” копии параметра. Паспортная таблица, соответствующая этой таблице значений, состоит из одной плоскости.
Хранение значений параметра для нескольких режимов работы организуется в нескольких одинаковых таблицах значений БД на диске. Соответственно, паспортная таблица составляется из нескольких плоскостей. Кроме того, дополнительно создается идентичная таблица значений и соответствующая ей двухмерная паспортная таблица для обеспечения алгоритма управления связанными режимами [5].
Архивы ведутся для групп параметров, объединенных в списки вывода. Каждой “холодной” копии в архиве пользователь присваивает имя. Для хранения имен в БД создана трехмерная таблица. Строка таблицы содержит атрибуты одного архива – имя “холодной” копии, дату ее создания и имя пользователя, создавшего запись. Плоскости таблицы соответствует номеру “холодной” копии (1-30) внутри архива.
6. Библиотеки функций для работы с параметрами.
Основная часть всех ПП СУ предназначена для работы с группами параметров. Алгоритмы, общие для многих ПП, реализованы в виде процедур-функций, которые объединены в общедоступные библиотеки.
6.1. Надстройка над БД.
БД обеспечивает базовые услуги управления данными – открытие и закрытие таблиц, чтение и запись таблиц, определение структуры таблиц, передача данных между компьютерами. Однако, специфика вычислительных средств СУ, используемые сетевые протоколы потребовали надстройки над системой управления данными - автоматическое деление буфера данных на максимально допустимые порции, автоматические повторные чтение и запись данных, автоматическое переоткрытие таблиц в БД и другой необходимый сервис. Усовершенствованные возможности работы с БД были реализованы в виде библиотеки функций на языке программирования С, используемой практически во всех прикладных программах СУ на Рабочих Станциях.
6.2. Библиотеки классов.
Стандартизация правил работы с таблицами прикладных данных позволила организовать функции, реализующие эти правила, в иерархически построенные классы. Классы реализованы на языке С++ и в полном объеме обслуживают работу со значениями групп управляющих и измеренных технологических и физических параметров, их паспортами, а также одновременную работу с парой объектов – значениями группы параметров любого типа и их паспортами.
6.3. Файлы нестанадртной графики.
Файлы графического формата bitmap используются для нестандартного в СУ представления данных пользователю. Файлы создаются динамически, в основном, измерительными ПП. Для создания таких файлов в операционной системе Unix была разработана библиотека функций на языке программирования С. Создана также копия этой библиотеки для работы под управлением MSDOS в целях более удобной в некоторых случаях отладки алгоритма создания файлов bitmap на IBM PC.
7. Заключение.
В настоящее время БД СУ У-70 включает 1377 таблиц, в которых хранится 51 описание пользователей, 4069 пунктов диалогового меню на 968 страницах, 191 список связанных пунктов меню, 4896 описаний ПП, около 23 тысяч физических и 10 тысяч технологических параметров, 1455 долговременных архивов. Динамически создается более 70 файлов bitmap.
Главным итогом унификации структур данных является стандартизация правил работы с ними в ПП. Правила реализованы в виде библиотек функций, использование которых значительно упростило и ускорило создание прикладного программного обеспечения СУ У-70, а также повысило его надежность.
Список литературы
[1] Воеводин В.П. ССУДА – Специализированная Система Управления распределенными Данными реального времени — Труды XVI Совещания по ускорителям заряженных частиц, Протвино, 1998, т.1, стр.135.
[2] Воеводин В.П., Кузьменко В.Г., Щербаков С.Е. Пользовательский интерфейс в новой системе управления ускорительного комплекса У-70 — Труды XVI Совещания по ускорителям заряженных частиц, Протвино, 1998, т.1, стр.141.
[3] Клименков Е.В. Структура прикладного программного обеспечения в Системе Управления комплекса У-70 — доклад на этом Совещании.
[4] Балакин С.И., Клименков Е.В. Первичная диагностика в Системе Управления комплекса У-70 — доклад на этом Совещании.
[5] Клименков Е.В. Организация задач контроля и управления в Системе Управления комплекса У-70 — доклад на этом Совещании.