1 / 7

Control System Studio (CSS) Data Access Layer (DAL)

Control System Studio (CSS) Data Access Layer (DAL). Kay Kasemir, Xihui Chen kasemirk@ornl.gov July 2009. Data Access Layer (DAL). Proposed by DESY, implemented by Cosylab, around 2006 Idea: Support EPICS Channel Access, TINE, TANGO, Doocs, new protocols Wide as well as Narrow API

Download Presentation

Control System Studio (CSS) Data Access Layer (DAL)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Control System Studio (CSS) Data Access Layer (DAL) Kay Kasemir, Xihui Chen kasemirk@ornl.gov July 2009

  2. Data Access Layer (DAL) • Proposed by DESY, implemented by Cosylab, around 2006 • Idea: Support • EPICS Channel Access, TINE, TANGO, Doocs, new protocols • Wide as well as Narrow API • Magnet.getCurrent() as well as Channel.getProperty(“current”) • Basic read/write as well as remote commands • CSS adds a Simple-DAL layer

  3. (Simple-)DAL PV Names system:/device/property[characteristic], type • Systems: EPICS, Simulated, Local PVs, some TINE • For EPICS: • System: ‘epics’ • Device: empty since EPICS lacks device hierarchy • Property: EPICS Channel name • Characteristic: EPICS Channel Property • Type: String, Double, … • No ‘commands’ Examples epics://some_record[value] epics://some_record[severity] epics://some_record[warningMin] epics://some_record[units] = epics://some_record.EGU[value]

  4. DAL Issues • ConfusingDAL ‘Property’ = EPICS ‘Channel’,DAL ‘Characteristic’ = EPICS ‘Property’ • ‘[…]’ syntax for characteristics unfortunate for future array access support • Time stamp detail was only seconds (fixed, now nanosecs) • [severity] was missing (fixed) • Channel Access was locked to CAJ, no JNI (fixed?)

  5. DAL API • Only basic Java types, locked at time of subscription • For enumerated type, SDS user has to enter PV as epics://….., String • Event API void valueChanged(E value, Timestamp timestamp) • PV data type locked at compile time, or just ‘Object’ • No ‘PV’ parameter that would allow use of same listener for multiple PVs • Clients like strip chart, archiver, alarm handler, … basically need epics://some_pv[value, status, severity]but have to use separate PVs for each characteristic

  6. PV API • Developed in late 2006 because DAL wasn’t usable at that time • Close to EPICS • Listener receives updates with PV, Value • Value is • scalar or array of String, Double, Integer • Time, Severity, Status • Numeric (units, precision, display & alarm limits) or Enumeration Meta Data (states) • Implementations • “ca://…“ Channel Access, JCA or CAJ • “loc://…” Local PVs • “sim://…” Simulated ramp, sine, noise • “sys://…” System PVs (user name, free memory, …)

  7. Summary • CSS has two extensible PV layers • Both implemented for EPICS, simulated, local, system PVs • PV is simpler, maybe too EPICS specific • DAL is meant to support anything • DAL Users (via ‘SimpleDAL’ layer) Synoptic Display, maybe other Cosylab uses outside of CSS (GSI Demo) • PV Users Probe, Data Browser, PACE, PV Table, PV Tree, PV Field Viewer, BEAUTY, BEAST • Future • Add features to PV, so it turns into almost-simple-DAL, then merge? • Fix issues in DAL, then use it everywhere?

More Related