Каталог программ и файлов ВЭПП-3 - Оглавление


Мишнев С. И.

Инструкция к программе #BANK

(тексты: TBA1 для "MSV3"; TBA2 для "RFV3").

Распределение массива памяти (COMMON/ RYNOK/) Входы и ключи Загрузка #BANK Работа в цикле при исполнении заявок на изменение уставок элементов или изменение режима
Работа с #BANK в Одренке RFV3 Выполнение заявок на изменение режимов элементов, управляемых от "Позитрона" Управление нелинейными элементами "4M" и "2FD" Стабилизация орбиты во время ускорения

Программа #BANK служит для приема заявок на изменение уставок в устройствах магнитной системы и ВЧ-системы ВЭПП-3, и выполнение этих заявок путем раздачи кодов в устройства в реальном масштабе времени.

Существует две разновидности программы под одинаковым названием #BANK. Одна из них загружена в "ведомом" Одренке "RFV3" и работает только с устройствами ВЧ-системы и системы впуска-выпуска, а вторая – в "ведущем" Одренке "MSV3", и работает с устройствами магнитной системы непосредственно, а с устройствами ВЧ-системы – путем пересылки заявки в "ведомый" Одренок через систему связи Ethernet.

1. Распределение массива памяти (COMMON/RYNOK/)

Имя Число ячеек Начальная ячейка Содержимое
JTB 1 1 Имя текущего режима
IP3(16) 16 2 Полярность и статус ВЭПП-3 в первых двух ячейках массива, остальные пустые
TAKT 2 18 Тактовая частота ГТИ (Гц)
EN 2 20 Текущая энергия (МэВ)
F0 2 22 Частота обращения пучка (кГц)
X04XMB(4) 8 28 Опорные (для стабилизации орбиты) углы дефлекции (мрад) в корректоре 4XMB в четырех статусах(при накоплении, ускорении, эксперименте и выпуске). Реально используется только при ускорении.
Z04Z1(4) 8 36 То же, в корректоре 4Z1
Ячейки для приема информации из #ORBI
MTYPE 1 44 Статус измерения орбиты: 1 - электроны; 2 - позитроны; 3 - калибровка
ITOK0 1 45 Ток пучка, при котором сделано измерение орбиты (мкА)
KOD 1 46 Код времени интегрирования в АЦП при измерении орбиты
NORB 1 47 Счетчик выполненных измерений орбиты
IX(30) 30 48 Орбита в пикапах по X (мкм)
IZ(30) 30 78 Орбита в пикапах по Z (мкм)
KSH 1 108 Усиление ШИУСа (Бел)
IORB%1 1 109 Состояние 1-го ключа #ORBI (1 - вкл.; 2 - выкл.; 0 - нет #ORBI)
Ячейки, необходимые для работы #GOST
I4XMB 1 110 Ток в корректоре 4XMB (мА)
I4Z1 1 111 Ток в корректоре 4Z1 (мА)
IDXZ(2) 2 112 Вычисленные углы дефлекции в корректорах 4XMB и 4Z1, необходимые, чтобы исправить орбиту
ISWB65(2) 2 114 Состояние ключей 6 и 5 в #BANK, дающих задание на стабилизацию орбиты (0 - выкл., 1 - вкл.)
Ячейки для приема задания от "Позитрона"
KPOZ 1 188 Метка прихода задания от "Позитрона"
LCDPOZ(10) 10 189 Задание от "Позитрона" для элементов DB4, VDB4, IVI, VIVI, FB (в первых 5-ти ячейках массива)
Ячейки для посылки задания в ЦАПы
IPB 1 199 Число адресов устройств, с которыми работает #BANK (220 - в MSV3, 50 - в RFV3)
INDEX 1 200 Заданное число шагов для перестройки от исходного состояния до конечного
LCD(220) 220 201 Уставки заказанные (конечный режим)
NCD(220) 220 421 Уставки текущие
IBL(220) 220 641 Типы блоков (ЦАПов); 1-ый бит - WR
IAD(2,220) 2*220 861 Адреса ЦАПов
NM(220) 220 1301 Имена элементов
MAXC(220) 220 1521 Максимальные уставки
ICD(220) 220 1741 Массив для засылки в ЦАПы (реальные коды ЦАПов)
IZC(220) 220 1961 Уставки, соответствующие нулю величины
NW(220) 220 2181 Шаг изменения уставки для линейного перехода
LZN(220) 220 2401 Признак изменения уставок (не используется)


2. Входы, ключи, пинты

ENTRY 0 – обычный вход (с ячейки 20);
ENTRY 1 – вход для работы без связи с Одренком "RFV3" (с ячейки 21);
ENTRY 2 – вход для задания полярности и статуса (с ячейки 22).

При входе с 20-ой или 21-ой ячейки #BANK берет начальную информацию об имени текущего режима (таблицы), полярности (электроны или позитроны) и статусе из STAP. При входе с 22-ой ячейки информация об имени текущего режима берется из STAP, а полярность и статус задаются вручную.

Возможные статусы: 1 – накопление
2 – ускорение
3 – эксперимент
4 – выпуск
5 – цикл перемагничивания
6 – перепуск (ожидание команды на выпуск)


Ключи: 1 – проверка идентичности содержимого ЦАПов и #BANK (норм. выкл)
2 – работа с "Позитроном" (норм. вкл.)
3 – проверка загрузки #BANK из ЦАПов при запуске
4 – подъем энергии с плавными переходами (норм. вкл.)
5 – стабилизация вертикальной орбиты при ускорении
6 – стабилизация горизонтальной орбиты при ускорении


Пинты: 1 – импульсы от ГТИ с частотой 3.125 Гц, тактирующие работу #BANK (частоту посылок в ЦАПы)
16 – внутренний пинт, вырабатываемый программой #BANK по окончании выполнения задания (когда INDEX становится равным 0)
17 – внутренний пинт, вырабатываемый программой #BANK на каждом такте после окончания посылок в ЦАПы


3. Загрузка #BANK

При загрузке программы #BANK выполняются следующие операции:

После выполнения этих операций на терминал выдаются сообщения:
         "Загрузка #BANK из BAS3.#### окончена"
         "Загрузка #BANK из устройств окончена"
         "#BANK в "MSV3" работает !"



4. Работа #BANK в цикле при выполнении заявок на изменение уставок элементов или изменение режима

После загрузки #BANK переходит к работе в циклическом режиме; такт задается импульсом от ГТИ (частота 3.125 гц), поступающим на вход блока "Регистр пинтов" ( пинт 1 ). При появлении пинта 1 #BANK проверяет поступление заявок на изменение уставок элементов, управляемых от "Позитрона" (один раз на каждые три пинта???). Затем #BANK проверяет состояние ячейки "INDEX" в COMMON/RYNOK/. Если INDEX = 0, #BANK снова становится на ожидание пинта 1 . Если INDEX > 0, #BANK приступает к выполнению перехода от исходного режима к заказанному.

Сначала #BANK посылает задание на изменение уставок в элементах ВЧ-системы и системы "Впуск-выпуск" через Ethernet-связь в Одренок "RFV3". Это последние 50 ячеек массива LCD + "INDEX", значение которого указывает, за сколько шагов (с частотой 3.125 гц) нужно выполнить изменение уставок. #BANK в Одренке "RFV3" выполнит задание самостоятельно.

#BANK работает с "уставками", которые пропорциональны физическим величинам, характерным для управляемых элементов (току, напряжению, магнитному полю и т.д.); в памяти ЭВМ они хранятся, как целые числа со знаком. Часто, но не всегда, уставка равна коду ЦАПа, управляющего данным элементом, умноженному на 64.

Сначала #BANK вычисляет изменения уставок для всех элементов:

"изменение уставки" = "заказанная уставка" - "исходная уставка"
и отмечает те из них, где они не равны нулю.

Затем #BANK делает N шагов – посылок кодов в ЦАПы с частотой, определяемой приходом пинта 1 (N – четное; N = INDEX или N = INDEX + 1). На каждом шаге вычисляется

"добавка уставки" = "изменение уставки" * CF(K),
где CF(K) – коэффициент, который может зависеть от номера шага K. Если ключ 4 выключен, то осуществляется линейный переход от "исходной уставки" к "заказанной уставке"; тогда CF(K) = 1/N (не зависит от номера шага K). Если, как обычно, ключ 4 включен, происходит плавный переход , сглаженный график которого состоит из двух сопряженных парабол, с медленным изменением уставки вблизи начального и конечного значений, и быстрым - в середине перехода. Формулы для вычисления коэффициента в этом случае:

CF(K) = (1 / N) * ((2 * K - 1) / (N / 2)) – для первой половины перехода;
CF(K) = (1 / N) * ((2 * (N - K) + 1) / (N / 2)) – для второй половины перехода;
K = 1 ÷ N – номер шага.

На шаге с номером "K" для всех элементов вычисляется:

"текущая уставка (K)" = "текущая уставка (K - 1)" + "добавка уставки".

Если для какого-либо ЦАПа:

Абсол.("текущая уставка") > "максимальная уставка",
то в ЦАП засылается табличная "максимальная уставка" со знаком, соответствующим "текущей уставке", и на терминал выводится сообщение:
"Превышен уровень в (имя элемента)"

Графики перехода от начальной уставки к конечной за 50 шагов

Если включен ключ 5 , "текущая уставка" для элемента "4Z1" вычисляется, исходя из данных, необходимых для стабилизации вертикальной орбиты ; если ключ 5 выключен, элемент "4Z1" управляется так же, как и другие элементы. Если включен ключ 6 , таким же образом происходит стабилизация радиальной орбиты с помощью корректора "4XMB".

Затем вычисляются реальные коды, которые нужно посылать в ЦАПы и другие устройства, и выполняются посылки, но только в том случае, если в данном устройстве произошло изменение хотя бы в одном из каналов управления. Коды, посылаемые в ЦАПы элементов "4М" и "2FD" , вычисляются специальной подпрограммой.

В конце каждого шага "текущие уставки" записываются в массив NCD, вычисляется текущая энергия и формируется внутренний пинт 17.

На последнем шаге в качестве "текущей уставки" используется "заказанная уставка", чтобы избежать накопления ошибок, связанного с вычислением добавок.

После выполнения перехода может быть проверено соответствие кодов в ЦАПах содержимому массива NCD в #BANK (если включен ключ 1 ). Для сообщения другим программам о выполнении задания формируется внутренний пинт 16; зануляется ячейка INDEX.

ВНИМАНИЕ!
ЗАПИСЬ ЗАДАНИЙ НА ИЗМЕНЕНИЕ РЕЖИМА В #BANK
ДОПУСТИМА ТОЛЬКО ПРИ INDEX=0 !


5. Работа с #BANK в Одренке RFV3

Управление элементами ВЧ-системы и системы впуска-выпуска производится с помощью программы #BANK в Одренке "RFV3". Для этих элементов зарезервировано 50 последних номеров в массивах LCD и NCD программы #BANK "MSV3" (171-:-220). Записанное в ячейки массива LCD с этими номерами задание на изменение уставок пересылается с помощью Ethernet-связи в #BANK "RFV3". Одновременно пересылается содержимое ячейки INDEX, означающее, за сколько шагов должно произойти изменение уставок. #BANK в "RFV3" тактирован тем же импульсом от ГТИ, что и "ведущий" #BANK в Одренке "MSV3". Переход от исходного уровня уставок в ЦАПе до конечного линейный по времени. Если попытка общения через Ethernet неудачна, на терминал выдается сообщение о сбое.

При загрузке #BANK в "RFV3":



6. Выполнение заявок на изменение режимов элементов, управляемых от "Позитрона"

В памяти программы #BANK "MSV3" выделено 6 ячеек для приема заявок от #BANK в Одренке UPO "Позитрона" на управление некоторыми его элементами. В первой из этих ячеек содержится признак поступления новой заявки: 1 – есть новая заявка; 0 – заявка выполнена. В остальных 5-ти ячейках находятся новые уставки для управляемых элементов:

Задание посылается по системе Ethernet-связи. #BANK "MSV3", если он не занят выполнением другого задания, проверяет, появился ли запрос на изменение уставок. Если да, то #BANK выполняет задание, пересылая его в #BANK Одренка "RFV3" и зануляет ячейку с признаком поступления заявки. Если #BANK "UPO" долго не получает ответа о выполнении задания, он выводит сообщение об этом на свой терминал (это случается, если #BANK "MSV3" работает на ускорение пучка или выполняет цикл намагничения).

Управление этими 5-ю элементами из Одренка "MSV3" возможно, если выключен ключ 2 в #BANK (который должен быть нормально включен).

Возможно также прямое (не через #BANK) управление этими элементами, а также элементами:

с помощью программы #TEV3 в Одренке RFV3.

7. Управление нелинейными элементами "4M" и "2FD"

Обычно предполагается линейная зависимость между кодом, записанным в ЦАП, и выходной величиной (магнитным полем, градиентом, током, напряжением и т.д.). Однако в магнитной системе ВЭПП-3 есть два элемента, для которых такая зависимость сильно нелинейна:

Для этих элементов в таблицах режимов хранятся не уставки кодов, а величины магнитного поля (или градиента), приведенные к энергии 2100 МэВ. Магнитное поле (градиент) меняется пропорционально текущей энергии, а соответствующая величина питающего элемент тока вычисляется специальными подпрограммами с помощью кусочно-линейной интерполяции. Коэффициенты для интерполяции подобраны на основе магнитных измерений этих элементов и хранятся в текстах сегментов BI%4M() и GI%2FD(); сами эти сегменты находятся в файле TVDD. Связь между током и кодом ЦАПа, как обычно, линейная, и определяется записанным в базе данных коэффициентом. Возможен также обратный пересчет от записанных кодов в ЦАПах к магнитному полю (градиенту) с использованием тех же коэффициентов.

Графики перехода от начальной уставки к конечной за 50 шагов

8. Стабилизация орбиты во время ускорения

Во время ускорения пучка программа #BANK выполняет частичную стабилизацию орбиты по вертикали и горизонтали. Для этого используются два корректора: "4Z1" – для вертикальной коррекции, и "4XMB" – для горизонтальной коррекции. Вертикальная коррекция именно этим корректором в основном компенсирует искажение орбиты, которое возникает из-за изменения температуры в зале ВЭПП-3. Горизонтальное искажение орбиты возникает в динамическом режиме из-за рассогласования магнитных полей в полукольцах и в магнитах вставок в 4-ом промежутке. Корректор "4XMB" как раз подстраивает магнитное поле во всех четырех магнитах вставок.

Для того, чтобы начала работать стабилизация орбиты, в #BANK должны быть включены ключ 5 (для вертикальной орбиты) и ключ 6 (для горизонтальной орбиты); это делает программа - процесс (#PREP). Если включен хотя бы один из этих ключей, #BANK включает ключ 1 в программе #ORBI в Одренке "BEAMV3", которая измеряет орбиту пучка. После этого #ORBI меняет режим своей работы и начинает периодически, с частотой 1 Гц (?), измерять орбиту в двух пикапах: 1P1 и 4P4.

Программа #BANK, в своем рабочем цикле, с частотой 3.125 Гц, запрашивает в #ORBI измеренную орбиту и время ее измерения. Если в течение 5-ти циклов орбита не была измерена заново, #BANK выводит на дисплей сообщение:

"Не могу стабилизировать – нет свежей орбиты"
Если появилась заново измеренная орбита, вычисляется ее отклонение в пикапах "1P1" и "4P4" от заданных опорных значений, и углы дефлекции в корректорах "4Z1" и "4XMB", которые могли бы наилучшим образом приблизить орбиту к опорным значениям. Для устойчивости работы обратной связи добавки к уставкам корректоров, которые вводятся реально, составляют 70% от вычисленных.

В Одренке "BEAMV3" может работать программа #GOST, которая следит за процессом стабилизации орбиты в ВЭПП-3. Во время ускорения эта программа рисует на экране дисплея графики энергии, тока пучка, токов в корректорах 4XMB и 4Z1, а также расчетных углов дефлекции в этих корректорах, необходимых, чтобы скомпенсировать искажение орбиты.



Начало