v4orb2.wiki

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

commit a6646fd4363e1f556f6690f3036f28d6647c1dbb
parent 88e0ae33c56d72083e15e43d37785d6e4cc0804b
Author: S S <ss@qoo>
Date:   Tue Feb  2 14:21:17 +0600

meas

Diffstat:
measure.md | 142+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 140 insertions(+), 2 deletions(-)
diff --git a/measure.md b/measure.md @@ -1 +1,139 @@ -Title: measure- \ No newline at end of file +Title: получение данных + +[TOP](index) + +# Получение данных + +Для получения данных существуют биндинги для разных языков + +http://www.aps.anl.gov/epics/extensions/index.php + +## C + +http://www.aps.anl.gov/epics/base/R3-15/3-docs/CAref.html + +## Python + +Давно не пробовал, ничего посоветовать не могу + +* http://controls.diamond.ac.uk/downloads/python/cothread/ +* http://pyepics.github.io/pyepics/ + +## Консольные программы + +В стандартной поставке эпикса есть программы для доступа к переменным + +* caget - чтение переменной +* caput - запись переменной +* camonitor - мониторинг изменения значения переменной + +``` +[vepp4@vepp4-pult6 ~]$ camonitor VEPP4:NEP0:e1_x-I VEPP4:NEP0:e1_y-I VEPP4:NEP0:e1_i-I +VEPP4:NEP0:e1_x-I 2016-02-02 14:01:01.263315 0.478965 +VEPP4:NEP0:e1_y-I 2016-02-02 14:01:01.263319 0.533542 +VEPP4:NEP0:e1_i-I 2016-02-02 14:01:01.263292 1.79869 +VEPP4:NEP0:e1_i-I 2016-02-02 14:01:02.296130 1.79863 +VEPP4:NEP0:e1_x-I 2016-02-02 14:01:02.296158 0.479525 +VEPP4:NEP0:e1_y-I 2016-02-02 14:01:02.296162 0.53962 +VEPP4:NEP0:e1_i-I 2016-02-02 14:01:03.266532 1.79846 +VEPP4:NEP0:e1_x-I 2016-02-02 14:01:03.266559 0.47096 +VEPP4:NEP0:e1_y-I 2016-02-02 14:01:03.266564 0.544391 +............................................... +``` + +## Программа логгирования + +Мировым сообществом написано несколько программных продуктов для логгирования значения переменных разной степени жирности. В основном весьма, с базами данных и прочим. Так что в лучших традициях была написана своя маленька программа которая логгирует в текстовый файл. + +* calogger - мониторинг переменных с записью в индивидульный текстовый файл + +Использование + +``` +calogger имяфайла_со_списком_переменных +``` + +Файл списка переменных можно сформировать из полного списка переменных системы, который генерируется при компиляции. +В данный момент это 2 файла **iocBoot/ioclogger/v4group1.cmd** **iocBoot/ioclogger/v4group2.cmd** (так получилось по историческим причинам, в будующем планируется генерировать 1 файл **iocBoot/ioclogger/v4group.cmd**). С помощью grep из него можно выбрать то что интересно. Например вас интересует координата X для первых банчей электронов и позитронов в семействе пикапов [SN]RP*. + +``` +cat iocBoot/ioclogger/v4group?.cmd | grep -E "[NS]RP[^ ]+[ep]1_x-I" > имяфайла +``` + +формат файла следующий + +``` +имядиректории имяфайла_переменной тип имя_переменной формат_опчионально +``` + +поле формат присутствует если формат выдачи отличается от формата по умочанию. + +В результате логгер создаст для каждой переменной свой файл в соответствующей директории. В имени файла содержится момент начала записи. И при каждом изменении значения переменной будет добавлять в файл строчку в формате + +``` +дата время значение +``` + +При достижении файлома размера 10М запись в старый файл прекращается и начинается в новый с соответствующей датой и временем в имени файла. + +### Интерфейс + +* ENTER - краткая статистика, подсказка +* q - выход +* c - список подключенных переменных +* d - список не подключенных переменных + +### Пример + +``` +[vepp4@vepp4-pult6 tmp]$ cat /opt/ppc860/v4bpm_build_cache/iocBoot/ioclogger/v4group?.cmd | grep -E "NEP5[^ ]+e1_.-I" > list +[vepp4@vepp4-pult6 tmp]$ ll +итого 4 +-rw-rw-r-- 1 vepp4 vepp4 162 Фев 2 14:06 list +[vepp4@vepp4-pult6 tmp]$ cat list +VEPP4_NEP5 e1_x-%Y%m%d-%H%M%S FLOAT VEPP4:NEP5:e1_x-I +VEPP4_NEP5 e1_y-%Y%m%d-%H%M%S FLOAT VEPP4:NEP5:e1_y-I +VEPP4_NEP5 e1_i-%Y%m%d-%H%M%S FLOAT VEPP4:NEP5:e1_i-I +[bekhte@vepp4-pult6 tmp]$ /opt/ppc860/v4bpm_build_cache/bin/linux-x86/calogger list +2016-02-02 14:07:13:calogger.cpp:546:calogger +2016-02-02 14:07:13:calogger.cpp:413:parse list +2016-02-02 14:07:13:epe_notify.cpp:31:inotify_add_watch(/opt/ppc860/v4bpm_build_cache/bin/linux-x86/calogger) wd=1 +2016-02-02 14:07:13:epe_notify.cpp:31:inotify_add_watch(list) wd=1 + +2016-02-02 14:07:19:epe_con.cpp:27:EPE_con::process +2016-02-02 14:07:19:epe_con.cpp:44:EPE_con fd=0 +2016-02-02 14:07:19:epe_notify.cpp:47:EPE_notify fd=6 /opt/ppc860/v4bpm_build_cache/bin/linux-x86/calogger +2016-02-02 14:07:19:epe_notify.cpp:47:EPE_notify fd=7 list +2016-02-02 14:07:19:calogger.cpp:472:rn=1 buf= + +pv connected: 3/3 +quit - quit, c - print connected pv, d - print disconnected pv +q +2016-02-02 14:07:27:epe_con.cpp:27:EPE_con::process +2016-02-02 14:07:27:calogger.cpp:472:rn=2 buf=q + +pv connected: 3/3 +quit - quit, c - print connected pv, d - print disconnected pv +[vepp4@vepp4-pult6 tmp]$ ls -lR +.: +итого 8 +-rw-rw-r-- 1 vepp4 vepp4 162 Фев 2 14:06 list +drwxr-xr-x 2 vepp4 vepp4 4096 Фев 2 14:07 VEPP4_NEP5 + +./VEPP4_NEP5: +итого 12 +-rw-rw-r-- 1 vepp4 vepp4 468 Фев 2 14:07 e1_i-20160202-140713 +-rw-rw-r-- 1 vepp4 vepp4 481 Фев 2 14:07 e1_x-20160202-140713 +-rw-rw-r-- 1 vepp4 vepp4 481 Фев 2 14:07 e1_y-20160202-140713 +[vepp4@vepp4-pult6 tmp]$ +[vepp4@vepp4-pult6 tmp]$ cat VEPP4_NEP5/e1_i-20160202-140713 +2016-02-02 14:07:14.534445493 1.756 +2016-02-02 14:07:15.635094328 1.756 +2016-02-02 14:07:16.736056401 1.756 +``` + +# Настройки безопасности на ВЭППе + +В системе эпикс есть возможность управлять доступом к переменным с помощью списков контроля доступа. + +На ВЭППе списки контроля доступа настроены таким образом, что право на запись имеет пользователь vepp4 с машин семейства vepp4-*, все остальные имеют право только на чтение.+ \ No newline at end of file