|
Title: measure |
|
Title: получение данных
|
|
\ No newline at end of file |
|
|
|
|
|
[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 |