Клименков Е.В.
ГНЦ РФ Институт физики высоких энергий, Протвино, Россия
Задача Системы Управления (СУ) обслуживания технологической подсистемы (ТП) может быть представлена в виде комбинации из базовых задач [1], соответствующих конкретным участкам ТП, каждая из которых относится к одному из трех типов задач – измерения данных, просмотра данных, управления данными. Разделение задач дает основу для унификации и стандартизации программного обеспечения СУ.
1. Анализ базовых задач СУ.
Для хранения и передачи данных в СУ используется распределенная база данных реального времени [2] (БД). Это позволяет разработать структуру программного обеспечения ТП, составленную из прикладных программ, управляемых данными (data driven). Проектирование прикладных программ (ПП) учитывает особенности обслуживаемых задач, работающих с данными управления и измерения – значениями физических и технологических параметров и их описаний. [3]
1.1. Задачи управления.
Функции задач управления ТП заключаются в формировании физических управляющих параметров, преобразовании их в технологические и передачи технологических параметров в контроллер оборудования (КО) для последующей записи в аппаратуру.
Задачи управления загружаются пользователем только в случае необходимости настройки работы ТП.
Задачи управления выполняются в интерактивном режиме работы пользователя с физическими параметрами. Список таких параметров для данной задачи составляется разработчиком заранее и хранится в таблицах вывода [3], посредством которых пользователь работает с задачей. По правилам СУ, каждый параметр, воздействующий на состояние ТП, может быть включен в качестве управляющего параметра только в одну базовую задачу управления. Однако, этот же параметр может присутствовать в любых других задачах в качестве комментария [3].
1.2. Задачи измерения.
Задачи измерения выполняют функции чтения из КО измеренных технологических параметров и преобразования их в физические параметры.
Диагностика процессов управления и измерения, реализуемая ПП в КО, является необходимой для выполнения задач измерения - чтение кодов измерительной аппаратуры из КО проводится только в том случае, если процесс измерения в КО завершился успешно. Диагностическую информацию об управлении и измерении можно рассматривать как разновидность информации об измерении – она также считывается из КО и обрабатывается для вывода пользователю.
Задачи измерения должны выполняться в течение всего сеанса работы ускорительного комплекса. Они работают без диалога с пользователем и используют параметры настройки, которые хранятся в таблицах БД. Редактирование параметров настройки является уже задачей управления.
1.3. Задачи просмотра данных.
Просмотр всех данных должен быть доступен для просмотра любому пользователю в любое время.
2. Основные типы прикладных программ.
Учитывая свойства базовых задач, программное обеспечение ТП может быть спроектировано как набор ПП, каждая из которых реализует только одну функцию - измерение, управление, просмотр. Это заметно упрощает создание программного обеспечения. Особенности реализации этих функций позволяют специфицировать типы программ.
Функция измерения (диагностики) реализуется одной ПП для всех измеряемых (диагностических) параметров, подготовленных в данном КО, даже если измеряемые параметры относятся к разным физическим задачам или разным ТП. Это правило позволяет оптимизировать сетевые запросы и соблюдается в том случае, если ТП обслуживается несколькими КО.
Т.к. каждый управляющий параметр относится только к одной задаче управления [3], то для работы с ней составляется уникальный по содержанию список из всех принадлежащих задаче параметров, алгоритм работы с которыми реализуется одной специально создаваемой для этого ПП, поддерживающей диалоговые функции. Потребность СУ в совместных задачах управления [1], объединяющих несколько базовых задач управления, реализуется совместной работой уже имеющихся ПП.
Функция просмотра данных заключается в периодическом просмотре значений семафоров параметров в паспортных таблицах [3].
Таким образом, ПП, реализующая функцию просмотра данных, может быть единой для всех задач просмотра данных. Кроме того, она может быть использована в качестве головной для пакета управляющих ПП и, наконец, она может работать в смешанной задаче просмотра и управления, список параметров которой содержит как управляемые, так и нередактируемые параметры [3].
Таким образом, СУ имеет следующие основные типы ПП, сопоставляемые трем типам базовых задач СУ (рис.1):
-
Супервизор – постоянно работающая измерительно-диагностическая ПП;
-
Master-программа – головная программа пакета ПП, а также ПП для задач просмотра параметров и для простых задачах управления, в которых требуется только редактирование физических параметров;
-
Slave-программа – ПП, обеспечивающая работу базовой задачи управления.
2.1. Супервизоры.
Каждый Супервизор предназначен для работы только с одним КО. Таким образом, это широко распространенный в СУ тип ПП и для них разработан типичный алгоритм, схема которого приведена на рис.2.
Программно Супервизор организован в виде класса. Класс включает унифицированные для всех Супервизоров функции (светлые участки на схеме) и пустые виртуальные функции (серые участки). Виртуальные функции переопределяются в каждой реальной ПП для решения конкретной задачи измерения. Использование готового класса обеспечивает быстрое и качественное создание Супервизоров.
Если задача заключается только в диагностике программно-аппаратного комплекса какой-либо ТП, то в качестве диагностической ПП используется стандартный в СУ Супервизор – универсальная программа, созданная без переопределения виртуальных функций.
2.2. Master-программа.
Master-программа является универсальной, существует в единственном экземпляре и призвана покрыть около 50% потребностей СУ в прикладном программном обеспечении.
Основная часть алгоритма Master-программы реализует все правила СУ взаимодействия прикладных программ на Рабочих Станциях, т.е. правила работы с семафорами параметров и семафорами списков параметров. Это обеспечивает ее работу в качестве головной программы любого пакета ПП, а также в любой задаче просмотра данных в качестве следящей ПП. Таким образом, основной алгоритм Master-программы обеспечивает ее вызов почти во всех конечных пунктах диалогового меню СУ - кроме нескольких специальных.
Однако, алгоритм Master-программы имеет существенное дополнение - он включает правила СУ для работы со значениями физических параметров. Это позволяет непосредственно использовать Master-программу в задачах редактирования физических параметров, даже для ТП, поддерживающих PPM (Puls to Puls Modulation) – возможность нескольких независимых режимов работы. Такие задачи существуют в СУ для каждой ТП – это установка различного рода коэффициентов, участвующих в алгоритмах ПП, настройка конфигурации ТП для разных режимов работы и т.д.
Универсальные свойства Master-программы обеспечиваются настройкой ее алгоритма посредством параметров, передаваемых Master-программе при ее загрузке - координаты задачи и наличие Slave-программ. Координаты задачи в описании задач СУ позволяют определить списки физических и технологических параметров, а из списков определить типы параметров (измеряемые и т.д.). Наличие Slave-программ означает, что требуется анализировать лишь семафоры параметров, а со значениями параметров работают другие ПП.
2.2.1. Специальные ПП на основе Master-программы.
Организация Master-программы такова, что ее процедуры можно использовать в других ПП, которые реализуют специальные алгоритмы работы с параметрами и работают без пакета ПП.
Это свойство, а также все возможности алгоритма Master-программы в полной мере применены в двух специальных ПП, многократно используемых в стандартных задачах СУ [1]:
-
копирование значений физических параметров из таблиц данных для одного режима работы любой ТП в таблицы данных для другого режима работы этой же ТП;
-
управление работой всех Супервизоров СУ как в интерактивном, так и в автоматическом режиме.
2.3. Slave-программы.
Slave-программа – это самый массовый тип ПП в СУ, обслуживающих все участки управления всех ТП. Slave-программа основана на использовании класса, специально разработанного для создания управляющих ПП, работающих в пакете. Класс реализует стандартный алгоритм Slave-программы, приведенный на рис.3. Использование готового класса обеспечивает быстрое и качественное создание ПП.
Класс включает унифицированные для Slave-программ функции (светлые участки на схеме), которые используют объекты работы со значениями физических и технологических параметров и их описаниями [3].
Виртуальные функции класса (серые участки на схеме) предназначены для реализации, собственно, конкретного алгоритма работы с управляющими параметрами. Виртуальные функции переопределяются в каждой ПП, делая ее уникальной в СУ.
Существует возможность оптимизации прикладного программного обеспечения ТП. Многие ТП имеют участки с одинаковым или почти одинаковым алгоритмом управления. Это позволяет использовать одну ПП для всех таких участков. Если ТП поддерживает возможность работы в нескольких режимах работы, то одна и та же ПП используется в соответствующих участках для каждого режима. Например, несколько управляющих ПП в подсистеме коррекции магнитного поля основного ускорителя У-70 используется в 144 базовых задачах управления, аналогичные ПП для кольцевого инжектора У-1.5 - в 160.
3. Правила взаимодействия ПП в СУ.
Взаимодействие Супервизоров и ПП, работающих в КО, рассмотрено в [5]. Взаимодействие ПП, работающих на Рабочих Станциях, – Диалоговой программы, Master, Slave, Супервизоров - основано на правилах работы с семафорами параметров и списков параметров.
Каждому параметру СУ сопоставлено два семафора [3], включенных в описание параметра – для передачи пользователю сообщения от ПП об обновлении значений параметра (семафор 1) и для передачи команды пользователя для ПП (семафор 2).
Списки параметров для вывода содержат три семафора [3] – для передачи пользователю сообщения от ПП об обновлении значений нередактируемых и управляющих параметров в списке (семафоры 1, 2) и для передачи команды пользователя для ПП (семафор 3). Нередактируемыми параметрами в списке могут быть управляющие и измеренные технологические, измеренные физические и комментарии.
3.1. Взаимодействие в задаче просмотра данных.
Диалоговая программа может прислать Master-программе единственную команду пользователя – закончить работу (рис.4). Вывод данных Диалоговая программа производит в том случае, если изменилось значение семафора 1 списка параметров.
Этот семафор формирует Master-программа, инкрементируя свой внутрипрограммный счетчик в случае, если изменилось значение семафора 1 хотя бы в одном описании параметра (есть новые значения). Эти семафоры записывают ПП, указывая на изменение значений соответствующих параметров.
3.2. Взаимодействие в задаче управления данными.
Диалоговая программа может принять от пользователя команду в том случае (рис.5), если пакет ПП выполнил предыдущую команду - семафор 3 списка параметров обнулен.
Master-программа также проверяет выполнение предыдущей команды всеми Slave-программами - семафоры 2 в описаниях всех параметров должны быть обнулены.
Slave-программы выполняют команду пользователя, код которой записан в семафорах 2 описаний их параметров, и код результата записывают в семафор 1 с одновременным обнулением семафора 2.
3.3. Взаимодействие в смешанной задаче управления данными и измерения данных.
Если список параметров задачи включает управляемые и нередактируемые параметры, то Диалоговая программа и Master учитывают одновременно правила взаимодействия задач управления данными и просмотра данных.
4. Заключение.
Библиотеки классов основных типов ПП обеспечивают создание в короткие сроки надежно работающих ПП. В настоящее время СУ имеет 14 Супервизоров, 52 Slave-программы, одну Master-программу, которая вызывается в 2691 из 3073 задач СУ (58% всех вызовов ПП), две ПП, основанные на Master-программе, которые вызываются в 96 задачах для различных ТП.
Список литературы
[1] Клименков Е.В. Организация задач контроля и управления в Системе Управления комплекса У-70 — доклад на этом Совещании.
[2] Воеводин В.П. ССУДА – Специализированная Система Управления распределенными Данными реального времени — Труды XVI Совещания по ускорителям заряженных частиц, Протвино, 1998, т.1, стр.135.
[3] Воеводин В.П., Клименков Е.В. Описания основных объектов Системы Управления комплекса У-70 — доклад на этом Совещании.
[4] Воеводин В.П., Кузьменко В.Г., Щербаков С.Е. Пользовательский интерфейс в новой системе управления ускорительного комплекса У-70 — Труды XVI Совещания по ускорителям заряженных частиц, Протвино, 1998, т.1, стр.141.
[5] Балакин С.И., Клименков Е.В. Первичная диагностика в Системе Управления комплекса У-70 — доклад на этом Совещании.