v4orb2.wiki

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

obzor.md (6194B)


      1 Title:   Обзор
      2 
      3 [TOP](index)
      4 
      5 {{TOC}}
      6 
      7 # Обзор системы
      8 
      9 Программное обеспечение системы измерения положения пучка построено с использованием библиотеки EPICS. В рамках данной технологии большая задача разбивается на несколько более простых задач. Каждая отдельная подзадача реализуется посредством IOC (Input Output Controller), программы следующей установленным стандартным протоколам библиотеки EPICS. Объединенная группа IOC образует сеть передачи и обработки данных, выполняющую поставленную задачу.
     10 
     11 ## введение в EPICS
     12 
     13 Желающие могут приобщиться к первоисточнику 
     14 
     15 1. [Developer Guide](http://www.aps.anl.gov/epics/base/R3-14/12-docs/AppDevGuide/node6.html)
     16 1. [Record manual](https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Concepts)
     17 
     18 Но для того чтобы получать представление как все работает попробую пояснить попроще.
     19 
     20 EPICS можно представить как эмулятор принципиальной схемы, в которой вместо напряжений и тока передаются данные.  
     21 
     22 ![scheme](scheme-1.png)  
     23 пример принципиальной схемы
     24 
     25 Есть небольшое количество универсальных блоков обрабатывающих данные. Блоки предназначенные для ввода/вывода данных на внешние устройства, блоки производящие вычисления, мультиплексоры и другие. У каждого блока есть несколько входов выходов к которым можно обратиться. Выходы блоков соединяются каналами передачи данных в заданном порядке при загрузке программы. В результате получается сеть обработки данных. Воспользовавшись стандартным протоколом доступа к данным библиотеки EPICS есть возможность прочитать состояние любого входа или выхода блока, а если есть возможность записать, то и записать. Запись дает возможность влиять на поведение сети.
     26 
     27 Обратиться к блоку можно по его имени. Имя блока это произвольная текстовая строка, но по сображениям удобства имена выбирают в виде иерархии "Установка:Прибор:Параметр", где Установка, Прибор, Параметр обычные имена в смысле универсального языка программитрования. Разумно также выбирать имена так чтобы их можно было писать в шелле без кавычек.
     28 
     29 По архитектурным соображениям блоки целесообразно объединять в группы, которые обслуживаются одной программой. Такие программы называются IOC (InputOutputController)
     30 
     31 ![scheme](scheme-2.png)  
     32 IOC
     33 
     34 Каждый IOC предоставляет документированный набор парметров для доступа, называемых PV (ProcessVariable).
     35 Записывая данные в PV пользователь задает режим работы и отдает команды вычислительной сети, читая PV получает результат.
     36 
     37 # Типы данных
     38 
     39 В системе пикапов используются следующие типы PV
     40 
     41 * long - целые
     42 * float - числа сплавающей точкой
     43 * enum - перчисления, также представляются целыми
     44 * string - строка, это такой объект размером 40 символов
     45 * long[] - массив целых чисел
     46 * float[] - массив чисел с плавающей точкой
     47 
     48 # Схема наименования PV
     49 
     50 В соответствии с принятой иерархией имена PV в системе имеют вид
     51 
     52 * VEPP3:имяIOC:параметр-Suf
     53 * VEPP4:имяIOC:параметр-Suf
     54 * STAP:параметр-Suf
     55 
     56 где VEPP3, VEPP4 - имя установки,  
     57 STAP -  специальный IOC для импорта данных из stap файла, он присутствует в единственном экземпляре и поэтому поле имяIOC у него отсутствует. 
     58 
     59 имяIOC - имя IOC, чаще всего имя пикапа, но есть и служебные IOC различного назначения.
     60 
     61 параметр - имя параметра, имя в том смысле в каком оно определено в C.
     62 
     63 Suf - суффикс, передает назначение/происхождение переменной, наиболее интересные
     64 
     65 * SP - SetPoint - установка параметров, например длительность измерения
     66 * Cmd - бинарный флаг запись, разрешить/запретить какое-либо измерение или вычисление, запустить измерение
     67 * Sts - бинарный флаг чтение, есть/нет соединение, завершение вычисления
     68 * I - (Instrumet?) измеренные данные, чаще всего float
     69 
     70 # Одновременность