1
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]

Roadmap for SLAC Epics-Based Software Toolkit for the LCLS ...€¦ · Title: Roadmap for SLAC Epics-Based Software Toolkit for the LCLS-I/II Complex Author: D. Rogind (SLAC, Menlo

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Roadmap for SLAC Epics-Based Software Toolkit for the LCLS ...€¦ · Title: Roadmap for SLAC Epics-Based Software Toolkit for the LCLS-I/II Complex Author: D. Rogind (SLAC, Menlo

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