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 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 Oracl e 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 #[email protected]