masar server & application guobao shen photon sciences department brookhaven national laboratory...

13
MASAR Server & Application Guobao Shen Photon Sciences Department Brookhaven National Laboratory Collaboration Working Group Oct 02, 2013

Upload: andrea-taylor

Post on 03-Jan-2016

217 views

Category:

Documents


0 download

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 UI

Multiple comparison Support up to 9 data sets

10

MASAR UI

11

Data plotting

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