Presentation on theme: "Control System Studio (CSS) Data Access Layer (DAL) Kay Kasemir, Xihui Chen July 2009."— Presentation transcript:
Control System Studio (CSS) Data Access Layer (DAL) Kay Kasemir, Xihui Chen July 2009
2Managed by UT-Battelle for the U.S. Department of Energy 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
3Managed by UT-Battelle for the U.S. Department of Energy (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]
4Managed by UT-Battelle for the U.S. Department of Energy DAL Issues Confusing DAL ‘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?)
5Managed by UT-Battelle for the U.S. Department of Energy 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
6Managed by UT-Battelle for the U.S. Department of Energy 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, …)
7Managed by UT-Battelle for the U.S. Department of Energy 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?