dissector-pv-list.md (17953B)
1 Title: Описание PV 2 3 [TOP](index) 4 5 {{TOC}} 6 7 # Обозначение 8 9 Как описано в [обзоре](obzor#Схеманаименованияpv) название PV имеет иерархию **УСТАНОВКА:СИСТЕМА:значение-СУФФИКС**. 10 Для одного IOC часть имени **УСТАНОВКА:СИСТЕМА** Обычно одинакова и задается чарез переменные окружения $(P). 11 В описании используется похожий синтаксис. В тексте сокращенно на переменную ссылаются как на **значение**. 12 13 Макрос $(P) для диссектора раскрывается как 14 15 - **VEPP4:dissector_e:** - для электронов 16 - **VEPP4:dissector_p:** - для позитронов 17 - **VEPP3:dissector_v3:** - для VEPP3 18 19 Для мод параметры имеют вид **$(P)параметр_мода-Суф**. 20 21 Для результата имеют вид **$(P)мода_результат-Суф**. 22 23 Автоподстройки имеют вид 24 25 - **auto_*** для периодической автоподстройки 26 - **auto1_*** для однократной автоподстройки 27 28 # Описание PV 29 30 Ток вертикальная шкала вычисляется по формуле 31 32 33 I = (U - U0) * pow10( step_gain * gain / 20) * GI 34 35 где [U0](#u0), [step_gain](#step_gain), [gain](#gain), [GI](#gi). 36 37 38 39 ## Общие настройки 40 41 <a name="connect"></a> $(P)**connect**-Cmd 42 : производить подключение 43 44 <a name="connected"></a> $(P)**connected**-Sts 45 : статус подключения 46 47 <a name="host"></a> $(P)**host**-SP 48 : IP адрес пикапстанции, диапазон адресов 192.168.1.150-152 49 50 <a name="port"></a> $(P)**port**-SP 51 : порт подключения, по умолчанию 2195 52 53 <a name="error"></a> $(P)**error**-SP 54 : счетчик ошибок, при ошибке инкрементируется 55 56 ## Коэффициент усиления 57 58 <a name="gain"></a> $(P)**gain**-SP 59 : усиление код 60 61 <a name="step_gain"></a> $(P)**step_gain**-SP 62 : вес шага усиления (10дБ) 63 64 <a name="auto_gain"></a> $(P)**auto_gain**-Cmd 65 : автоматическая подстройка усиления(пока не работает) 66 67 <a name="scan_gain"></a> $(P)**scan_gain**-Cmd 68 : зарезервированно 69 70 <a name="level_nosig_gain"></a> $(P)**level_nosig_gain**-SP 71 : если сигнал меньше указанного уровня, усиление ставится в [default_gain](#default_gain) 72 73 <a name="tau_gain"></a> $(P)**tau_gain**-SP 74 : зарезервированно 75 76 <a name="lim_gain"></a> $(P)**lim_gain**-SP 77 : зарезервированно 78 79 <a name="default_gain"></a> $(P)**default_gain**-SP 80 : усиление при отсутствии сигнала 81 82 <a name="min_gain"></a> $(P)**min_gain**-SP 83 : минимальное усиление 0 84 85 <a name="max_gain"></a> $(P)**max_gain**-SP 86 : максимальное усиление 1 87 88 89 ## Банчи 90 91 <a name="bunch1"></a> $(P)**bunch1**-SP 92 <a name="bunch2"></a> $(P)**bunch2**-SP 93 <a name="bunch3"></a> $(P)**bunch3**-SP 94 <a name="bunch4"></a> $(P)**bunch4**-SP 95 : разрешить измерение соответствующего банча 96 97 <a name="sep0"></a> $(P)**sep0**-SP 98 : смещение нумерации сепаратрис 99 100 <a name="sep1"></a> $(P)**sep1**-SP 101 <a name="sep2"></a> $(P)**sep2**-SP 102 <a name="sep3"></a> $(P)**sep3**-SP 103 <a name="sep4"></a> $(P)**sep4**-SP 104 : номер сепаратрисы для соответствующего банча 105 106 <a name="fine1"></a> $(P)**fine1**-SP 107 <a name="fine2"></a> $(P)**fine2**-SP 108 <a name="fine3"></a> $(P)**fine3**-SP 109 <a name="fine4"></a> $(P)**fine4**-SP 110 : задержка в пределах сепаратрисы 111 112 <a name="extr1"></a> $(P)**extr1**-SP 113 <a name="extr2"></a> $(P)**extr2**-SP 114 <a name="extr3"></a> $(P)**extr3**-SP 115 <a name="extr4"></a> $(P)**extr4**-SP 116 : знак максимума, 0 - любой 117 118 <a name="auto_sep"></a> $(P)**auto_sep**-SP 119 <a name="auto1_sep"></a> $(P)**auto1_sep**-SP 120 : автоподстройка сепаратрисы, про результатам сканирования [scan2d_i](#scan2d_i) в 121 диапазоне +-2 сепартрисы относительно текущего значения вычисляется амплитуда 122 сигнала и номер сепаратрисы настраивается на максимум, при условии что сигнал превышает [level_nosig_gain](#level_nosig_gain). 123 Если [extr](#extr1) больше нуля считаются значения сигнала больше нуля, если меньше - меньше, если равно - по модулю. 124 125 ## Шкала 126 127 <a name="gi"></a> $(P)**GI**-SP 128 : множитель тока 129 130 <a name="x1"></a> $(P)**X1**-SP 131 : левая граница шкалы профиля 132 133 <a name="x2"></a> $(P)**X2**-SP 134 : правая граница шкалы профиля 135 136 <a name="u0"></a> $(P)**U0**-SP 137 : смещение нуля 138 139 <a name="gi0"></a> $(P)**GI0**-SP 140 : зарезервированно 141 142 <a name="gi1"></a> $(P)**GI1**-SP 143 : зарезервированно 144 145 146 ## Моды 147 148 Соответствующий тип измерения называется модой. Основным типом измерений 149 является профиль **mode_prof**. Также есть дополнительные виды измерения. 150 Пооборотные измерения **turns** и сканирование профиля по сепаратрисам **scanprof**. 151 Измерение производится если его проведенеие разрешено **mode_*** и заказано однократное 152 ***_do** или периодическое измерение ***_cont**. 153 154 С целью экономии ресурсов измерение **turnslong** с размером буфера до 1М, производится 155 если разрешены **mode_turns**, **mode_turnslong** и количество заказанных оборотов **ne_turns** 156 больше 16384. При этом первые 16384 оборота копируются в результат **mode_turns**. 157 158 <a name="mode"></a> $(P)**mode**-I 159 : текущее состояние измерения 160 161 <a name="mode_turns"></a> $(P)**mode_turns**-Cmd 162 : разрешение пооборотных измерений 163 164 <a name="mode_turnslong"></a> $(P)**mode_turnslong**-Cmd 165 : разрешение пооборотных измерений до миллиона точек 166 167 <a name="mode_scan"></a> $(P)**mode_scan**-Cmd 168 : зарезервированно 169 170 <a name="mode_scanprof"></a> $(P)**mode_scanprof**-Cmd 171 : сканирование для подстройки сепаратрис 172 173 <a name="mode_prof"></a> $(P)**mode_prof**-Cmd 174 : измерение профиля 175 176 177 ## Общие для всех мод 178 179 <a name="ndel0"></a> $(P)**ndel0**-SP 180 : задержка между ВЧ и частоты оборотов 181 182 <a name="gap"></a> $(P)**gap**-SP 183 : прореживание 184 185 186 ## Настройки профиля[opt_prof] 187 188 <a name="prof_do"></a> $(P)**prof_do**-SP 189 : провести однократное измерение профиля 190 191 <a name="prof_cont"></a> $(P)**prof_cont**-SP 192 : проводить периодические измерения профиля 193 194 <a name="ne_prof"></a> $(P)**ne_prof**-SP 195 : количество оборотов элементарного измерения, кратно 4 (по соображениям упрощения прошивки) 196 197 <a name="n_prof"></a> $(P)**n_prof**-SP 198 : количество точек профиля 199 200 <a name="naver_prof"></a> $(P)**naver_prof**-SP 201 : усрелнение по формуле U[i] = U[i-1] * (1 - 1/naver) + U * 1/naver 202 203 <a name="tdel_prof"></a> $(P)**tdel_prof**-SP 204 : задержка старта следуюжего измерения для банча NONE 205 206 <a name="ext_ramp_prof"></a> $(P)**ext_ramp_prof**-Cmd 207 : при старте ждать импульса 50 Гц 208 209 <a name="ext_start_prof"></a> $(P)**ext_start_prof**-Cmd 210 : при старте ждать импульса на входе старт 211 212 <a name="timeout_prof"></a> $(P)**timeout_prof**-SP 213 : тайм аут операци в моде prof, мсек 214 215 Полное время измерения (ne_prof + 4) * n_prof оборотов, например для 216 217 ``` 218 ne_prof = 24 219 n_prof = 512 220 (24 + 4) * 512 = 7/8 * 16384 221 ``` 222 223 время сканирования составит 17.5 мсек (считая что 16384 оборота 20 мсек) 224 225 ## Результат измерения профиля[prof] 226 227 <a name="ready_prof"></a> $(P)**ready_prof**-I 228 : триггер готовности, всегда обновляется последним 229 230 <a name="prof_i1"></a> $(P)**prof_i1**-I 231 <a name="prof_i2"></a> $(P)**prof_i2**-I 232 <a name="prof_i3"></a> $(P)**prof_i3**-I 233 <a name="prof_i4"></a> $(P)**prof_i4**-I 234 : профиль для банчей 235 236 <a name="prof_axis"></a> $(P)**prof_axis**-I 237 : горизонтальная ось профиля [X1](#x1) - [X2](#x2) 238 239 <a name="prof_time"></a> $(P)**prof_time**-I 240 : время измерения профиля, сек 241 242 243 ## Настройки сканирования[opt_scan] 244 245 Сдующие парамеры берутся из [**prof**](#opt_prof) 246 247 - [ne_prof](#ne_prof) 248 - [n_prof](#n_prof) 249 - [naver_prof](#naver_prof) 250 - [ext_ramp_prof](#ext_ramp_prof) 251 - [ext_start_prof](#ext_start_prof) 252 - [timeout_prof](#timeout_prof) 253 254 <a name="scan_do"></a> $(P)**scan_do**-SP 255 : провести однократное сканирование 256 257 <a name="scan_cont"></a> $(P)**scan_cont**-SP 258 : проводить периодические сканирование каждые [per_scan](#per_scan) 259 260 <a name="per_scan"></a> $(P)**per_scan**-SP 261 : проводить сканирование через сек 262 263 <a name="refresh_scan"></a> $(P)**refresh_scan**-SP 264 : обновлять результат сканирования через сек 265 266 <a name="timeout_scan"></a> $(P)**timeout_scan**-SP 267 : время затраченно на сканирование, мсек 268 269 270 ## Результат сканирования[scan] 271 272 <a name="ready_scan"></a> $(P)**ready_scan**-I 273 : триггер окончанич сканирования 274 275 <a name="scan2d_i"></a> $(P)**scan2d_i**-I 276 : результат сканирования 2D массив размерностью 222 * [n_prof](#n_prof), контурный график 277 278 <a name="scan2d_height "></a> $(P)**scan2d_height**-I 279 : высота контурного графика 280 281 <a name="scan2d_width "></a> $(P)**scan2d_width**-I 282 : ширина контурного графика 283 284 <a name="scan2d_i_min "></a> $(P)**scan2d_i_min**-I 285 : минимальное значение контурного графика по вертикали( по сепаратрисам) 286 287 <a name="scan2d_i_max "></a> $(P)**scan2d_i_max**-I 288 : максимальное значение контурного графика по вертикали( по сепаратрисам) 289 290 <a name="scan2d_min "></a> $(P)**scan2d_min**-I 291 <a name="scan2d_max "></a> $(P)**scan2d_max**-I 292 : минимальное и максимальное значение контурного графика, по модулю равны 293 294 <a name="scan_time"></a> $(P)**scan_time**-I 295 : время затраченное на сканирование, сек 296 297 298 ## Настройки пооборотных[opt_turns] 299 300 <a name="turns_do"></a> $(P)**turns_do**-SP 301 : провести однократное пооборотное измерение 302 303 <a name="turns_cont"></a> $(P)**turns_cont**-SP 304 : проводить периодическое пооборотное измерение 305 306 <a name="bunch_turns"></a> $(P)**bunch_turns**-SP 307 : для какого сгустка проводить пооборотные измерения 308 309 <a name="ne_turns"></a> $(P)**ne_turns**-SP 310 : количество оборотов пооборотного измерения, если меньше 16384 заполняется только результат [turns_i](#turns_i), если 311 больше то и [turnslong_i](#turnslong_i) 312 313 <a name="ext_ramp_turns"></a> $(P)**ext_ramp_turns**-Cmd 314 : запуск 50 Гц 315 316 <a name="ext_start_turns"></a> $(P)**ext_start_turns**-Cmd 317 : запуск от старт 318 319 <a name="per_turns"></a> $(P)**per_turns**-SP 320 : периодичность проведение пооборотных измерений, сек 321 322 <a name="timeout_turns"></a> $(P)**timeout_turns**-SP 323 : таймаут, мсек 324 325 326 ## Результат пооборотных измерений[turns] 327 328 CSS может показывать только 128к оборотов, тем не менее в Edit->Prefernce->CSS Core->EPICS->max_array_bytes 329 надо прописать обьем достаточный для приема 1М точек: 4200000. 330 331 <a name="ready_turns"></a> $(P)**ready_turns**-I 332 : триггер окончания пооборотных измерений 333 334 <a name="turns_i"></a> $(P)**turns_i**-I 335 : ток пооборотных измерений 336 337 <a name="turns_axis"></a> $(P)**turns_axis**-I 338 : горизонтальная ось обороты 339 340 <a name="turnslong_i"></a> $(P)**turnslong_i**-I 341 : ток пооборотных измерений до 1М 342 343 <a name="turnslong_axis"></a> $(P)**turnslong_axis**-I 344 : горизонтальная ось обороты до 1М 345 346 <a name="turns_time"></a> $(P)**turns_time**-I 347 : время потраченное на проведение измерения, сек 348 349 ## Внутренние параметры 350 351 <a name="prof_i"></a> $(P)**prof_i**-I 352 : необработанный профиль для банча NONE 353 354 <a name="fine"></a> $(P)**fine**-SP 355 : задержка в пределах сепаратрисы 356 357 <a name="sep"></a> $(P)**sep**-SP 358 : номер сепаратрисы 359 360 361 # FFT 362 363 Спектр вычисляется для каждого банча 364 365 * **turns_i1** 366 * **turns_i2** 367 * **turns_i3** 368 * **turns_i4** 369 370 для краткости параметры приведены только для первого банча **turns_i1**, 371 для остальных банчей аналогично. 372 373 ## Параметры FFT 374 375 <a name="pre_filter"></a> $(P)**turns_i1:pre_filter**-SP 376 <a name="pre_delta"></a> $(P)**turns_i1:pre_delta**-SP 377 : зарезервировано 378 379 <a name="wnd"></a> $(P)**turns_i1:wnd**-SP 380 <a name="arg1"></a> $(P)**turns_i1:arg1**-SP 381 <a name="arg2"></a> $(P)**turns_i1:arg2**-SP 382 <a name="subwnd"></a> $(P)**turns_i1:subwnd**-SP 383 <a name="mtbwnd"></a> $(P)**turns_i1:mtbwnd**-SP 384 : настройка окна, wnd - форма окна, arg1,arg2 - параметры окна, subwnd - вычитать среднее окна, mtbwnd - нормировать на площадь окна 385 386 ## Результат FFT 387 388 <a name="turns_timestep"></a> $(P)**turns_timestep**-I 389 : шаг по времени пооборотных измерений, зависит от [gap](#gap) и VEPP4:FrequencySet-RB. 390 В **turns_timestep-I.C** можно записать множитель шага, данное значени не сохраняется при перезагрузке IOC 391 392 393 <a name="FFT_turns_axis"></a> $(P)**FFT:turns_axis**-I 394 : ось частоты, зависит от [turns_timestep](#turns_timestep) 395 396 <a name="FFT_turns_i1"></a> $(P)**FFT:turns_i1:turns_i1**-I 397 <a name="FFT_turns_i2"></a> $(P)**FFT:turns_i2:turns_i2**-I 398 <a name="FFT_turns_i3"></a> $(P)**FFT:turns_i3:turns_i3**-I 399 <a name="FFT_turns_i4"></a> $(P)**FFT:turns_i4:turns_i4**-I 400 : спектр пооборотных измерений, для соответствующего банча 401 402 <a name="FFT_turns_i1_window"></a> $(P)**FFT:turns_i1:window:turns_i1**-I 403 <a name="FFT_turns_i2_window"></a> $(P)**FFT:turns_i2:window:turns_i2**-I 404 <a name="FFT_turns_i3_window"></a> $(P)**FFT:turns_i3:window:turns_i3**-I 405 <a name="FFT_turns_i4_window"></a> $(P)**FFT:turns_i4:window:turns_i4**-I 406 : применённое окно 407 408 409 -------------------------------------------------------- 410 411 ======================================================== 412 413 Не используется 414 415 <a name="finestep_scan"></a> $(P)**finestep_scan**-SP 416 : зарезервированно 417 418 <a name="finecount_scan"></a> $(P)**finecount_scan**-SP 419 : зарезервированно 420 421 <a name="sep_beg_scan"></a> $(P)**sep_beg_scan**-SP 422 : зарезервированно 423 424 <a name="sep_end_scan"></a> $(P)**sep_end_scan**-SP 425 : зарезервированно 426 427 <a name="sep_step_scan"></a> $(P)**sep_step_scan**-SP 428 : зарезервированно 429 430 <a name="sep_range_scan"></a> $(P)**sep_range_scan**-SP 431 : зарезервированно 432 433 <a name="delayramp_scan"></a> $(P)**delayramp_scan**-SP 434 : зарезервированно 435 436 <a name="ne_scan"></a> $(P)**ne_scan**-SP 437 : количество оборотов элементарного измерения 438 439 <a name="scan_axis"></a> $(P)**scan_axis**-I 440 : горизонтальная ось сканирования 441 442 <a name="delayramp_turns"></a> $(P)**delayramp_turns**-SP 443 : зарезервированно 444