MASAR Server & Application Guobao Shen Photon Sciences Department Brookhaven National Laboratory Collaboration Working Group Oct 02, 2013.
Post on 03-Jan-2016
217 Views
Preview:
Transcript
MASAR Server & Application
Guobao Shen
Photon Sciences Department
Brookhaven National Laboratory
Collaboration Working Group
Oct 02, 2013
What’s MASAR?
MASAR Machine Snapshot, Archiving, and Retrieve An EPICS tool for experimental control system
Machine A facility controlled by EPICS, accelerator for example
Snapshot Data at specific time point
Value, time stamp, connection status, alarm status, alarm severity
Similar tools, but different purpose IOC automatic save & restore
IOC bumpless rebooting Channel Archiving
Archive pre-defined configuration periodicallyAll data saved time serially
2
MASAR Architecture
3
Service EngineService Engine
pvAccess/channelRPCpvAccess/channelRPC
PyQtPyQt
Channel Access
Gather/C++Gather/C++
Low Level Python Client Library pvAccess/channelRPC Client (C++)Low Level Python Client Library
pvAccess/channelRPC Client (C++)
pvAccess
DSL-PY ModuleDSL-PY Module
PYMASAR (SQLite)
PYMASAR (SQLite)
ScriptingScripting
IOCIOCIOCIOC IOCIOC
ScriptingScripting
High Level Scripting APIHigh Level Scripting API CSS/BOYCSS/BOY
pvAccess Client API Library (Java)
pvAccess Client API Library (Java)
Finished User Apps Planning Developing
Others(Matlab)Others
(Matlab)
MASAR Service
An EPICS V4 service V4 C++ modules
pvData beta2 pvAccess beta2 pvIOC beta2 normativeTypes
Communication mechanism channelRPC
4
V3 Type Support
Support all scalar and waveform PV types float, double, string, and enum
Could be a mix of any of the types
5
MASAR Functions
Functions supported by service
Data Structure used by request
6
structure NTNameValue string[] names string[] values string function xxxxxx // function name as above
MASAR Data Structure
NTTable Scalar value
Need NTVariantArray
7
structure timeStamp long secondsPastEpoch 0 int nanoSeconds 0 int userTag 0structure alarm int severity 0 int status 0 string message string[] label [...] // value field in label fieldstring pv name []string value []double value []long value []int dbr_type []bool isConnected []long secondsPastEpoch []int nanoSeconds []string alarmSeverity []string alarmStatus []bool is_array []structure array_value [structure[]]
MASAR Client
Python library 7 APIs API naming convention
Retrieve/Save: RDB orientedGet/Put: PV oriented
8
MASAR UI
PyQt4 based graphic user interface On top of Python client library
Browse configuration Browse event Take snapshot Retrieve data Compare data Restore machine Export data to
external file
9
MASAR CSS Integration
pvAccess plug-in in CSS Map NT type into V Type/pvManager
Basic type Name/value Table
NT type Java support Widget development
Reuse existing widget Table, …
Table manipulationJoin, comparison
PlottingColumns in single table Columns in multiple tables
URI pva://pva… 12
System Wide Application
Interactive with other services Channel finder
Get PV list to create a new configuration Olog
Create a new entry automatically whenever needed Lattice/Model
Get a machine live latticeCalculate beam parameters of live latticeSave model resultsNeed MUNICONV service support
Engineering unit (Ampere) Model unit (K value)
Assemble into CSS Each item is or will be a CSS application Need to assemble them together
13
top related