Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W wiki
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • beam diagnostics
  • wiki
  • Wiki
  • measure

Last edited by Evgeny Bekhtenev Feb 10, 2025
Page history

measure

Title: получение данных

TOP

  • Получение данных
    • C
    • Python
    • Консольные программы
    • Программа логгирования
      • Интерфейс
      • Пример
  • Настройки безопасности на ВЭППе

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

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

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

C

Channel Access Reference Manual

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

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

Python

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

  • cothread
  • pyepics

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

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

  • caget - чтение переменной
  • caput - запись переменной
  • camonitor - мониторинг изменения значения переменной
[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 - мониторинг переменных с записью в индивидульный текстовый файл

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

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

Файл списка переменных можно сформировать из полного списка переменных системы, который генерируется при компиляции. Это файл 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_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-*, все остальные имеют право только на чтение.

Clone repository
  • CSS install
  • Qt Creator в debian
  • broadcast
  • btune pv list
  • chan pv list
  • css use
  • dissector pv list
  • dissector
  • epics
  • git
  • Home
  • https_error
  • index
  • internal
  • kud pv list
View All Pages