Файл 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  

   

----------------------------------------------------------------------