MASAR Server & Applications

Download Report

Transcript MASAR Server & Applications

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 periodically
 All data saved time serially
2
MASAR Architecture
Scripting
PyQt
Scripting
High Level Scripting API
Low Level Python Client Library
pvAccess/channelRPC Client (C++)
Others
(Matlab)
CSS/BOY
pvAccess Client API
Library (Java)
pvAccess
pvAccess/channelRPC
Service Engine
DSL-PY Module
Gather/C++
PYMASAR
Channel Access
(SQLite)
IOC
Finished
User Apps
IOC
IOC
Planning
Developing
3
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
epics data type
data type by MASAR
enum, string
string
byte, short, int/long
long
float, double
double
 Could be a mix of any of the types
5
MASAR Functions
 Functions supported by service
Functions
retrieveSystemList
Description
Retrieve a list of system from RDB
retrieveServiceConfigs Retrieve a list of configuration from RDB
retrieveServiceEvents Retrieve snapshot list w/o data from RDB
retrieveSnapshot
Retrieve one snapshot with data from RDB
saveSnapshot
Take a snapshot from IOC, and save data into RDB
updateSnapshotEvent Update snapshot information in RDB, like flag data to be good
Get machine data from live IOC
getLiveMachine
 Data Structure used by request
structure NTNameValue
string[] names
string[] values
string
function xxxxxx // function name as above
6
MASAR Data Structure
 NTTable
 Scalar value
 Need NTVariantArray
structure timeStamp
long secondsPastEpoch 0
int nanoSeconds 0
int userTag 0
structure alarm
int severity 0
int status 0
string message
string[] label [...]
// value field in label field
string 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[]]
7
MASAR Client
 Python library
 7 APIs
 API naming convention
 Retrieve/Save: RDB oriented
 Get/Put:
PV oriented
API
retrieveSystemList
Description
Retrieve a list of system from RDB
retrieveServiceConfigs Retrieve a list of configuration from RDB
retrieveServiceEvents Retrieve snapshot list w/o data from RDB
retrieveSnapshot
Retrieve one snapshot with data from RDB
saveSnapshot
Take a snapshot from IOC, and save data into RDB
updateSnapshotEvent Update snapshot information in RDB, like flag data to be good
Get machine data from live IOC
getLiveMachine
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 UI
 Multiple comparison
 Support up to 9 data sets
10
MASAR UI
 Data plotting
11
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 manipulation
 Join, comparison
 Plotting
 Columns 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 lattice
 Calculate beam parameters of live lattice
 Save model results
 Need 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