v4orb2.wiki

описание пикапов и диссектора ВЭПП3-4
git clone https://star.inp.nsk.su/~bekhte/v4orb2.wiki.git
Log | Files | Refs

v4-pv-list.md (35768B)


      1 Title:   Описание PV
      2 CSS:     table.css
      3 
      4 [TOP](index)
      5 
      6 {{TOC}}
      7 
      8 # Обозначение
      9 
     10 Как описано в [обзоре](obzor#Схеманаименованияpv) название PV имеет иерархию **УСТАНОВКА:СИСТЕМА:значение-СУФФИКС**.
     11 Для одного IOC часть имени **УСТАНОВКА:СИСТЕМА** Обычно одинакова и задается чарез переменные окружения, в описании используется похожий синтаксис. В тексте сокращенно на переменную ссылаются как на **значение**.
     12 
     13 # Описание PV
     14 
     15 ## Описание PV stap IOC[stap-IOC]
     16 
     17 IOC отвечает за импорт данных из stap файла
     18 
     19 <a name="heart"></a>	VEPP4:heart_  
     20 :   периодическое событие, возбуждается 1 раз в секунду,
     21     пикапстанции по этому событию начинают измерение равновесной орбиты
     22 
     23 <a name="stap_dat">	VEPP4:stap_dat-I</a>  
     24 :   инкрементируется при каждом чтении stap файла  
     25 
     26 <a name="ch_elpo"></a>			VEPP4:ch_elpo-I  
     27 <a name="ch_ready"></a>			VEPP4:ch_ready-I  
     28 <a name="ch_status"></a>			VEPP4:ch_status-I  
     29 <a name="ch_status_prev"></a>		VEPP4:ch_status_prev-I  
     30 <a name="ch_v3_sepa"></a>			VEPP4:ch_v3_sepa-I  
     31 <a name="isok"></a>				VEPP4:isok-I  
     32 <a name="perepusk"></a>			VEPP4:perepusk-I  
     33 <a name="v3_1_current"></a>		VEPP4:v3_1_current-I  
     34 <a name="v3_2_current"></a>		VEPP4:v3_2_current-I  
     35 <a name="v4_bunc_udar"></a>		VEPP4:v4_bunc_udar-I  
     36 <a name="v4_current"></a>			VEPP4:v4_current-I  
     37 <a name="v4_inj_permitted"></a>	VEPP4:v4_inj_permitted-I  
     38 <a name="v4_sep_injection"></a>	VEPP4:v4_sep_injection-I  
     39 :   значения из stap файла, смотри описание файла
     40 
     41 <a name="turns_bunch"></a>	VEPP4:turns_bunch-Sts  
     42 <a name="turns_kick"></a>		VEPP4:turns_kick-Sts  
     43 <a name="turns_do"></a>		VEPP4:turns_do-I  
     44 :   основываясь на значениях stap файла IOC определяет команду для проведения пооборотных измерений
     45     bunch - банч, kick - причина измерения, do - сигнал на проведение измерения
     46 
     47 
     48 ## Описание PV pstation IOC[pstation-ioc]
     49 
     50 Макрос $(P) для пикапстанции раскрывается как **VEPP4:ИМЯ_ПИКАПА:**.
     51 
     52 ### Управление ioc[pstation-control]
     53 
     54 <a name="HW:Host"></a>	$(P)HW:Host-SP  
     55 :   IP адрес пикапстанции, диапазон адресов 192.168.1.20-90
     56 
     57 <a name="HW:Port"></a>	$(P)HW:Port-SP  
     58 :   порт подключения, по умолчанию 2195
     59 
     60 <a name="connect"></a>	$(P)connect-Cmd  
     61 :   производить подключение
     62 
     63 <a name="connected"></a>	$(P)connected-Sts  
     64 :   статус подключения
     65 
     66 <a name="delay_hf"></a>	$(P)delay_hf-SP  
     67 :   задержка между опорной частотой 180 МГц и пооборотной частотой 800 кГц. выбирается из соображений отсутствия дрожжания счетчика сепаратрис. Дрожжание приводит в прыжкам +-1 сепаратриса,и в результаттах измерений видны провалы.
     68 
     69 <a name="Error"></a>	$(P)Error-SP  
     70 :   счетчик ошибок, при любой ошибке обмена, истечении таймаута и прочих ошибках счетчик инкрементируется, причину ошибки можно посмотреть в консоли IOC.
     71 
     72 <a name="Heart"></a>	$(P)Heart-SP  
     73 :   результат отслеживания периодического события, должно меняться одновременно с VEPP4:heart_
     74 
     75 ### Режимы работы
     76 
     77 режим измерения, мода измерения - синонимы.
     78 
     79 [Подробнее по режимы](internal#Режимыработыpstationiocvepp4)
     80 
     81 <a name="mode_single"></a>	$(P)mode_single-Cmd  
     82 :   разрешение измерения равновесной орбиты
     83 
     84 <a name="mode_fine"></a>	$(P)mode_fine-Cmd  
     85 :   разрешение режима тонкого сканирования
     86 
     87 <a name="mode_sep"></a>	$(P)mode_sep-Cmd  
     88 :   разрешения сканирования по току сепаратрис
     89 
     90 <a name="mode_turns"></a>	$(P)mode_turns-Cmd  
     91 :   разрешение проведения пооборотных измерений, команда на проведение [смотри ниже](#turns).
     92 
     93 <a name="mode_fast"></a>	$(P)mode_fast-Cmd  
     94 :   разрешение проведения уточненного сканирования по току сепаратрис, в отличие от mode_sep, измеряется 16 точек на сепаратрису
     95 
     96 <a name="mode_lowfreq"></a>	$(P)mode_lowfreq-Cmd  
     97 :   разрешение измерения чизкочастотных колебаний пучка
     98 
     99 <a name="mode"></a>	$(P)mode-I  
    100 :   текущая мода измерения
    101 
    102 ### Автоматические подстройки
    103 
    104 auto – автоматическая подстройка, auto1 – однократная подстройка
    105 
    106 <a name="fine_auto1"></a>	$(P)fine_auto1-Cmd  
    107 <a name="fine_auto"></a>	$(P)fine_auto-Cmd  
    108 :   подстройка тонкой задержки [fine_e](#fine_e), [fine_p](#fine_p)
    109 
    110 <a name="fine_max"></a>	$(P)fine_max-SP  
    111 <a name="fine_min"></a>	$(P)fine_min-SP  
    112 :   пределы подстройки общей тонкой задержки [fine_e](#fine_e), [fine_p](#fine_p), должнобыть 100, 400
    113 
    114 <a name="fine_bunch_auto1"></a>	$(P)fine_bunch_auto1-Cmd  
    115 <a name="fine_bunch_auto"></a>	$(P)fine_bunch_auto-Cmd  
    116 :   подстройка тонкой задержки для каждого банча: [e1_fine](#e1_fine), [e2_fine](#e2_fine), [p1_fine](#p1_fine), [p2_fine](#p2_fine).
    117 
    118 <a name="delay_button_auto1"></a>	$(P)delay_button_auto1-Cmd  
    119 <a name="delay_button_auto"></a>	$(P)delay_button_auto-Cmd  
    120 :   подстройка индивидуальной задержки электрода [delay_button](#delay_button0)
    121 
    122 <a name="delay_button_e_auto1"></a>	$(P)delay_button_e_auto1-Cmd  
    123 <a name="delay_button_e_auto"></a>	$(P)delay_button_e_auto-Cmd  
    124 :   подстройка индивидуальной задержки электрода для электронов [delay_button_e](#delay_button0_e)
    125 
    126 <a name="delay_button_p_auto1"></a>	$(P)delay_button_p_auto1-Cmd  
    127 <a name="delay_button_p_auto"></a>	$(P)delay_button_p_auto-Cmd  
    128 :   подстройка индивидуальной задержки электрода для позитронов [delay_button_p](#delay_button0_p)
    129 
    130 <a name="gain_auto"></a>			$(P)gain_auto-Cmd  
    131 :   подстройка коэффициента усиления [gain](#gain)
    132 
    133 <a name="scan_fast_auto1"></a>		$(P)scan_fast_auto1-Cmd  
    134 <a name="scan_fast_auto"></a>		$(P)scan_fast_auto-Cmd  
    135 :   зарезервированно, должно выть выключенно
    136 
    137 <a name="u0_button_auto1"></a>		$(P)u0_button_auto1-Cmd  
    138 <a name="u0_button_auto"></a>		$(P)u0_button_auto-Cmd  
    139 :   подстройка смещения нуля [u0_button](#u0_button0)
    140 
    141 ### тонкая задержка для электродов
    142 
    143 АЦП на каждом входе пикапстанции имеет индивидуальную регулировку задержки, для того чтобы скомпенсировать
    144 длинну входных кабелей и неравенство внутренних задержек блока. Полная задердка находится как сумма
    145 общей и индивудуальной для типа частиц.
    146 
    147 <a name="delay_button0"></a>	$(P)delay_button0-SP  
    148 <a name="delay_button1"></a>	$(P)delay_button1-SP  
    149 <a name="delay_button2"></a>	$(P)delay_button2-SP  
    150 <a name="delay_button3"></a>	$(P)delay_button3-SP  
    151 :   индивидуальная задержка для канала АЦП
    152 
    153 <a name="delay_button0_e"></a>	$(P)delay_button0_e-SP  
    154 <a name="delay_button1_e"></a>	$(P)delay_button1_e-SP  
    155 <a name="delay_button2_e"></a>	$(P)delay_button2_e-SP  
    156 <a name="delay_button3_e"></a>	$(P)delay_button3_e-SP  
    157 :   добавочная индивидуальная задержка для входа для электронов
    158 
    159 <a name="delay_button0_p"></a>	$(P)delay_button0_p-SP  
    160 <a name="delay_button1_p"></a>	$(P)delay_button1_p-SP  
    161 <a name="delay_button2_p"></a>	$(P)delay_button2_p-SP  
    162 <a name="delay_button3_p"></a>	$(P)delay_button3_p-SP  
    163 :   добавочная индивидуальная задержка для входа для позитронов
    164 
    165 на сколько надо изменить тонкую задержку чтобы попасть на экстремум.
    166 
    167 <a name="delay_button0_desired"></a>	$(P)delay_button0_desired-I  
    168 <a name="delay_button1_desired"></a>	$(P)delay_button1_desired-I  
    169 <a name="delay_button2_desired"></a>	$(P)delay_button2_desired-I  
    170 <a name="delay_button3_desired"></a>	$(P)delay_button3_desired-I  
    171 :   ожидаемая задержка для входа
    172 
    173 <a name="delay_button0_e_desired"></a>	$(P)delay_button0_e_desired-I  
    174 <a name="delay_button1_e_desired"></a>	$(P)delay_button1_e_desired-I  
    175 <a name="delay_button2_e_desired"></a>	$(P)delay_button2_e_desired-I  
    176 <a name="delay_button3_e_desired"></a>	$(P)delay_button3_e_desired-I  
    177 :   индивидуальная ожидаемая задержка для входа для электронов
    178 
    179 <a name="delay_button0_p_desired"></a>	$(P)delay_button0_p_desired-I  
    180 <a name="delay_button1_p_desired"></a>	$(P)delay_button1_p_desired-I  
    181 <a name="delay_button2_p_desired"></a>	$(P)delay_button2_p_desired-I  
    182 <a name="delay_button3_p_desired"></a>	$(P)delay_button3_p_desired-I  
    183 :   индивидуальная ожидаемая задержка для входа для позитронов
    184 
    185 ### масштабные коэффициенты для кнопок
    186 
    187 <a name="g0_button0"></a>	$(P)g0_button0-SP  
    188 <a name="g0_button1"></a>	$(P)g0_button1-SP  
    189 <a name="g0_button2"></a>	$(P)g0_button2-SP  
    190 <a name="g0_button3"></a>	$(P)g0_button3-SP  
    191 <a name="g1_button0"></a>	$(P)g1_button0-SP  
    192 <a name="g1_button1"></a>	$(P)g1_button1-SP  
    193 <a name="g1_button2"></a>	$(P)g1_button2-SP  
    194 <a name="g1_button3"></a>	$(P)g1_button3-SP  
    195 :   корректирующий множитель напряжения для кнопки при коэффициенте усиления 0
    196 
    197 ### Смещение нуля
    198 
    199 В качестве исходных данных вычисления смещения нуля берется результат тонкого сканирования [фине](#B_scan_fine_U0). Для каждой кнопки вычисляется среднее и среднеквадратичная амплитуда. Среднее записывается о ожидаемое [*desired*](#u0_button0_desired), среднеквадратичное в [*sigma*](#u0_button0_sigma). Если [*sigma*](#u0_button0_sigma) всех кнопок меньше порогового [*u0_button_sigma*](#u0_button_sigma), считается что пучка нет. И если это разрешено [*u0_button_auto*](#u0_button_auto) смещение сохраняется в [*u0_button*](#u0_button0).
    200 
    201 <a name="u0_button0"></a> $(P)u0_button0-SP  
    202 <a name="u0_button1"></a> $(P)u0_button1-SP  
    203 <a name="u0_button2"></a> $(P)u0_button2-SP  
    204 <a name="u0_button3"></a> $(P)u0_button3-SP  
    205 :   смещение нуля кнопки
    206 
    207 <a name="u0_button0_desired"></a>	$(P)u0_button0_desired-I  
    208 <a name="u0_button1_desired"></a>	$(P)u0_button1_desired-I  
    209 <a name="u0_button2_desired"></a>	$(P)u0_button2_desired-I  
    210 <a name="u0_button3_desired"></a>	$(P)u0_button3_desired-I  
    211 :   ожидаемое смещение нуля
    212 
    213 <a name="u0_button0_sigma"></a>	$(P)u0_button0_sigma-I  
    214 <a name="u0_button1_sigma"></a>	$(P)u0_button1_sigma-I  
    215 <a name="u0_button2_sigma"></a>	$(P)u0_button2_sigma-I  
    216 <a name="u0_button3_sigma"></a>	$(P)u0_button3_sigma-I  
    217 :   среднеквадратичная амплитуда
    218 
    219 <a name="u0_button_sigma"></a>	$(P)u0_button_sigma-SP  
    220 :   предельная среднеквадратичная амплитуда
    221 
    222 ### Настройки измерений
    223 
    224 Номер сепаратрисы банча вычисляется как сумма смещения [sep0](#sep0) и индивидуального
    225 номера сепаратрисы банча [e1 e2 p1 p2_sep](#B_sep).
    226 
    227 <a name="sep0"></a>	$(P)sep0-SP  
    228 :   	смещение номера сепаратрисы,
    229 
    230 Тонкая задержка вычисляется как сумма тонкой задержки по типу частиц
    231 [fine_e](#fine_e) [fine_p](#fine_p) и индивидуальной задержки банча [e1 e2 p1 p2_fine](#B_fine).
    232 
    233 <a name="fine_e"></a>	$(P)fine_e-SP  
    234 :   тонкая задержка для частиц типа e
    235 
    236 <a name="fine_p"></a>	$(P)fine_p-SP  
    237 :   тонкая задержка для частиц типа p
    238 
    239 <a name="fine_e_desired"></a>	$(P)fine_e_desired-I  
    240 :   смещение до экстремума для типа частиц
    241 
    242 <a name="fine_p_desired"></a>	$(P)fine_p_desired-I  
    243 :   смещение до экстремума для типа частиц
    244 
    245 <a name="gain"></a>	$(P)gain-SP  
    246 :   	код усиления
    247 
    248 ### Настройки измерений в моде SINGLE
    249 
    250 #### Настройки банча
    251 
    252 макрос B – одно из e1, e2, p1, p2
    253 
    254 <a name="B_bunch"></a>	$(P)\$(B)_bunch-Cmd  
    255 :	разрешение измерения банча
    256 
    257 <a name="B_extr"></a>	$(P)\$(B)_extr-SP  
    258 :   тип экстеремума:  
    259        1 – максимум  
    260        -1 - минимум
    261 
    262 <a name="B_sep"></a>	$(P)\$(B)_sep-SP  
    263 :   номер сепаратрисы
    264 
    265 <a name="B_fine"></a>	$(P)\$(B)_fine-SP  
    266 :   тонкая задержка
    267 
    268 <a name="B_fine_desired"></a>	$(P)\$(B)\_fine_desired-I  
    269 :   контроль подстройки
    270 
    271 #### Общие для всех банчей
    272 
    273 <a name="nturns_single"></a>	$(P)nturns_single-SP  
    274 :   длительность измерения в режиме single, в оборотах
    275 
    276 <a name="gap_single"></a>	$(P)gap_single-SP  
    277 :   0
    278 
    279 <a name="np_adc_read_single"></a>	$(P)np_adc_read_single-SP  
    280 :   0
    281 
    282 <a name="step_single"></a>	$(P)step_single-SP  
    283 :   шаг сканирования в режиме single
    284 
    285 ### Настройки измерений в моде FINE
    286 
    287 <a name="step_fine"></a>	$(P)step_fine-SP  
    288 :   шаг сканирования в режиме fine
    289 
    290 <a name="nturns_fine"></a>	$(P)nturns_fine-SP  
    291 :   длительность измерения в режиме fine, в оборотах
    292 
    293 <a name="gap_fine"></a>	$(P)gap_fine-SP  
    294 :   0
    295 
    296 <a name="np_adc_read_fine"></a>	$(P)np_adc_read_fine-SP  
    297 :   0
    298 
    299 <a name="fine_auto_min"></a>	$(P)fine_auto_min-SP  
    300 :   предел в кодах ниже которого не выполняется подстройка задержки
    301 
    302 ### Настройки измерений в моде SEP
    303 
    304 <a name="nturns_sep"></a>	$(P)nturns_sep-SP  
    305 :   длительность измерения в режиме sep, в оборотах
    306 
    307 <a name="np_adc_read_sep"></a>	$(P)np_adc_read_sep-SP  
    308 :   
    309 
    310 <a name="gap_sep"></a>	$(P)gap_sep-SP  
    311 :   
    312 
    313 ### Настройки измерений в моде TURNS[turns]
    314 
    315 <a name="turns_bunch"></a>	$(P)turns_bunch-SP  
    316 :   банч для которого производятся пооборотные измерения
    317 
    318 <a name="turns_do"></a>	$(P)turns_do-SP  
    319 :   запись не 0 производит пооборотные измерения, по окончании измерения сбрасывается в 0
    320 
    321 <a name="turns_process"></a>	$(P)turns_process-I  
    322 :   фактичкское состояние процесса пооборотных измерений
    323 
    324 <a name="turns_kick"></a>	$(P)turns_kick-SP  
    325 :   причина измерений INJ, UDAR, SOFT
    326 
    327 <a name="turns_e_start0"></a>	$(P)turns_e_start0-SP  
    328 <a name="turns_p_start0"></a>	$(P)turns_p_start0-SP  
    329 :   количество оборотов в начале измерения координаты которых зануляются, скрывается шум в отсутствие пучка, для электронов и позитронов
    330 
    331 <a name="turns_timeout"></a>	$(P)turns_timeout-SP  
    332 :   таймаут пооборотных измерений
    333 
    334 <a name="nturns_turns"></a>	$(P)nturns_turns-SP  
    335 :   длительность пооборотных измерений в оборотах, авоматически увеличивается, должно быть по крайней мере 2 в степени np_adc умножить на gap+1
    336 
    337 <a name="np_adc_read_turns"></a>	$(P)np_adc_read_turns-SP  
    338 :   размер массива пооборотных измерений, 2 в соответствующей степени,  
    339          0 – 1024,  
    340          1 – 2048,  
    341          2 – 4096,  
    342          3 – 8192.  
    343 
    344 <a name="gap_turns"></a>	$(P)gap_turns-SP  
    345 :   прореживание, измерение производится для каждого gap+1 оборота, при gap равном нулю на каждом обороте
    346 
    347 ![Временная диаграмма смены значений PV при успешных пооборотных измерениях.](turns-success.png)
    348 
    349 где:
    350 
    351 * t1 - завершение предидущего измерения, типично 1 - 20 мсек 
    352 * t2 - ожидание прихода импульса запуска, от 0 до [turns_timeout-SP](#turns_timeout)
    353 * t3 - измерение от 1 мсек до 0.3 сек плюс чтение от 0.1 до 1.5 сек в зависимости от [прореживания](#gap_turns) и [размера массива](#np_adc_read_turns) плюс повторное чтение в случае ошибки до 5 секунд в худшем случае.
    354 * t4 - обновление PV, типично 1 мсек
    355 
    356 ![Временная диаграмма смены значений PV при не успешных пооборотных измерениях.](turns-fail.png)
    357 
    358 где:
    359 
    360 * t1 - завершение предидущего измерения, типично 1 - 20 мсек 
    361 * t2 - ожидание прихода импульса запуска, от 0 до [turns_timeout-SP](#turns_timeout) плюс, в наихудшем худшем случае, время измерения и три повторных неудачных чтения в сумме до 7 сек.
    362 * t4 - обновление PV, типично 1 мсек
    363 
    364 ### Настройки измерений в моде FAST
    365 
    366 Сканирование по всем сапаратрисам, 16 точек на сепартрису. Сканируется с тонкой задержкой для электронов, поэтому для позитронов сигналы с пластин для пикапов семества [NS]RP* расползаются.
    367 
    368 <a name="nturns_fast"></a>	$(P)nturns_fast-SP  
    369 :   800 - 1 мс
    370 
    371 <a name="gap_fast"></a>	$(P)gap_fast-SP  
    372 :   0
    373 
    374 <a name="np_adc_read_fast"></a>	$(P)np_adc_read_fast-SP  
    375 :   0
    376 
    377 <a name="scan_fast_mult"></a>	$(P)scan_fast_mult-SP  
    378 :   множитель компенсации нелинейности задержки, номинально в диапазоне 32-34
    379 
    380 <a name="B_scan_fast_base"></a>	$(P)\$(B)\_scan_fast_base-SP  
    381 :   зарезервированно
    382 
    383 ### Настройки измерений в моде TIMEBACK
    384 
    385 ### Параметры пикапа
    386 
    387 <a name="g0_gI"></a>	$(P)g0_gI-SP  
    388 :   множитель тока при коде коэффициента усиления 0
    389 
    390 <a name="g1_gI"></a>	$(P)g1_gI-SP  
    391 :   множитель тока при коде коэффициента усиления 1
    392 
    393 <a name="GI"></a>	$(P)GI-SP  
    394 :   множитель по току
    395 
    396 <a name="GX"></a>	$(P)GX-SP  
    397 :   геометрический множитель по горизонтальной координате
    398 
    399 <a name="GZ"></a>	$(P)GZ-SP  
    400 :   геометрический множитель по вертикальной координате
    401 
    402 <a name="X0"></a>	$(P)X0-SP  
    403 :   смещение нуля по горизонтали
    404 
    405 <a name="Z0"></a>	$(P)Z0-SP  
    406 :   смещенеи нуля по вертикали
    407 
    408 ### Произвольное преобразование координат
    409 
    410 IOC посзволяет применять произвольное преобразование координат к пикапу с помощью полиномов до 3-го порядка.
    411 С помощью этого преобразования можно исправлять нелинейность передаточной характеристики пикапа, вращать или отражать координаты
    412 
    413 <a name="poly_x_e"></a>	$(P)poly_x_e-SP  
    414 :   полином для преобразования горизонтальной координаты для электронов
    415 
    416 <a name="poly_z_e"></a>	$(P)poly_z_e-SP  
    417 :   полином для преобразования веритикальной координаты для электронов
    418 
    419 <a name="poly_x_p"></a>	$(P)poly_x_p-SP  
    420 :   полином для преобразования горизонтальной координаты для позитронов
    421 
    422 <a name="poly_z_p"></a>	$(P)poly_z_p-SP  
    423 :   полином для преобразования вертикальной координаты для позитронов
    424 
    425 Порядок вычислений
    426 
    427 в начале производися предварительное вычисление координат по формуле для вертикальногоризонтального или диагонального расположения электродов, после умножения на GX, GZ получаем предварительные координаты x и z.
    428 Из них формруем вертораргумент
    429 
    430 Vxz = (1, x, z, x\*x, x\*z, z\*z, x\*\*3, x\*\*2\*z, x\*z\*\*2, z\*\*3) 
    431 
    432 затем скалярно умножаем на соответствующий полином и получаем скорректированную координату, после этого к координате применяются постоянные смещения связанные со смежением нуля пикапа (X0, Z0) и геодезические смещения  (GeodX0, GeodZ0)
    433 
    434 На вход принимаются полиномы -1, 0, 1, 2, и 3-го порядков(длинна массива 0, 1, 3, 6, 10 элементов), если порядки полиномов не совпадают или длины не правильные, преобразование не производится.
    435 
    436 Примеры:
    437 
    438 Тривиальное преобразование
    439 
    440 ```
    441 poly_x = 0 1 0 
    442 poly_z = 0 0 1
    443 ```
    444 
    445 Отражение координат, вращение на 180 градусов
    446 
    447 ```
    448 poly_x = 0 -1 0 
    449 poly_z = 0 0 -1
    450 ```
    451 
    452 Обмен координат, отражение по диагонали
    453 
    454 ```
    455 poly_x = 0 0 1 
    456 poly_z = 0 1 0
    457 ```
    458 
    459 Поворот координат на угол a
    460 
    461 ```
    462 poly_x = 0 cos(a) -sin(a) 
    463 poly_z = 0 sin(a)  cos(a)
    464 ```
    465 
    466 ## Результаты измерений
    467 
    468 сигналы готовности, инкрементирующийся счетчик, соответствующего режима измерений. Задумывалось что он будет последним в обновлении данных соответствующего типа измерений, и когда он меняется все данные можно считать окончательными. Основывается на предположении что CA не переупорядочивает данные.
    469 
    470 <a name="ready_fast"></a>		$(P)ready_fast-I  
    471 <a name="ready_fine"></a>		$(P)ready_fine-I  
    472 <a name="ready_sep"></a>		$(P)ready_sep-I  
    473 <a name="ready_single"></a>		$(P)ready_single-I  
    474 <a name="ready_turns"></a>		$(P)ready_turns-I  
    475 :   триггеры готовности данных
    476 
    477 ### Результаты измерений в моде SINGLE
    478 
    479 Описание [измерения в моде SINGLE](internal)
    480 
    481 <a name="e1_x"></a>	$(P)e1_x-I  
    482 <a name="e2_x"></a>	$(P)e2_x-I  
    483 <a name="p1_x"></a>	$(P)p1_x-I  
    484 <a name="p2_x"></a>	$(P)p2_x-I  
    485 :   положение пучка X для каждого банча
    486 
    487 <a name="e1_z"></a>	$(P)e1_z-I  
    488 <a name="e2_z"></a>	$(P)e2_z-I  
    489 <a name="p1_z"></a>	$(P)p1_z-I  
    490 <a name="p2_z"></a>	$(P)p2_z-I  
    491 :   положение пучка Z для каждого банча
    492 
    493 <a name="e1_i"></a>	$(P)e1_i-I  
    494 <a name="e2_i"></a>	$(P)e2_i-I  
    495 <a name="p1_i"></a>	$(P)p1_i-I  
    496 <a name="p2_i"></a>	$(P)p2_i-I  
    497 :   ток для каждого банча
    498 
    499 Следующие Параметры требуются для диагностики правильности работы режима SINGLE.
    500 
    501 Переменная $(B) раскрывается как e1, e1, p1, p2.
    502 
    503 <a name="B_u0"></a> $(P)\$(B)_u0-I	
    504 <a name="B_u1"></a> $(P)\$(B)_u1-I  
    505 <a name="B_u2"></a> $(P)\$(B)_u2-I  
    506 <a name="B_u3"></a> $(P)\$(B)_u3-I  
    507 :   необработанное напряжение на кнопке в кодах АЦП, без учета смещения нуля и корректирующих множителей.
    508 
    509 <a name="B_scan_single_axis"></a>	$(P)\$(B)\_scan_single_axis-I  
    510 <a name="B_scan_single_U0"></a>	$(P)\$(B)\_scan_single_U0-I  
    511 <a name="B_scan_single_U1"></a>	$(P)\$(B)\_scan_single_U1-I  
    512 <a name="B_scan_single_U2"></a>	$(P)\$(B)\_scan_single_U2-I  
    513 <a name="B_scan_single_U3"></a>	$(P)\$(B)\_scan_single_U3-I  
    514 :	сканирование вокруг максимума
    515 
    516 <a name="B_sep_desired"></a> $(P)\$(B)\_sep_desired-I  
    517 <a name="B_scan_fast_sep"></a> $(P)\$(B)\_scan_fast_sep-I  
    518 <a name="B_scan_fast_U"></a> $(P)\$(B)\_scan_fast_U-I  
    519 :   
    520 
    521 <a name="scan_single_to_avr"></a>	$(P)scan_single_to_avr-I  
    522 :   	среднее время потраченное на измерение
    523 
    524 <a name="scan_single_to_max"></a>	$(P)scan_single_to_max-I  
    525 :	максимальное время
    526 
    527 <a name="scan_single_to_min"></a>	$(P)scan_single_to_min-I  
    528 :	минимальное
    529 
    530 <a name="scan_single_total"></a>	$(P)scan_single_total-I  
    531 :	полное время
    532 
    533 ### Результаты измерений в моде FINE
    534 
    535 <a name="scan_fine_to_avr"></a> $(P)scan_fine_to_avr-I  
    536 <a name="scan_fine_to_max"></a> $(P)scan_fine_to_max-I  
    537 <a name="scan_fine_to_min"></a> $(P)scan_fine_to_min-I  
    538 :   среднее время потраченное на измерение
    539 
    540 <a name="scan_fine_total"></a>	$(P)scan_fine_total-I  
    541 :	полное время
    542 
    543 <a name="B_scan_fine_axis"></a>	$(P)\$(B)\_scan_fine_axis-I  
    544 :   ось
    545 
    546 <a name="B_scan_fine_U0"></a> $(P)\$(B)\_scan_fine_U0-I  
    547 <a name="B_scan_fine_U1"></a> $(P)\$(B)\_scan_fine_U1-I  
    548 <a name="B_scan_fine_U2"></a> $(P)\$(B)\_scan_fine_U2-I  
    549 <a name="B_scan_fine_U3"></a> $(P)\$(B)\_scan_fine_U3-I  
    550 :   	напряжение на кнопке, с учетом смещения 0 и коррктирующего множителя напряжения
    551 
    552 <a name="B_scan_fine_U"></a>	$(P)\$(B)\_scan_fine_U-I  
    553 :   среднее напряжение на всех кнопках
    554 
    555 ### Результаты измерений в моде SEP
    556 
    557 <a name="scan_sep_e"></a>	$(P)scan_sep_e-I  
    558 :		ток в каждой сепаратрисе, с тонкой задержкой настроенной на максимум электронов
    559 
    560 <a name="scan_sep_p"></a>	$(P)scan_sep_p-I  
    561 :	ток в сепаратрисе для позитронов
    562 
    563 <a name="scan_sep_to_avr"></a>	$(P)scan_sep_to_avr-I  
    564 :	среднее время измерения
    565 
    566 <a name="scan_sep_to_max"></a> $(P)scan_sep_to_max-I  
    567 <a name="scan_sep_to_min"></a> $(P)scan_sep_to_min-I  
    568 <a name="scan_sep_total"></a> $(P)scan_sep_total-I  
    569 :	полное время измерения
    570 
    571 ### Результаты измерений в моде TURNS
    572 
    573 <a name="turns_axis"></a>	$(P)turns_axis-I  
    574 :	номер оборота
    575 
    576 <a name="turns_i"></a>	$(P)turns_i-I  
    577 :	пооборотный ток
    578 
    579 <a name="turns_x"></a>	$(P)turns_x-I  
    580 :	пооборотный горизональная координата
    581 
    582 <a name="turns_z"></a>	$(P)turns_z-I  
    583 :	вертикальная координата
    584 
    585 <a name="turns_U0"></a>	$(P)turns_U0-I  
    586 <a name="turns_U1"></a>	$(P)turns_U1-I  
    587 <a name="turns_U2"></a>	$(P)turns_U2-I  
    588 <a name="turns_U3"></a>	$(P)turns_U3-I  
    589 :	пооборотный код АЦП
    590 
    591 <a name="turns_total"></a>	$(P)turns_total-I  
    592 :	полное время измерения, включает ожидание запуска, время измерения и чтение данных
    593 
    594 ### Результаты измерений в моде FAST
    595 
    596 <a name="scan_fast_to_avr"></a>	$(P)scan_fast_to_avr-I  
    597 <a name="scan_fast_to_max"></a>	$(P)scan_fast_to_max-I  
    598 <a name="scan_fast_to_min"></a>	$(P)scan_fast_to_min-I  
    599 <a name="scan_fast_total"></a>	$(P)scan_fast_total-I  
    600 :   
    601 
    602 <a name="scan_fast_U_axis"></a>	$(P)scan_fast_U_axis-I  
    603 :   
    604 
    605 <a name="scan_fast_U"></a>	$(P)scan_fast_U-I  
    606 :   
    607 
    608 
    609 ### Результат измерений банча
    610 
    611 
    612 ### Настройки перекрестной коррекции
    613 
    614 Вблизи мест встречи пучков, в центре технического, экспериментального промежутков и полуколец, 
    615 хвост частиц одного типа наезжает на сигнал частиц другого типа. Всего для четырех сгустков 
    616 возможно два таких случая. Для каждого случая предусмотрен свой набор параметров компенсации хвоста.
    617 Алгоритм компенсации работает следующим образом, в параметрах компенсации запоминается при каких
    618 условиях работает компенсация, сгусток для которого проводится компенсация, сгусток который влияет,
    619 сепаратрисы в которых ожидаются сгустки, результат сканирования fine, задержка при которой сканирование
    620 было полученно. Если текущие настройки банчей не соответствуют условиям срабатывания алгоритма компенсации
    621 , алгоритм не срабатывает. Если все условия удовлетворены, то производится компенсация, по току в опорном банче
    622 определяется велична хвоста в корректируемом банче и поправка вычитается.
    623 
    624 макрос $(CROSS) раскрывается как cross1, cross2.
    625 
    626 <a name="CROSS_enable"></a>	$(P)\$(CROSS)\_enable-Cmd  
    627 :	разрешение
    628 
    629 <a name="CROSS_enabled"></a>	$(P)\$(CROSS)_enabled-Sts  
    630 :
    631 
    632 <a name="CROSS_clear"></a>	$(P)\$(CROSS)_clear-Cmd  
    633 :
    634 
    635 <a name="CROSS_bunch"></a>	$(P)\$(CROSS)_bunch-SP  
    636 :	банч
    637 
    638 <a name="CROSS_sep"></a> $(P)\$(CROSS)_sep-RB  
    639 <a name="CROSS_sep"></a> $(P)\$(CROSS)_sep-SP  
    640 :	сеператриса банча
    641 
    642 <a name="CROSS_ref"></a>			$(P)\$(CROSS)_ref-SP  
    643 <a name="CROSS_ref"></a>			$(P)\$(CROSS)_ref-RB  
    644 :	опорный банч
    645 
    646 <a name="CROSS_ref_sep"></a>		$(P)\$(CROSS)\_ref_sep-RB  
    647 <a name="CROSS_ref_sep"></a>		$(P)\$(CROSS)\_ref_sep-SP  
    648 :	сепаратриса опроного банча
    649 
    650 <a name="CROSS_ref_fine_desired"></a>	$(P)\$(CROSS)\_ref_fine_desired-I  
    651 <a name="CROSS_ref_fine"></a>			$(P)\$(CROSS)\_ref_fine-SP  
    652 :   задержка в опорном банче
    653 
    654 <a name="CROSS_ref_min"></a>		$(P)\$(CROSS)\_ref_min-SP  
    655 :   минимальный уровень сигнала
    656 
    657 <a name="CROSS_sigma"></a>		$(P)\$(CROSS)\_sigma-I	
    658 <a name="CROSS_u0_desired"></a>	$(P)\$(CROSS)\_u0_desired-I  
    659 <a name="CROSS_u0"></a>			$(P)\$(CROSS)\_u0-RB  
    660 <a name="CROSS_u0"></a>			$(P)\$(CROSS)\_u0-SP  
    661 <a name="CROSS_u1_desired"></a>	$(P)\$(CROSS)\_u1_desired-I  
    662 <a name="CROSS_u1"></a>			$(P)\$(CROSS)\_u1-RB  
    663 <a name="CROSS_u1"></a>			$(P)\$(CROSS)\_u1-SP  
    664 <a name="CROSS_u2_desired"></a>	$(P)\$(CROSS)\_u2_desired-I  
    665 <a name="CROSS_u2"></a>			$(P)\$(CROSS)\_u2-RB  
    666 <a name="CROSS_u2"></a>			$(P)\$(CROSS)\_u2-SP  
    667 <a name="CROSS_u3_desired"></a>	$(P)\$(CROSS)\_u3_desired-I  
    668 <a name="CROSS_u3"></a>			$(P)\$(CROSS)\_u3-RB  
    669 <a name="CROSS_u3"></a>			$(P)\$(CROSS)\_u3-SP  
    670 :
    671 
    672 ### Данные из STAP файла
    673 
    674 <a name="ch_v3_sepa"></a>		$(P)ch_v3_sepa-SP  
    675 <a name="v3_1_current"></a>	$(P)v3_1_current-SP  
    676 <a name="v3_2_current"></a>	$(P)v3_2_current-SP  
    677 :   полученно из stap файла
    678 
    679 # Описание PV reaper IOC
    680 
    681 Макрос $(R) раскрывается как "VEPP4:AGR:"
    682 
    683 ## Получение данных из stap файла
    684 
    685 <a name="ch_v3_sepa"></a>		$(R)ch_v3_sepa-RB  
    686 <a name="ch_v3_sepa"></a>		$(R)ch_v3_sepa-SP  
    687 <a name="v3_1_current"></a>	$(R)v3_1_current-RB  
    688 <a name="v3_1_current"></a>	$(R)v3_1_current-SP  
    689 <a name="v3_2_current"></a>	$(R)v3_2_current-RB  
    690 <a name="v3_2_current"></a>	$(R)v3_2_current-SP  
    691 <a name="error"></a>			$(R)error-RB  
    692 <a name="error"></a>			$(R)error-SP  
    693 <a name="heart"></a>			$(R)heart-SP  
    694 :   полученно из stap файла
    695 
    696 ## информация принятатя из пикапстанций
    697 
    698 Макрос $(PN) раскрывается как p1, p2 ... p54
    699 
    700 <a name="PN"></a>	$(R)\$(PN)-Cmd  
    701 :   сбор разрешен
    702 
    703 <a name="PN_connected"></a>		$(R)\$(PN)\_connected-Cmd  
    704 <a name="PN_e1_i"></a>			$(R)\$(PN)\_e1_i-SP  
    705 <a name="PN_e1_x"></a>			$(R)\$(PN)\_e1_x-SP  
    706 <a name="PN_e1_z"></a>			$(R)\$(PN)\_e1_z-SP  
    707 <a name="PN_e2_i"></a>			$(R)\$(PN)\_e2_i-SP  
    708 <a name="PN_e2_x"></a>			$(R)\$(PN)\_e2_x-SP  
    709 <a name="PN_e2_z"></a>			$(R)\$(PN)\_e2_z-SP  
    710 <a name="PN_error"></a>			$(R)\$(PN)\_error-SP  
    711 <a name="PN_gain"></a>			$(R)\$(PN)\_gain-SP  
    712 <a name="PN_name"></a>			$(R)\$(PN)\_name-SP  
    713 <a name="PN_p1_i"></a>			$(R)\$(PN)\_p1_i-SP  
    714 <a name="PN_p1_x"></a>			$(R)\$(PN)\_p1_x-SP  
    715 <a name="PN_p1_z"></a>			$(R)\$(PN)\_p1_z-SP  
    716 <a name="PN_p2_i"></a>			$(R)\$(PN)\_p2_i-SP  
    717 <a name="PN_p2_x"></a>			$(R)\$(PN)\_p2_x-SP  
    718 <a name="PN_p2_z"></a>			$(R)\$(PN)\_p2_z-SP  
    719 <a name="PN_ready_single"></a>	$(R)\$(PN)\_ready_single-SP  
    720 <a name="PN_ready_turns"></a>		$(R)\$(PN)\_ready_turns-SP  
    721 <a name="PN_single_error"></a>	$(R)\$(PN)\_single_error-SP  
    722 <a name="PN_turns_bunch"></a>		$(R)\$(PN)\_turns_bunch-SP  
    723 <a name="PN_turns_error"></a>		$(R)\$(PN)\_turns_error-SP  
    724 <a name="PN_turns_kick"></a>		$(R)\$(PN)\_turns_kick-SP  
    725 :   захваченные данные
    726 
    727 
    728 # Описание PV fftvepp4 IOC
    729 
    730 # Описание PV sep_all IOC
    731 
    732 # Описание PV sep_helper IOC