Описание базы данных для
системы управления
HITS

(без элементов-каналов и режимов)

1  Структура базы данных

База данных системы управления HITS построена на postgreSQL и включает в себя несколько групп таблиц, содержащих:

    описание систем и устройств комплекса, описание контрольно-измерительной аппаратуры (электроники), относящейся к системе управления, и конфигурации этой аппаратуры, описание каналов управления и измерения и их взаимосвязей, таблицы режимов работы устройств и систем.

Всего база данных содержит …таблиц.

База данных включает различную численную и текстовую информацию. Текстовые значения хранятся в полях типа varchar, максимальная длина текстового поля – 80 символов – выбрана из соображений удобства вывода на экране.

Практически все таблицы базы данных находятся в третьей нормальной форме (3NF), т. е. уникальность каждой записи в таблице определяется только совокупностью ключевых полей, а все другие (не ключевые) поля зависят только от этой совокупности, и независимы от ключевых полей по отдельности, а также независимы одно от другого.

2  Таблицы с данными о системах и устройствах комплекса

2.1  Назначение таблиц систем и устройств комплекса и используемые понятия

Сложные ускорительные комплексы (к их числу можно отнести и рассматриваемый комплекс HITS) состоят из большого числа устройств и систем различного функционального назначения. Система управления связана практически со всеми устройствами комплекса, и для систематизации элементов системы управления по принадлежности к тому или иному устройству или системе комплекса необходимо иметь данные о структуре всего комплекса. Таблицы описания систем комплекса содержат данные о всех системах и устройствах, относящихся к ускорительному комплексу, и отражают иерархическую структуру комплекса. В других группах таблиц базы данных, описывающих элементы системы управления (электронные модули, каналы управления и измерения), делаются ссылки на элементы комплекса, к которым, соответственно, относятся данные элементы управления.

НЕ нашли? Не то? Что вы ищете?

Для описания всех устройств и систем комплекса вводятся следующие понятия:

    "объект" (object) - любая часть, система или устройство комплекса, или совокупность частей или устройств. Например: источник питаня, бустерный синхротрон, управляющий компьютер, магнит. Любые составляющие части комплекса и их группы могут быть описаны как объекты в таблице Object. Типы объектов перечислены в таблице ObjectsType. Для оптимизации обращения к базе данных со стороны программ описание контрольно-измерительной аппаратуры (электроники), элементов самой системы управления (элементов, каналов управления и измерения), а также распределенных шин передачи данных вынесено в отдельные таблицы Module, Element, и Bus. "старший объект" (senior object) - объект, в состав которого входит рассматриваемый объект. Например: магнит входит в состав канала транспортировки пучка, компьютер входит в состав системы управления инжектора. Описания всех объектов, включая старшие объекты, размещаются в единой таблице Object. Если объект не имеет своего старшего объекта, то он является корневым объектом. "параметр объекта" (object parameter) - параметр, характеризующий объект. Например: индуктивность магнита, число витков катушки магнита, максимальный ток источника тока и т. п. Любой объект может иметь неограниченное число параметров. Все параметры объектов перечислены в единой таблице ObjectParameter. Параметры служат для контроля состояния устройств и могут быть только численного вида.

2.2  Структура таблиц систем и устройств комплекса

 
 

2.2.1  Таблица ObjectType

предназначена для унификации типов объектов, содержит следующие поля:

·  ObjectTypeName - тип varchar(80) - имя типа объекта.

·  Description - тип varchar(80) - краткая характеристика типа объекта.

2.2.2  Таблица Object

описывает объекты и содержит следующие поля:

·  ObjectName - тип varchar(80), имя объекта.

·  SeniorObject - ссылка на соответствующую запись таблицы Object, на объект, составной частью которого является данный объект. Поле позволяет отображать иерархию системы. Если поле не имеет ссылки, то объект не имеет старшего объекта и является корневым.

·  ObjectType - ссылка на соответствующую запись таблицы ObjectType; характеризует тип объекта.

·  Responsible - ссылка на соответствующую запись таблицы Staff; указывает на лицо, ответственное за состояние данного объекта.

2.2.3  Таблица ObjectParameterType

предназначена для унификации типов параметров объектов, содержит следующие поля:

·  ObjectParameterTypeName - тип varchar(80) - имя типа параметра.

·  Description - тип varchar(80) - краткая характеристика типа параметра.

Примеры типов параметров: индуктивность магнита, сопротивление нагрузки. Параметры объектов используются для контроля состояния устройств (например, измерение величины сопротивления магнита и сравнение результата со значением параметра) и могут быть только численного вида.

2.2.4  Таблица ObjectParameter

описывает параметры объектов и содержит следующие поля:

·  Object - ссылка на соответствующую запись таблицы Object; указывает, к какому объекту относится данный параметр.

·  ObjectParameterType - ссылка на соответствующую запись таблицы ObjectParameterType.

·  Value - тип float; значение параметра.

·  Description - тип varchar(80); краткое описание данного параметра.

В состав ключа данной таблицы входят два поля: Object и ObjectParameterType.

2.2.5  Таблица Staff

описывает персонал, ответственный за объекты комплекса, содержит следующие поля:

·  Name – ФИО ответственного.

·  e-mail.

·  Work phone.

·  Home phone.

·  Mobile phone.

3  Таблицы с данными о подсоединениях аппаратуры

3.1  Назначение таблиц подсоединений аппаратуры и используемые понятия

На ускорительном комплексе используется большое количество разнообразной электронной аппаратуры, которая подсоединяется к компьютерам различными способами. Данная группа таблиц описывает все используемые виды подсоединений, а также их количественные и адресные характеристики.

Для описания подключений аппаратуры вводятся следующие понятия:

    "шина" (bus) - электрическое или беспроводное соединение устройств (модулей, приборов и т. п.) для передачи данных, задающее адресацию этих устройств в данном подсоединении.

Например: шина CAN, крейт VME, ветка RS-485, локальная ветвь Ethernet

Шины описаны в таблице Bus, а типы шин перечислены в таблице BusType.

    "подсоединение шины" (bus connection) - способ подсоединения шины к управляющему компьютеру. Например: CAN подключен через PCI7841, RS485 подключен через PCI CP346 контроллер и т. п. "компонент подсоединения" (connection component) - каждое подсоединние шины состоит из "компонентов подсоединения". Это элементы соединения, которые в совокупности полностью определяют каждое конкретное подсоединение. Например: у подсоединения "шина CAN подключена через PCI7841" может быть два компонента: номер CAN-адаптера, номер выхода адаптера.

Типы компонентов подсоединения описаны в таблице ConnectComponType. Численные значения всех компонентов всех подсоединений (номера выходов коммутаторов, номера прерываний, длина кабеля и т. п.) содержатся в таблице ConnectComponValue. В таблице ConnectComponValue содержится порядковый номер каждого компонента в данном подсоединении.

3.2  Структура таблиц подсоединений

 
 

3.2.1  Таблицы BusType и ConnectType

включают в себя по два строковых поля переменной длины (varchar), в которых содержатся названия типов шин и подсоединений и краткие описания. Примеры типов шин - "CAN", "CAMAC", "MILStd", типов подсоединений - "CAN via Ethernet", “RS485 via CP346” и т. п.

3.2.2  Таблица ConnectComponType

содержит перечень всех типов компонентов подсоединений. Таблица включает следующие поля:

·  Name - тип varchar (80) - имя типа компоненты. Компонентой может быть любое физическое или логическое устройство или их часть, логический сигнал в системе, соединительный кабель, которые имеют отношение к данному подсоединению. Например: Port, IRQ, Module output channel.

·  MaxValue - тип varchar (80) - строка, содержащая максимальное значение, которое характеризует данный тип компонента. Например: 15 для IRQ. Если максимальное значение не определено, то оно не требуется. Строка, соответственно, может содержать текстовое значение, например, имя типа модуля, …

·  MinValue - тип varchar (20) - строка, содержащая минимальное значение, которое характеризует данный тип компонента. Например: 3 для IRQ. Если минимальное значение не определено, то оно не требуется.

3.2.3  Таблица Bus

содержит описания всех шин. Таблица включает следующие поля:

·  Name - тип varchar (80), имя шины.

·  ConnectType - ссылка на соответствующую запись таблицы ConnectType.

·  System - ссылка на соответствующую запись таблицы Object - имя системы, к которой относится данная шина. Например: "injector", "booster", ...

·  BusIndication - тип varchar (80); определитель шины в системе, например, просто порядковый номер, или указатель на принадлежность к какой-либо группе шин и т. п.; служит для дополнительно индентификации или группировки.

·  Computer - ссылка на соответствующую запись таблицы Object – серверный компьютер, к которому подсоединяется данная шина. Предполагается, что все шины подключены непосредственно к серверным компьютерам. В случае не прямого соединения, когда шина подключена, например, через промежуточный контроллер, который, в свою очередь, подключается к серверному компьютеру, считается, что шина, тем не менее, подключена к серверному компьютеру, а промежуточный контроллер и соответствующие параметры, требующиеся для идентификации шины, входят в подсоединение в качестве компонентов. Данное поле позволяет серверному приложению идентифицировать все шины, подключенные к данному компьютеру с целью инициализировать модули доступа (Hardware access) к шинам. Кроме того, поле позволяет структурировать подключение аппаратуры в системе управления.

·  Description - тип varchar (80); содержится поясняющая информация до 80 символов.

3.2.4  Таблица ConnectComponValue

содержит значения всех компонентов всех подсоединений. Таблица включает следующие поля:

·  Bus - ссылка на соответствующую запись таблицы Bus (поле Name).

·  ConnectComponNumber - тип int; определяет номер данного компонента в данном подсоединении. Используется для определения структуры соединения.

·  ConnectComponType - тип varchar (80); ссылка на таблицу ConnectComponType (поле Name).

·  Value - тип varchar (80) - значение компоненты. Например: 3 для IRQ, имя устройства для связи через Ethernet (при этом IP адрес серверная программа получит из конфигурационного файла по имени устройства).

В состав ключа данной таблицы входят два поля: Bus и ConnectComponNumber.

4  Таблицы описания аппаратуры

4.1  Назначение таблиц описания аппаратуры и используемые понятия

Группа таблиц описания аппаратуры включает перечень всех типов электронных модулей и самих модулей системы управления: ЦАПов, АЦП, регистров ввода/вывода и пр. Таблицы содержат данные о количестве контрольно-измерительных выходов и входов модулей, а также о цифровых шинах, к которым модули подключены. Эти данные необходимы программам для организации взаимодействия с аппаратурой. Например, серверная программа при загрузке, получив информацию о подключенных к данному компьютеру модулях, сформирует каркас массива для дальнейшего хранения и обработки значений всех каналов всех соответствующих модулей.

Для описания размещения аппаратуры вводится понятие:

    "электронный модуль" (module) - электронный блок или плата, подсоединяемые к компьютеру посредством какой-либо связи, которые со стороны компьютера выглядят как отдельные устройства, выполняющие определенные функции и имеющие адрес для доступа. Модули могут быть многофункциональными и многоканальными. Это могут быть устройства синхронизации, цифро-аналоговые блоки и платы, устройства коммутации (switch, hub, …), контроллеры шин и т. п.

Типы модулей описаны в таблице ModuleType, а модули перечислены в таблице Module.

4.2  Структура таблиц аппаратуры

4.2.1  Таблица ModuleType

описывает типы модулей и содержит следующие поля:

    ModuleTypeName - тип varchat(80), имя типа модуля. DAChannelsNumber - тип int, число каналов типа digital-analog в модуле. ADChannelsNumber - тип int, число каналов типа analog-digital в модуле. DIChannelsNumber - тип int, число каналов цифрового ввода в модуле. DOChannelsNumber - тип int, число каналов цифрового вывода в модуле. LIChannelNumber - тип int, число входных каналов цифровой связи в модуле. Например, в модулях – коммутаторах шин есть один входной и несколько выходных каналов. LOChannelNumber - тип int, число входных каналов цифровой связи в модуле.

·  Size - тип int; параметр характеризует "размер" модуля, например, число позиций, занимаемых модулем в каракасе. Параметр может быть, например, использован для определения заполненности крейта.

·  Description – varchar(80) – краткое описание типа модуля.

4.2.2  Таблица Module

описывает модули и содержит следующие поля:

·  ModuleName - тип varchat(80), имя модуля.

·  ModuleType - ссылка на соответствующую запись таблицы ModuleType; указывает тип модуля.

·  Bus - ссылка на соответствующую запись таблицы Bus; указывает на шину, к которой подключен данный модуль или компонентом подсоединения которой он является.

·  BusAddress - тип varchar(80); адрес модуля на шине, например: идентификатор CAN, MAC адрес для локальной ветви Ethernet, ... В случае, когда модуль является компонентом подсоединения, адрес не имеет значения.

·  ModuleStatus - тип int; состояние модуля: = 0 – модуль отсутствует (например, снят в ремонт), = 1 - OK, = 2 - неисправен (Fault).

5  Таблицы с данными об элементах и каналах

5.1  Назначение таблиц элементов и каналов и используемые понятия

Программы, обеспечивающие интерфейс между человеком и системой управления ускорительной установкой (программы ввода/вывода данных, программы архивирования и загрузки режимов работы и т. д.), оперируют в среде физических объектов установки (магнитов, элементов инжекции и др.) в терминах физических величин (токах, напряжениях и т. п.). Серверные управляющие программы, взаимодействующие с контрольно-измерительной аппаратурой, выполняют пересчет физических значений в коды и наоборот и адресацию записи и чтения соответствующих модулей. Такая организации программного обеспечения использует следующие понятия:

    "канал" (channel) - это структура, связывающая аналоговый или цифровой выход(вход) управляющего (измерительного) модуля, с одной стороны, и управляемый (измеряемый) физический параметр - с другой. Каналы, имеющие непосредственное соответствие каналам аппаратуры, называются "физическими" каналами (direct channel).

Значение канала также может быть вычисляемым по значениям каких-либо других каналов (например, значение энергии в пучке вычисляется по измерениям тока пучка и энергии частиц). Такие каналы называются "вычисляемыми" каналами (calculated channel).

Описатель канала может определять, что канал имеет массив значений (например, канал АЦП осциллографического типа).

Описатель физического канала содержит информацию об электронном модуле или устройстве и о соответствующем физическом параметре, значением которого управляют (или которое измеряют) при помощи данного модуля (устройства). Описатель вычисляемого канала содержит перечень тех каналов, по значениям которых вычисляется значение данного канала, но не содержит описания алгоритма вычисления. И физические каналы описаны в таблице Channel, вычисляемые - в таблице CalculatedChannel.

    "элемент" (element) - совокупность каналов, объединенных по какому-либо признаку.

Например:

- управляющие и измерительные каналы, относящиеся к источнику питания постоянного магнита и самому магниту, составляют элемент для управления током магнита;

- каналы, измеряющие параметры пучка на установке (ток, положение орбиты пучка) могут быть сформированы в элемент для оперативной диагностики пучка;

- контрольно-измерительные каналы магнитной системы канала транспортировки пучка могут быть объединены в экранный элемент для оперативного управления сразу все магнитной системой канала; и т. п.

Элементы описаны в таблице Element.

    "привязанный канал" (tied channel) - управляющий канал, значение которого должно изменяться синхронно с изменением значения в каком-либо другом (основном) канале.

Два примера использования привязанных каналов:

- изменение момента пролета пучка по каналу транспортировки должно автоматически сдвигать время запуска всех импульсных элементов, обеспечивающих как пролет пучка, так и измерение пучковых параметров;

- в случае синхронной работы каких-либо импульсных элементов или отдельно запускающихся частей импульсных элементов понятие “привязанный канал” дает возможность синхронизировать управление.

Привязанные каналы перечислены в таблице TiedChannel.

Для реализации более сложного алгоритма управления, например, для управления физическими параметрами установки, когда для изменения этих параметров необходимо одновременно изменять значения нескольких каналов управления одновременно и, наоборот, когда изменение значений одного из каналов приводит к изменению значений двух связанных параметров, используется понятие "элемент-матрица" (matrix element).

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

Матрицы описаны в таблице Matrix, пересчетные коэффициенты матриц хранятся в таблице MatrixCoefficients.

В простейшем виде зависимость параметров и каналов выражается формулой: P=M x I, где P – вектор «входных» параметров, I - вектор «выходных» значений каналов, M – «прямая» матрица, связывающая эти два вектора. Размерность вектора P – один или два (ограничена по практическим соображениям), размерность вектора I – не ограничена. Соответственно, матрица M может быть неквадратной и не иметь вычисляемой обратной матрицы. Для вычисления изменений в значениях каналов при изменении параметров используется "обратная" матрица T. Вектор значений каналов I связан с параметрами следующим выражением I = T x P.

Размерности "обратной" матрицы T и "прямой" матрицы M могут не совпадать. Прямая матрица M не может иметь более 2-х строк, а обратная матрица T – не может иметь более 2-х колонок.

Пример использования несимметричного элемента-матрицы на установке ВЭПП-4: для управления бетатронными частотами в кольце ВЭПП-4 используется матрица QXZ; частоты могут быть вычислены по значениям токовых каналов H, D7 и F7; но при изменении частот при помощи магнитов полуколец нужно занести поправки не только в указанные каналы, но и в каналы управления корректирующим током всех магнитов вставок полуколец, т. к. изменение тока в H приводит к сдвигу орбиты во вставках полуколец из-за последовательного с H включения магнитов вставок.

Обычно требуется, чтобы выражаемая матрицей зависимость при изменении энергии не менялась. Для этого вводится понятие "привязки к энергии", что означает пропорциональное изменение всех коэффициентов матриц при изменении энергии относительно базовой (Eb), для которой были определены матрицы (например, энергия инжекции). Табличные значения всех элементов-матриц должны быть вычислены для одной базовой энергии.

Параметры могут отображаться в абсолютном исчислении или относительно какого-либо базового режима, имеющего энергию Er. Относительное выражение параметров удобно, когда требуется оперировать с очень малыми изменениями, а вычисленные значения параметров велики (например, случай управления бетатронными частотами). Базовый режим может быть выбран произвольно.

Иногда для удобства используется отображение вычисленного параметра с постоянным сдвигом (например, канал управления частотой обращения в ВЭПП-4 имеет небольшое значение, в то время как сама частота обращения, которая отображается в системе управления составляет примерно 818920 Гц).

Таким образом, в общем виде зависимость значений каналов от параметров выражается в виде: (P - S) = M x (Q x I - R x Ir), где S - вектор сдвигов параметров, Ir - значения каналов для режима относительной привязки, а множители Q и R определяются из Таблицы 1.

Таблица 1. Коэффициенты для вычисления “элементов-матриц”.

 
 

5.2  Структура таблиц элементов и каналов