TOP

Получение данных

Для получения данных существуют биндинги для разных языков

полный список

C

Channel Access Reference Manual

пример использования стандартной билиотеки

библиотека genlib
на этой библиотеке реализованы IOC для пикапстанций ВЭПП 3/4.

Python

Давно не пробовал, ничего посоветовать не могу

Консольные программы

В стандартной поставке эпикса есть программы для доступа к переменным

[vepp4@vepp4-pult6 ~]$ camonitor VEPP4:NEP0:e1_x-I VEPP4:NEP0:e1_z-I VEPP4:NEP0:e1_i-I
VEPP4:NEP0:e1_x-I              2016-02-02 14:01:01.263315 0.478965
VEPP4:NEP0:e1_z-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_z-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_z-I              2016-02-02 14:01:03.266564 0.544391
...............................................

Программа логгирования

Мировым сообществом написано несколько программных продуктов для логгирования значения переменных разной степени жирности. В основном весьма, с базами данных и прочим. Так что в лучших традициях была написана своя маленька программа которая логгирует в текстовый файл.

Использование

calogger имяфайла_со_списком_переменных

Файл списка переменных можно сформировать из полного списка переменных системы, который генерируется при компиляции. Это файл iocBoot/ioclogger/v4group.cmd . С помощью grep из него можно выбрать то что интересно. Например вас интересует координата X для первых банчей электронов и позитронов в семействе пикапов [SN]RP*.

cat iocBoot/ioclogger/v4group.cmd | grep -E "[NS]RP[^ ]+[ep]1_x-I" > имяфайла

формат файла следующий

имядиректории имяфайла_переменной тип имя_переменной формат_опционально

поле формат присутствует если формат выдачи отличается от формата по умочанию.

В результате логгер создаст для каждой переменной свой файл в соответствующей директории. В имени файла содержится момент начала записи. И при каждом изменении значения переменной будет добавлять в файл строчку в формате

дата время значение

При достижении файлома размера 10М запись в старый файл прекращается и начинается в новый с соответствующей датой и временем в имени файла.

Интерфейс

Пример

[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_z-%Y%m%d-%H%M%S FLOAT VEPP4:NEP5:e1_z-I
VEPP4_NEP5 e1_i-%Y%m%d-%H%M%S FLOAT VEPP4:NEP5:e1_i-I
[vepp4@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
<press ENTER>
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
<press q ENTER>
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_z-20160202-140713
-rw-rw-r-- 1 vepp4 vepp4 481 Фев  2 14:07 e1_z-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-*, все остальные имеют право только на чтение.