Title: Описание PV
Обозначение
Как описано в обзоре название PV имеет иерархию УСТАНОВКА:СИСТЕМА:значение-СУФФИКС. Для одного IOC часть имени УСТАНОВКА:СИСТЕМА Обычно одинакова и задается чарез переменные окружения $(P). В описании используется похожий синтаксис. В тексте сокращенно на переменную ссылаются как на значение.
Макрос $(P) для диссектора раскрывается как
- VEPP4:dissector_e: - для электронов
- VEPP4:dissector_p: - для позитронов
- VEPP3:dissector_v3: - для VEPP3
Для мод параметры имеют вид $(P)параметр_мода-Суф.
Для результата имеют вид $(P)мода_результат-Суф.
Автоподстройки имеют вид
- auto_* для периодической автоподстройки
- auto1_* для однократной автоподстройки
Описание PV
Ток вертикальная шкала вычисляется по формуле
I = (U - U0) * pow10( step_gain * gain / 20) * GI
Общие настройки
$(P)connect-Cmd
: производить подключение
$(P)connected-Sts
: статус подключения
$(P)host-SP
: IP адрес пикапстанции, диапазон адресов 192.168.1.150-152
$(P)port-SP
: порт подключения, по умолчанию 2195
$(P)error-SP
: счетчик ошибок, при ошибке инкрементируется
Коэффициент усиления
$(P)step_gain-SP
: вес шага усиления (10дБ)
$(P)auto_gain-Cmd
: автоматическая подстройка усиления(пока не работает)
$(P)scan_gain-Cmd
: зарезервированно
$(P)level_nosig_gain-SP
: если сигнал меньше указанного уровня, усиление ставится в default_gain
$(P)tau_gain-SP
: зарезервированно
$(P)lim_gain-SP
: зарезервированно
$(P)default_gain-SP
: усиление при отсутствии сигнала
$(P)min_gain-SP
: минимальное усиление 0
$(P)max_gain-SP
: максимальное усиление 1
Банчи
$(P)bunch1-SP
$(P)bunch2-SP
$(P)bunch3-SP
$(P)bunch4-SP
: разрешить измерение соответствующего банча
$(P)sep0-SP
: смещение нумерации сепаратрис
$(P)sep1-SP
$(P)sep2-SP
$(P)sep3-SP
$(P)sep4-SP
: номер сепаратрисы для соответствующего банча
$(P)fine1-SP
$(P)fine2-SP
$(P)fine3-SP
$(P)fine4-SP
: задержка в пределах сепаратрисы
$(P)extr1-SP
$(P)extr2-SP
$(P)extr3-SP
$(P)extr4-SP
: знак максимума, 0 - любой
$(P)auto_sep-SP
$(P)auto1_sep-SP
: автоподстройка сепаратрисы, про результатам сканирования scan2d_i в
диапазоне +-2 сепартрисы относительно текущего значения вычисляется амплитуда
сигнала и номер сепаратрисы настраивается на максимум, при условии что сигнал превышает level_nosig_gain.
Если extr больше нуля считаются значения сигнала больше нуля, если меньше - меньше, если равно - по модулю.
Шкала
$(P)X1-SP
: левая граница шкалы профиля
$(P)X2-SP
: правая граница шкалы профиля
Моды
Соответствующий тип измерения называется модой. Основным типом измерений является профиль mode_prof. Также есть дополнительные виды измерения. Пооборотные измерения turns и сканирование профиля по сепаратрисам scanprof. Измерение производится если его проведенеие разрешено mode_* и заказано однократное *_do или периодическое измерение *_cont.
С целью экономии ресурсов измерение turnslong с размером буфера до 1М, производится если разрешены mode_turns, mode_turnslong и количество заказанных оборотов ne_turns больше 16384. При этом первые 16384 оборота копируются в результат mode_turns.
$(P)mode-I
: текущее состояние измерения
$(P)mode_turns-Cmd
: разрешение пооборотных измерений
$(P)mode_turnslong-Cmd
: разрешение пооборотных измерений до миллиона точек
$(P)mode_scan-Cmd
: зарезервированно
$(P)mode_scanprof-Cmd
: сканирование для подстройки сепаратрис
$(P)mode_prof-Cmd
: измерение профиля
Общие для всех мод
$(P)ndel0-SP
: задержка между ВЧ и частоты оборотов
Настройки профиля[opt_prof]
$(P)prof_do-SP
: провести однократное измерение профиля
$(P)prof_cont-SP
: проводить периодические измерения профиля
$(P)ne_prof-SP
: количество оборотов элементарного измерения, кратно 4 (по соображениям упрощения прошивки)
$(P)n_prof-SP
: количество точек профиля
$(P)naver_prof-SP
: усрелнение по формуле U[i] = U[i-1] * (1 - 1/naver) + U * 1/naver
$(P)tdel_prof-SP
: задержка старта следуюжего измерения для банча NONE
$(P)ext_ramp_prof-Cmd
: при старте ждать импульса 50 Гц
$(P)ext_start_prof-Cmd
: при старте ждать импульса на входе старт
$(P)timeout_prof-SP
: тайм аут операци в моде prof, мсек
Полное время измерения (ne_prof + 4) * n_prof оборотов, например для
ne_prof = 24
n_prof = 512
(24 + 4) * 512 = 7/8 * 16384
время сканирования составит 17.5 мсек (считая что 16384 оборота 20 мсек)
Результат измерения профиля[prof]
$(P)ready_prof-I
: триггер готовности, всегда обновляется последним
$(P)prof_i1-I
$(P)prof_i2-I
$(P)prof_i3-I
$(P)prof_i4-I
: профиль для банчей
$(P)prof_axis-I
: горизонтальная ось профиля X1 - X2
$(P)prof_time-I
: время измерения профиля, сек
Настройки сканирования[opt_scan]
Сдующие парамеры берутся из prof
$(P)scan_do-SP
: провести однократное сканирование
$(P)scan_cont-SP
: проводить периодические сканирование каждые per_scan
$(P)per_scan-SP
: проводить сканирование через сек
$(P)refresh_scan-SP
: обновлять результат сканирования через сек
$(P)timeout_scan-SP
: время затраченно на сканирование, мсек
Результат сканирования[scan]
$(P)ready_scan-I
: триггер окончанич сканирования
$(P)scan2d_i-I
: результат сканирования 2D массив размерностью 222 * n_prof, контурный график
$(P)scan2d_height-I
: высота контурного графика
$(P)scan2d_width-I
: ширина контурного графика
$(P)scan2d_i_min-I
: минимальное значение контурного графика по вертикали( по сепаратрисам)
$(P)scan2d_i_max-I
: максимальное значение контурного графика по вертикали( по сепаратрисам)
$(P)scan2d_min-I
$(P)scan2d_max-I
: минимальное и максимальное значение контурного графика, по модулю равны
$(P)scan_time-I
: время затраченное на сканирование, сек
Настройки пооборотных[opt_turns]
$(P)turns_do-SP
: провести однократное пооборотное измерение
$(P)turns_cont-SP
: проводить периодическое пооборотное измерение
$(P)bunch_turns-SP
: для какого сгустка проводить пооборотные измерения
$(P)ne_turns-SP
: количество оборотов пооборотного измерения, если меньше 16384 заполняется только результат turns_i, если
больше то и turnslong_i
$(P)ext_ramp_turns-Cmd
: запуск 50 Гц
$(P)ext_start_turns-Cmd
: запуск от старт
$(P)per_turns-SP
: периодичность проведение пооборотных измерений, сек
$(P)timeout_turns-SP
: таймаут, мсек
Результат пооборотных измерений[turns]
CSS может показывать только 128к оборотов, тем не менее в Edit->Prefernce->CSS Core->EPICS->max_array_bytes надо прописать обьем достаточный для приема 1М точек: 4200000.
$(P)ready_turns-I
: триггер окончания пооборотных измерений
$(P)turns_i-I
: ток пооборотных измерений
$(P)turns_axis-I
: горизонтальная ось обороты
$(P)turnslong_i-I
: ток пооборотных измерений до 1М
$(P)turnslong_axis-I
: горизонтальная ось обороты до 1М
$(P)turns_time-I
: время потраченное на проведение измерения, сек
Внутренние параметры
$(P)prof_i-I
: необработанный профиль для банча NONE
$(P)fine-SP
: задержка в пределах сепаратрисы
$(P)sep-SP
: номер сепаратрисы
FFT
Спектр вычисляется для каждого банча
- turns_i1
- turns_i2
- turns_i3
- turns_i4
для краткости параметры приведены только для первого банча turns_i1, для остальных банчей аналогично.
Параметры FFT
$(P)turns_i1:pre_filter-SP
$(P)turns_i1:pre_delta-SP
: зарезервировано
$(P)turns_i1:wnd-SP
$(P)turns_i1:arg1-SP
$(P)turns_i1:arg2-SP
$(P)turns_i1:subwnd-SP
$(P)turns_i1:mtbwnd-SP
: настройка окна, wnd - форма окна, arg1,arg2 - параметры окна, subwnd - вычитать среднее окна, mtbwnd - нормировать на площадь окна
Результат FFT
$(P)turns_timestep-I : шаг по времени пооборотных измерений, зависит от gap и VEPP4:FrequencySet-RB. В turns_timestep-I.C можно записать множитель шага, данное значени не сохраняется при перезагрузке IOC
$(P)FFT:turns_axis-I : ось частоты, зависит от turns_timestep
$(P)FFT:turns_i1:turns_i1-I
$(P)FFT:turns_i2:turns_i2-I
$(P)FFT:turns_i3:turns_i3-I
$(P)FFT:turns_i4:turns_i4-I
: спектр пооборотных измерений, для соответствующего банча
$(P)FFT:turns_i1:window:turns_i1-I
$(P)FFT:turns_i2:window:turns_i2-I
$(P)FFT:turns_i3:window:turns_i3-I
$(P)FFT:turns_i4:window:turns_i4-I
: применённое окно
========================================================
Не используется
$(P)finestep_scan-SP
: зарезервированно
$(P)finecount_scan-SP
: зарезервированно
$(P)sep_beg_scan-SP
: зарезервированно
$(P)sep_end_scan-SP
: зарезервированно
$(P)sep_step_scan-SP
: зарезервированно
$(P)sep_range_scan-SP
: зарезервированно
$(P)delayramp_scan-SP
: зарезервированно
$(P)ne_scan-SP
: количество оборотов элементарного измерения