Файл TOCO (DY 51; Шатилов) 06.03.02
(в
последующем в файле могут быть сделаны изменения).
Этот
файл содержит директивы для #COCO, которые исполняются при запус-
ке
программы с 22-й ячейки - "пакетная" коррекция без ввода директив
с
терминала. При этом нужно предварительно занести "имя процедуры кор-
рекции"
в 182-ю (ВЭПП-3) или 28-ю (ВЭПП-4) ячейку
STAP. Процедура с
этим
именем должна быть описана в данном
файле. Все директивы в теле
процедуры
должны иметь следующий вид:
KEYW:SPEC:OPTN COMMENTS
Первое
слово (KEYW) - название директивы. Второе слово (SPEC) - специ-
фикация.
Третье слово (OPTN) - дополнительная опция, она требуется не
для
всех директив. После пробела(ов)
можно писать любые комментарии
(это
означает, в частности, что внутри KEYW:SPEC:OPTN пробелов быть не
должно).
Кроме того, можно вставлять комментарии
(в т.ч. пустые стро-
ки)
между строками директив. Строки с
директивами распознаются по
двоеточию
в 5-й позиции (названия всех директив состоят
из 4-х букв).
Далее
описаны все доступные на настоящий момент директивы.
1.
PROC:NAME:MATR - Первая директива в
любой процедуре (ее заглавие).
NAME - имя процедуры, MATR
- имя матрицы откликов.
Все имена должны быть
4-буквенные. Если имя матри-
цы не указано, то
используется матрица по умолча-
нию (на ВЭПП-3 ее имя
зависит от текущей энергии).
Следующие
директивы могут следовать в любом порядке. Они являются ана-
логами
директив (пока не всех), вводимых с терминала
при работе с
интерактивной
версией #COCO.
2.
DIRE:D - Смена направления
коррекции. "D" может принимать
значения X, Z, T. При инициализации (в начале ра-
боты программы) направление
будет T(otal) - одно-
временная коррекция по X и
Z.
3.
GOAL:NAME - Выбор орбиты цели. NAME может принимать значения:
NULL - нулевая
орбита
ORBI - последняя
измеренная орбита
Во всех остальных случаях
NAME - это название фай-
ла с орбитой цели. При инициализации в
качестве
цели берется нулевая
орбита.
4.
WGHT:NAME - Выбор "весов"
для пикапов. NAME - название файла с
весами, за
исключением слова EQVL, означающего
равные единичные веса для всех пикапов. При ини-
циализации устанавливаются
равные веса.
5.
CORR:SPEC:OPTN - Работа с корректорами (в т.ч. собственно коррек-
ция орбиты). SPEC может
принимать следующие значе-
ния:
IMAX - Ограничение
максимальн. тока корректоров
BANK - Скопировать
уставки из #BANK
CLEA - Задать нулевые
уставки всем корректорам
LOAD - Прочесть уставки
из файла
HOLD - "Залипание"
корректоров
BUSY - "Занять"
корректора (для перебора)
FREE -
"Освободить" корректора - убрать
пометки
HOLD и BUSY
GLOB - Глобальная
коррекция всеми корректорами
FIND - Поиск коррекции:
перебор всех комбинаций
NEAR - Поиск коррекции:
рядом стоящие корректора
MICA - Поиск варианта
коррекции методом MICADO
SEND - Посылка
"текущих" уставок в #BANK
При загрузке программы (в
самом начале работы) все
уставки копируются из
#BANK. Некоторые директивы
требуют указания
дополнительного параметра OPTN:
IMAX:VAL - Величина ограничения в единицах мак-
симального
тока. При инициализации
(по
умолчанию) равна 1.0.
LOAD:NAME - Имя
файла
HOLD:NAME - Имя корректора
(или маска)
BUSY:NAME - Имя
корректора (или маска)
FREE:NAME - Имя
корректора (или маска)
GLOB:VADD - Добавка к
диагонали матрицы (можно
не указывать,
по умолчанию 0.05)
FIND:NUMB - Число
корректоров для перебора (>=0)
NEAR:NUMB - Число
корректоров для перебора (>=2)
MICA:NUMB - Число корректоров
для перебора (>=2)
SEND:VAL - Коэффициент передачи в #BANK (можно
не указывать,
по умолчанию 1.0)
Следующие
директивы позволяют реализовать более сложные алгоритмы кор-
рекции:
с циклами, проверками и переходами.
6. CYCL:NUMB
- Начало цикла. NUMB - число итераций;
если эта оп-
ция опущена, то будет
бесконечный цикл (можно ис-
пользовать для
постоянной стабилизации орбиты).
Вложенные циклы не
допускаются!
7. ENDC:
- Конец цикла (счетчик увеличивается на 1 и начина-
ется следующая итерация,
либо выход из цикла).
8. TISU:NUMB
- Пауза. NUMB - аргумент подпрограммы TISU (сколько
секунд).
9. LABL:NAME
- Метка для перехода (используется в директивах GOTO
и CURR). NAME - имя метки (должно быть 4 буквы).
Имена STOP, EXIT и WAIT не
допускаются!
10.
GOTO:DEST:VAL - Проверка невязки орбиты.
Опция VAL должна присут-
ствовать обязятельно. Действие, указанное в DEST,
выполняется если невязка орбиты меньше или равна
VAL. DEST может принимать следующие
значения:
STOP - Завершение работы
программы.
EXIT - Выход из цикла.
В остальных случаях DEST -
это имя метки (должна
быть описана директивой
LABL).
11.
CURR:DEST:VAL - Проверка тока пучка. Опция VAL должна присутство-
вать обязятельно. Действие, указанное в DEST, вы-
полняется если
ток пучка (MA) меньше или равен
VAL. DEST может принимать те же
значения, что и в
директиве GOTO, плюс еще
одна возможность:
WAIT - Ожидание указанного
тока (имеет смысл
при коррекции
орбиты на инжекции). По за-
вершении
ожидания (если оно имело место)
будет сделан заказ
на измерение орбиты.
12.
CNTR:OPTN - Вкл./Выкл.
дополнительного контроля при выполнении
процедуры. OPTN может принимать значения ON и OFF
(по умолчанию OFF).
Если дополнительный контроль
включен, то произойдет
переход, указанный в 183-й
(ВЭПП-3) или
29-й (ВЭПП-4) ячейке STAP. Слово
в
этой ячейке может принимать
те же значения, что и
DEST в директиве GOTO.
13.
ORBI: - Заказ измерения орбиты.
Может потребоваться, если
#COCO работает совместно с
другой управляющей про-
граммой (например #PREP) и
выполнение процедуры
контролируется этой
программой через STAP.
14.
OUTP:OPTN - Вкл./Выкл. вывода
информационных сообщений на тер-
минал (сообщения
об ошибках выводятся всегда).
OPTN может принимать
следующие значения:
OFF - Не выводить информационные сообщения.
ON - Выводить сообщения (действует по умолча-
нию).
DBG - ON + дополнительно на терминал выводится
последняя
прочитанная из файла директива.
MENU - Вызов меню SHOW
как в полной версии #COCO
(для отладки
процедуры).
Меткой конца процедуры служит начало следующей процедуры, либо конец
файла.
Далее в этом файле записаны имеющиеся на
настоящий момент про-
цедуры
(можете добавить свою).
----------------------------------------------------------------------
Коррекция орбиты ВЭПП-3
перед выпуском в ВЭПП-4.
PROC:WYP3 Название процедуры коррекции: WYP3.
Это слово должно
быть в 182-й ячейке STAP, заносится туда программой
#PREP. Используется
матрица откликов по
умолчанию
(зависит от энергии
ВЭПП-3).
OUTP:OFF Убрали вывод сообщений на
терминал.
CURR:STOP:0.5 Завершение работы, если ток пучка меньше
0.5 МА.
CORR:IMAX:0.95 Ограничение на максимальные токи корректоров. Если
какие-то корректора не могут
отработать максимальный
ток указанный в базе данных,
то эта директива может
помочь.
CORR:HOLD:2X**
CNTR:ON Включили дополнительный контроль
(183-я ячейка STAP)
--------- Первая итерация - коррекция с равными
весами
GOAL:A154 Прочли орбиту цели из файла
(COR3.A154, DY=51). Тут
KW еще не введено!
CORR:HOLD:2Z3
CORR:MICA:8
CORR:GLOB Глобальная коррекция всеми
корректорами (X и Z).
CORR:SEND Посылка новых уставок в #BANK.
--------- Вторая итерация - коррекция с разными весами
на 3-х пикапах
WGHT:WWYP Читаем веса пикапов из файла (COR3.WWYP,
DY=51).
CYCL:2 Начало цикла (2 итерации).
GOAL:ORBI Взяли измеренную орбиту как цель.
GOAL:B154 Прочли орбиту цели из файла
(COR3.B154, DY=51). В
этом файле указаны не все
пикапы, а только в районе
выпуска (2Р3 и рядом), KW не
введено. На остальных
пикапах орбита цели будет
совпадать с измеренной.
CURR:STOP:0.5 Завершение работы, если ток пучка меньше
0.5 МА.
CORR:NEAR:10 Локальная коррекция 10-ю рядом стоящими
корректорами
CORR:GLOB
CORR:SEND Посылка новых уставок в #BANK.
ENDC: Конец цикла.
--------- Третья итерация - стабилизация орбиты на
выпуске
CYCL: Начало бесконечного цикла.
CURR:STOP:0.5 Завершение работы, если ток пучка меньше
0.5 МА.
CORR:NEAR:10 Локальная коррекция 10-ю рядом стоящими
корректорами
CORR:GLOB
CORR:SEND:0.7 Посылка новых уставок в #BANK с
весом 0.7 (для ус-
тойчивости стабилизации).
CORR:BANK Взяли уставки из #BANK
(они не совпадают с #COCO,
т.к. коэффициент передачи в
#BANK не равен 1).
TISU:10 Задержка перед следующей итерацией
цикла.
ENDC: Конец цикла.
--------- Ожидание ввода KW
LABL:WTKW Метка для перехода (должна быть
занесена в 183-ю яч.
STAP, это делает #PREP перед
вводом KW).
CORR:FREE:2Z3
CORR:NEAR:3
CYCL: Начало бесконечного цикла.
TISU:1 Ожидание слова LAST в 183-й ячейке
STAP.
ENDC: Конец цикла.
--------- Последняя итерация - окончательная коррекция
перед выпуском
LABL:LAST Метка для перехода (должна быть
занесена в 183-ю яч.
STAP, это делает #PREP после
ввода KW).
TISU:1
CORR:BANK Взяли уставки из #BANK (после ввода
KW).
ORBI: Заказ измерения орбиты (после
ввода KW).
LABL:0001 Для работы в "ручном" режиме
(в 183-ю яч. STAP нужно
занести "1" и
запустить #COCO с 22-го входа).
WGHT:WWYP Читаем веса пикапов (могли не прочесть
в первый раз)
CYCL:3 Начало цикла (3 итерации).
GOAL:ORBI Взяли измеренную орбиту как цель.
GOAL:C154 Прочли орбиту цели из файла
(COR3.C154, DY=51). В
этом файле указаны не все
пикапы, а только в районе
выпуска (2Р3 и рядом), KW
введено. На остальных пи-
капах орбита цели будет совпадать
с измеренной.
CURR:STOP:0.5 Завершение работы, если ток пучка меньше
0.5 МА.
GOTO:EXIT:0.08 Выход из цикла, если невязка орбиты меньше
0.08.
CORR:NEAR:10 Локальная коррекция 10-ю рядом стоящими
корректорами
CORR:GLOB
CORR:SEND:0.8
Посылка новых уставок в #BANK.
ENDC: Конец цикла.
----------------------------------------------------------------------
Коррекция орбиты на инжекции
ВЭПП-3.
PROC:INJ3 Название процедуры коррекции: INJ3.
Это слово должно
быть в 182-й ячейке STAP, заносится туда программой
#PREP. Матрица откликов будет
MIS3 (на энергии ин-
жекции).
GOAL:INJ3 Прочли орбиту цели из файла
(COR3.INJ3, DY=51).
CORR:BUSY:4Z1 Выбрали корректора
CORR:BUSY:4XMB для работы
CURR:WAIT:0.3 Ожидание тока пучка 0.3 МА (чтобы
можно было изме-
рить орбиту).
GOTO:STOP:0.1 Выход, если невязка орбиты меньше 0.1.
CORR:BANK Скопировали уставки из #BANK (они могут
отличаться
от уставок в
момент старта программы, если вначале
не было захвата и пришлось
вручную шевелить орбиту,
пока #COCO ожидала тока 0.3
МА).
CORR:FIND:0 Коррекция только выбранными двумя
корректорами
CORR:SEND:0.7 Посылка новых уставок в #BANK.
CURR:WAIT:2.0 Ожидание тока пучка 2 МА.
CORR:BANK Скопировали уставки из #BANK.
CYCL:2 Начало цикла (2 итерации).
GOTO:EXIT:0.2 Выход из цикла, если невязка орбиты меньше
0.2.
CORR:FIND:0 Коррекция только выбранными двумя
корректорами
CORR:SEND Посылка новых уставок в #BANK.
ENDC: Конец цикла.
----------------------------------------------------------------------
Коррекция орбиты для начала
стабилизации по СИ #V3SR, ВЭПП-3.
PROC:ORS3 Название процедуры коррекции: ORS3.
Это слово должно
быть в 182-й ячейке STAP, заносится туда программой
#PREP. Матрица откликов
будет MES3 (на энергии 2000
МЭВ).
CURR:STOP:10. Завершение работы, если ток пучка меньше
10 МА.
GOAL:ORSI Прочли орбиту цели из файла (COR3.ORSI, DY=51).
WGHT:WORS Прочли веса пмкапов из файла
(COR3.WORS, DY=51).
CORR:HOLD:3X8 Запретили работать X-корректорами
CORR:HOLD:4X2 между пикапами 3P8 и 4P2
CYCL:2 Начало цикла (2 итерации).
CORR:GLOB Глобальная коррекция всеми
корректорами
CORR:SEND Посылка новых уставок в #BANK.
GOTO:EXIT:0.4 Выход из цикла, если невязка орбиты меньше
0.4.
ENDC: Конец цикла.
CORR:MICA:4
CORR:SEND
----------------------------------------------------------------------