Post on 30-May-2020
D. Rogind#, J. Delong, D. Flath, M. Gibbs, B. Hill, T. Maxwell,
A. Perazzo, M. Shankar, G. White, E. Williams Jr., M. Zelazny
PyDM
Principles
Roadmap for SLAC EPICS-based Software Toolkit for the LCLS-I/II Complex
With the advent of LCLS-II construction, a SLAC-wide Software Roadmap was established. Complex bunch patterns and multiple beam paths require structured data and middle layer services motivating EPICS 7. Structured data flow will be leveraged for necessary improvements to middle-layer services required for the operation and modeling of multiple accelerators/beamlines.
• SLAC has multiple facilities & multiple EPICS Controls Groups
• SLAC desires to reduce multiplicity, duplication, Non Recurring Engineering (NRE) development, support & maintenance efforts
• SLAC-wide working groups focus on standardization of implementations:
Common HW
Motion Control PLCs Common Platform HW (ATCA) supplies HW,FW,SW for HPS & other projects
Common SW
Machine Agnostic: - Physics HLAs - Middleware Services (MEME & V4) - IOC Software - UI
Common Acc’l. SW Central EPICS git repo, common version 3.15 Min. # of scripting languages (MATLAB & Python) Conventional Controls Apps (DM, Archiver,..) Automation tools
Leverage SLAC
Legacy High Level
Apps (HLAs) and EPICS SW
Unite SLAC EPICS repos & versions lab-wide
Plan
Complex Bunch Patterns
& Multiple Beam
Destinations
Require Structured Data & Middleware Service Layer
Strong Motivation for
EPICS 7
Achieves effective software for a premier, production scientific facility…
Component Status & Plan PyDM In dev; contribute to EPICS community; collaborate qSrv From collaboration; make robust & contribute back pvaPy From collaboration; improve performance & contrib. back Archive Appliance Already EPICS 7-enabled; further enhance to embed timing
frame; store/view complex data; contribute back MAD model & new model Services
MEME framework in place; switch to MAD from XAL; merge LCLS-II with LCLS/FACET/ Devices DB RDB; Add other modeling services
BSA Service Beam Synchronous Acquisition Service for LCLS & LCLS-II. Engage EPICS community for timing metadata incorporation
pvAccess Gateway (pva2pva)
From collaboration; make robust; add functionality; contribute back;
Data Aggregator Evaluate options and develop to throttle pvAccess client callbacks
2017 2018 2019 2020
SLAC common git repo; 3.15
pyDM
Installation & Checkout
1 year Downtime
LCLS-II Commissioning
qSrv
pvaGateway
LCLS-II BSA Service
Display Managers
EDM EDM with pyDM for new screens
LCLS Operations
LCLS-II Ops. EIC
LCLS Operations
E&D, SW Config, Fab, Ass’ly, Test LCLS-II
LCLS-I
E&D, SW Config, Fab, Ass’ly, Test Proposed FACET-II
Injector Config, Test
EPICS 7 Data Aggregate Layer
Downtime
FACET -II Commissioning (TBD)
CY
Repo & EPICS Versions
V4 IOCs
Gateway,Services
MAD Model Model Systems
today
LCLS BSA Service
Enhanced Archive Appliance/Viewer
MAD/non-MAD Devices RDB Infra
HLA Automation: Model-based system + model-indep. optimization
EPICS 7 pyDM w pvaPy
Abstract
The same image widget used in a drag-and-drop display (left) and in a high level application (HLA) (right). HLA developers don’t have to reinvent updating the UI when a PV changes, zooming, colormaps, etc.
Dynamic displays are easy to build in PyDM. This magnet panel is filterable at run-time by magnet type and location. The scrolling list of filtered magnets is populated from the directory service.
Each row of magnet controls comes from a single, custom ‘magnet item’ widget, which is easy to reuse across many displays. This pattern (a custom widget for a type of device, paired with a list of devices gathered from a service) reduces development time and maintenance effort.
Why was PyDM chosen as a Display Manager over CSS BOY? • Minimize # of languages & skill sets to maintain • Dynamic displays can easily be built for LCLS-II, with complex,
multi-e-beam destinations & multiple electron sources • Fulfills SLAC-wide accelerator and beamline use cases
• Beamline is developing PyDM • Operators, physicists, users, engineers widely script in
python; low barrier to entry
Middle Layer Services
Model Dependent + Model
Independent Analysis
Automated Tuning
Machine Learning
Long-term Goals
Develop UI widget environment aligned
with the modern scientifc &
programming community
SLAC EPICS repo & version
Machine Agnostic HLAs
• Add to existing suite with pulse Beam Synchronous Acquisition (BSA) Service to synchronize data across devices (z) & deep time (phase) from LCLS-I & II timing data (diff. timing systems)
• Embed timing metadata (pulseID, charge, destination…) in NTScalar usertag • pvaPy (for EPICS 7 enabled PyDM) evaluation; potential
performance improvement • Aggregation/throttling of PV monitor client callbacks • EPICS 7 IOCs (requires a robust qSrv) • EDM -> PyDM conversion utility (desired)
Requires:
1
2
4
3
5 Integrate EPICS 7 Components
EPICS 7 Services
need Structured
Data
SLAC EPICS-based Software Roadmap
Requires: • Timing metadata in NTScalar usertag, qSrv (equivalent of
V3 rSrv), pvAccess Clients • Archiver requires pvAccess Gateway
LCLS-II early injector commissioning (EIC) (FY18 Q1 – FY18 Q4) uses EPICS V3.15 IOCs, EDM, Channel Access (CA) From now to FY20 (LCLS-II First Light) the following will be developed, as guided by the SLAC Software Workging Group:
• PyDM Display Manger adds features; will be productized • Timing metadata will be embedded in NTScalar • qSrv is made robust & incorporated into V3 IOCs, producing
EPICS 7 IOCs; pvAccess & CA co-exist • Structured data (w timing metadata) served via EPICS 7
IOCs & pvAccess is served to EPICS 7-aware clients • pvAccess Gateway further tested, developed, integrated • Structured data archived to EPICS 7-enabled Archive
Appliance and viewable by enhanced Archive Viewer • LCLS BSA Service incorporates LCLS-II BSA data Note: MAD model will replace XAL model in parallel
Strong Motivation for EPICS 7
1
Engage with the EPICS Community
EDM (~5000)
CAC
SCORE, Alarm tree..
CAC
Controls Apps
XAL & MAD
CAC
Modelling
Matlab
labCA
Physics Applications
Python
pyEpics
Distributed Front-ends
(IOCs) RF. Db
Physical Dev
rSrv
PS. Db
Physical Dev
Vac. Db
Physical Dev
BPM/Diag. Db
Physical Dev
SoftIOCs. Db
PVAS
Directory Service
IOC Crawl
MAD
PVAS
Model Service
XAL Oracle
PVAS
Infrastruct. Service
Oracle
PVAS
Archive Service
Archive Appliance
Ethernet
pvA pvaPy
PVAS
Magnet Poly’s Svc.
Oracle
PVAS
SCORE Service
Oracle
qSrv rSrv qSrv rSrv qSrv (pulseid)
rSrv rSrv qSrv qSrv (pulseid)
PVAS
BSA Service
Pva Gateway
Services
Middleware to improve common
physics tasks & controls
maintenance
Clients
Greg White
THSH102 PyDM: A Python-Based Framework for Control System Graphical User Interfaces
Unify on V3.15; upgrade to git from cvs/svn
Plan
Plan
3 4 ,
1 2 ,
5
,
Roadmap for SLAC EPICS-based Software for the LCLS-I/II Complex
THPHA007 Git Workflow for EPICS Collaboration
THPHA022
D. Rogind#, J. Delong, D. Flath, M. Gibbs, B. Hill, T. Maxwell, A. Perazzo, M. Shankar, G. White, E. Williams Jr., M. Zelazny
SLAC National Accelerator Laboratory, Menlo Park, CA 94025, U. S. A.
Work supported by the U.S. DOE Contract DE-AC02-76SF00515 #drogind@SLAC.Stanford.EDU