Spring 2021 EPICS Collaboration Meeting · Online




Thank-you to everyone who contributed to and participated in the EPICS Spring Collaboration Meeting 2021.

The meeting itself was a virtual event due to COVID-19, and was run using Whova and Zoom. This site is being used for long-term accessibility of presentation materials and videos recorded during the Meeting. 

  • Aamir Latif Baloch
  • Abel Cano
  • Adam Stephen
  • Adam Webb
  • Adrián Martínez Múnera
  • Ajit Kurup
  • Alan Duffy
  • Alex Saoulis
  • Alex Wallace
  • Alexander Scheinker
  • Alexander Wells
  • Alexis gaget
  • Alisa Paterson
  • Andrew Johnson
  • Aniket Tekawade
  • Anthony Caracappa
  • Anthony Pietryla
  • Anthony Wilson
  • Anton Derbenev
  • Anton Philippe Tanquintic
  • Antonio Miguel Lopez Antequera
  • Aoun Muhammad
  • Arunkumar Bommannavar
  • Basil Aljamal
  • Beau Harrison
  • Bo He
  • Casey Callaghan
  • Charlie Boswell
  • Charlie King
  • Chelsea Greenwald
  • Chen Lin
  • Connor Boyle
  • Daniel Allan
  • Daniel Hoffmann
  • Daniela Tanase Broten
  • David Beauregard
  • David Muir
  • Davide Marcato
  • Denise Finstrom
  • Dirk Zimoch
  • Dnyaneshwar Tolmare
  • Dohn Arms
  • Dominic Oram
  • Douglas Beniz
  • Ebenezer Essilfie
  • Edison Lam
  • Edmund Blomley
  • Edward Jones
  • Edwin Edquist
  • Edwin van der Spuy
  • Elio Valenzuela
  • Evan Daykin
  • Fatemeh Ahmad Mehrabi
  • Florian Feldbauer
  • Freddie Akeroyd
  • Gabriel Desmarchelier
  • Gang Li
  • Garth Steel
  • Gary Yendell
  • Ge Lei
  • Geonyeong Mun
  • Gillian Black
  • Ginette LaVoie
  • Giovanni Arena
  • Giovanni Savarese
  • Glen Wright
  • Gongfa Liu
  • Greg Cala
  • Guanqun Zhou
  • Guobao Shen
  • Hao Hao
  • Hector Novella
  • Heinz Junkes
  • Henrik Carling
  • Henrique Silva
  • Hermann Kamani Tiako
  • Hitendra Chouhan
  • Hitesh Dhola
  • Hugo Slepicka
  • Huw Shorthouse
  • Ifeanyi Ossai
  • Igor Khokhriakov
  • Ilja Bekman
  • Isaac Ajayi
  • Ivan Finch
  • Jacqueline Garrahan
  • Jakub Wlodek
  • James King
  • James Patrick
  • James Smedinghoff
  • James Stevens
  • Jay Van Doornum
  • Jeong Han Lee
  • Jerry Firebaugh
  • jimmy you
  • Johnny Tang
  • Joseph Mead
  • Juniper Willard
  • Justin Abraham
  • Kacper Kłys
  • Karen White
  • Kathryn Baker
  • Kathryn Janzen
  • Kay Kasemir
  • Ken Lauer
  • Klemen Vodopivec
  • Konrad Gajewski
  • Kris Meeus
  • Kukhee Kim
  • Kunal Shroff
  • Lana Abadie
  • Lara Olubajo
  • Laurent Daudin
  • Lisa Dorofeeva
  • Liuguo Chen
  • Marcel Bajdel
  • Marcio Donadio
  • Maren Hauschildt-Purves
  • Mark Rivers
  • Marnelli Martinez
  • Mateusz Hoppe
  • Mathew Rippa
  • Matt Gibbs
  • Matthew Furseman
  • Matthew Pearson
  • Maurizio Montis
  • Mauro Giacchini
  • Max Wyman
  • Megan Cheesbrough
  • Mehmet Bozdogan
  • Michael Bree
  • Michael Davidsaver
  • Michael Hart
  • Michael Sintschuk
  • Michel Fodje
  • Mijail Todorovich
  • Mohamed Meera Sahib Mohamed Shaikkadiar
  • Mohsen Shakouri
  • Najm us Saqib
  • Narayan Appathurai
  • Nathanael Maytan
  • Nicoletta Petrella
  • Oksana Ivashkevych
  • oyeyemi oyelere
  • Patrick Oppermann
  • Paul Lotrus
  • Pedram Navidpour
  • Pedro Gigoux
  • Peiyu Quan
  • Pete Jemian
  • Peter Milne
  • Peter Zumbruch
  • Petra Schwalbach
  • Philipp Klaus
  • Pierrick Hanlet
  • Pilar Gil Jaldo
  • Prarthan Mehta
  • Qingjuan Guan
  • Raj K
  • Ralph Lange
  • Ramanpreet Grewal
  • Ravi Inder Jassar
  • Ravindranath Mannava
  • Rebecca Harding
  • Richard Farnsworth
  • Richard Neswold
  • Rob Knudson
  • Robby Tanner
  • Robert Rainer
  • Rodrigo Castro
  • Roland Moser
  • Roland Müller
  • Rolf Keitel
  • ru igarashi
  • Russ Berg
  • S.M. Hasanul Banna Kasemi
  • Sandeep Malu
  • Sandra Breuer
  • Sebastian Marsching
  • Sergio Troncoso
  • Shefali Saxena
  • Simon Friederich
  • Simon Rose
  • Sinisa Veseli
  • Stephan Bökelmann
  • steve terepin
  • Steven Hartman
  • Steven Webb
  • Stuart Read
  • Stéphane Tzvetkov
  • Subindev D
  • Susan James
  • Susanne Regnell
  • Teak Boyko
  • Thomas Birke
  • tian Qin
  • Tieyan Chang
  • Till Straumann
  • tim may
  • Tim Mooney
  • Tim Speight
  • Timo Korhonen
  • Tom Cobb
  • Tom Stainer
  • Tonia Batten
  • Tor Pedersen
  • Torsten Bögershausen
  • Travis Richard
  • Tyler Morhart
  • Tylor Sove
  • Tynan Ford
  • Ulrik Pedersen
  • Victor Nadot
  • Wenming Qin
  • William Duckitt
  • Woo-suk Noh
  • Wu-Cheng Chiang
  • Xiaoqiang Wang
  • Xuewei Dong
  • Yu-Sheng Chen
  • yue zongyang
  • Zhichu Chen
  • Ziyu Huang
  • 强 王
    • Pre-meeting check-in and connection testing
      • 1
        Pre-meeting check-in and connection testing
        Speaker: Robby Tanner
    • Conference Kick-Off: Opening remarks
    • Introduction to Bluesky: Tutorials
      • 3
        Introduction to Bluesky

        Bluesky is a collection of Python libraries co-developed by a multi-facility collaboration to enable high-level experiment orchestration and data acquisition. It has growing adoption at facilities around the world. Bluesky is designed to leverage and interact with existing libraries and software in the scientific Python ecosystem. The various components of Bluesky may be used together, as a full suite, or independently, to handle specific aspects of the data collection pipeline.

        This interactive presentation will provide a broad overview of the Bluesky suite, its structure and philosophy, and the purpose and function of each of its components.

        Speaker: Dr Daniel Allan (NSLS-II)
      • 4:00 PM
        break - 30 minutes
      • 4
        Tutorial: Using Ophyd to Control EPICS Devices

        Ophyd is a Python library which abstracts EPICS controls and encapsulates them behind a high-level, object-oriented interface. This enables interaction with hardware from Python in a structured, hierarchical and uniform fashion. Ophyd is part of the Bluesky software suite but may be used independently.

        This interactive presentation will demonstrate how to use Ophyd to interact with EPICS-driven devices, and how to create new Ophyd wrappers for previously unsupported devices.

        Speaker: Michael Hart (NSLS II)
    • Introduction to EPICS: Tutorials
      • 5
        Introduction to EPICS

        An introduction to the concepts of EPICS.

        Speaker: Gillian Black (Canadian Light Source)
      • 2:55 PM
        break - 5 minutes
      • 6
        EPICS-Next, the Challenges of Digital Control a table top experiment

        We would like to show you a simple installation of a small experiment. The idea here is to get as simple as possible to a Data acquisition so that the start in the EPICS world is easy.
        The individual steps are:
        Install all needed support modules via a script.
        Download freely available drivers and IOCs from the internet, e.g. Eurotherm2k.
        Get an own IOC up and running.

        Speakers: Patrick Oppermann (Fritz-Haber-Institut) , Heinz Junkes (Fritz-Haber-Institut)
      • 3:45 PM
        break - 15 minutes
      • 7
        EPICS Tutorial

        EPICS Tutorial with VM.

        Speakers: Juniper Willard (CLS) , Michael Bree (Canadian Light Source)
    • Pre-meeting check-in and connection testing: includes opening remarks
      • 8
        Pre-meeting check-in and connection testing
        Speaker: Robby Tanner
      • 9
        Opening remarks
        Speaker: Glen Wright (Canadian Light Source)
    • Welcome session: Welcome message from Director - Rob Lamb
    • EPICS - General


      • 11
        EPICS Controls at the CLS Spanning 22 Years

        The CLS was announced in 1999. This is a brief description of the EPICS controls when it first started in operation to the present day.

        Speaker: Tony Wilson (Canadian Light Source)
      • 2:50 PM
        break - 5 minutes
      • 12
        StreamDevice, quo vadis?

        For many years, StreamDevice is one of the most used and successful EPICS device supports, mainly because of its flexibility. But development has slowed down a bit. Does that mean, there is nothing more to do? Several recent modifications came from the EPICS community, mainly related to error message handling. What is needed for the future?

        Speaker: Dr Dirk Zimoch (Paul Scherrer Institut)
      • 3:15 PM
        break - 5 minutes
      • 13
        Automatic Wrapping of Functions for IOCSH

        Wrapping of functions to be called from iocsh requires writing a significant amount of boiler-plate code. We present a set of C++ templates which automates this tedious task and let the user wrap and register simple functions in a single line.
        In more complex cases the templates can be extended/specialized, e.g., to convert user-defined function argument types. While the templates require c++ the wrapped function may be a plain C function. E.g., assume you want to wrap hello():

         extern "C" void hello(const char *world);
         #include <iocshDeclWrapper.h>
         // add the following line to some iocsh registrar
         IOCSH_FUNC_WRAP( hello );
        Speaker: Till Straumann (PSI)
      • 3:35 PM
        break - 5 minutes
      • 14
        EPICS on pre-existing code

        Though the benefits of using EPICS in a brand-new system with no prior code are well known, there are many systems which carry existing codebases - which are often substantial, or have some individual quirks specific to the given system which the users have become accustomed to and would prefer to retain. This talk presents a discussion on the rapid and robust addition of the EPICS communication framework over the top of a small number of existing (C/C++) projects, and some notes on the pitfalls encountered in the completion of such an endeavour.

        This will be a ten-minute presentation.

        Speaker: Casey Callaghan (iThemba LABS)
      • 3:50 PM
        break - 5 minutes
      • 15
        pip install softioc

        In 2008 pythonIoc was developed, an EPICS IOC with an embedded Python interpreter to serve PVs calculated from other PVs using Python functions. Since then it has grown to provide more than 60 of the IOCs at DLS, including some that talk directly to hardware. In 2021 it was turned into Python module which embeds an EPICS IOC, which means you can now pip install softioc and incorporate it into a standard Python application. This talk will give a brief overview of the features that pythonIoc now offers.

        Speaker: Tom Cobb (Diamond Light Source)
      • 4:15 PM
        break - 5 minutes
      • 16
        areaDetector: What’s New?

        This talk will focus on enhancements to the areaDetector package since it was last presented at the 2019 collaboration meeting at ICALEPCS in New York. These include:

        • New NDPluginBadPixel plugin to replace bad pixels in NDArrays.
        • New plugins NDPluginBar for bar code reading and ADCompVision for general access to the OpenCV image processing.
        • Enhancements to the ADGenICam intermediate base class.
        • GenICam integer features are now EPICS 64-bit integers
        • Support for mapping EPICS doubles to GenICam integers and vice-versa.
        • Support for unpacking Mono12Packed and Mono12P formats.
        • Enhancements to other drivers including ADAravis, ADSpinnaker, ADVimba, and ADEiger
        • Addition of new Python viewer to ADViewers, written by Marty Kraimer. It supports compressed NTNDArrays.
        Speaker: Mark Rivers (University of Chicago)
      • 4:40 PM
        break - 5 minutes
      • 17
        How fast can you stand up a new EPICS IOC? Try it out in Docker!
        Speaker: Pete Jemian
      • 5:05 PM
        break - 5 minutes
      • 18
        OPC UA Device Support - Update

        In a collaborational effort (ITER/HZB-BESSY/ESS/PSI), a Device Support for the OPC UA industrial SCADA protocol is under development. Goals, status and roadmap will be presented.

        Speaker: Ralph Lange (ITER Organization)
      • 5:20 PM
        break - 5 minutes
      • 19
        ADC Monitoring at CLS

        In order to monitor Booster Ring (BR) ramping at the Canadian Light Source (CLS), ADCs were installed to measure the magnet currents.

        A Python Driver was created for these ADCs to feed values into an EPICS IOC Application. A graphical interface was also created using the PyDM framework for Python-based Qt graphical interfaces.

        Speakers: Juniper Willard (CLS) , Michael Bree (Canadian Light Source)
    • 5:35 PM
      break - 5 minutes
    • Lightning Talks: Lightning
      • 20
        PV Monitor

        A tool used to monitor that status of process variables and the applications that serve them

        Speaker: Michael Bree (Canadian Light Source)
      • 21
        Update on Qt Applications at TRIUMF

        TRIUMF is preparing for the obsolescence of Motif by developing backward-compatible replacements for alh, StripTool and edm. This presentation will discuss the current state of the replacement applications TAlh, TChart and edmq which are based on the Qt system.

        Speaker: Rolf Keitel (TRIUMF)
      • 22
        React Automation Studio Alarm Handler

        A new web-based EPICS alarm handler has been designed. The alarm handler GUI is built on top of the React Automation Studio (RAS) platform and the alarm and notification servers are developed in Python. The alarm handler is seeded through JSON files that populate a MongoDB database. This database is used to persist all alarm configurations, events and activity logs. At present users can be notified via email and Signal messenger. SMS and WhatsApp notifications have also been tested. A general overview of the RAS alarm handler as well as the architecture, capabilities, conventions and its implementation at iThemba LABS are presented.

        Speaker: Justin Abraham (iThemba LABS)
      • 23
        Maintenance planning system in CSNS

        A web-based system designed to record and track the weekly and summer-shutdown maintenance tasks in CSNS facility. In order to increase development effiency and improve development flexibiliy, the system is developed with MongoDB database, Node.js backend and Vue.js frontend. The backend is deployed as a REST API, and the frontend as a single page application.

        The system has been online for one and a half years and become a very useful high-level application in CSNS.

        Speaker: Lin Wang (IHEP)
      • 24
        Tools for troubleshooting devices through Channel Access

        Vendor-supplied diagnostic tools are often useful for configuring and troubleshooting devices. In many cases, however, these tools communicate in such a way that conflicts with IOC communication, which can be inconvenient for a number of reasons. This talk discusses some reasons to develop diagnostic tools that communicate with the device entirely by sending device-level commands through a single intermediary PV such as the Asyn PV.

        This talk will discuss PyPmacTuner, a graphical diagnostic tool for the Delta Tau Turbo PMAC. PyPmacTuner communicates with the controller entirely through the Asyn PV, which allows for troubleshooting the controller while the IOC is still running. This is extremely convenient for troubleshooting axis 8 of a controller without preventing beamline users from controlling axes 1 through 7.

        Additionally, going through the Asyn PV allows features to be added on the client-side rather than the IOC-side, which means the IOC does not need to be recompiled or restarted when new features are added.

        Speaker: Mr Richard Farnsworth (Brookhaven National Laboratory)
    • 6:05 PM
      break - 10 minutes
    • EPICS for Industries: Placeholder

      Updates from EPICS facilities

      • 25
        ITER control system integration process, status, lessons learnt and forecast

        The ITER control system started integration and operation of in-kind deliveries in 2018. Since then, the integrated control system has been expanded with monitoring and control of ITER buildings and utilities and is poised to receive the first contributions to the distributed real-time control of the ITER machine.

        A control system integration process has been defined to address the integration and verification of in-kind deliveries. The process aims at providing a robust incremental and iterative integration mechanism to facilitate rapid deployment of fixes and features during the site acceptance and commissioning process, whilst also ensuring conformance to requirements related to enabling effective operation and maintenance of the ITER integrated control system by the ITER central team.

        After three years, a large number of EPICS-based control system software components have been deployed and have also gone through perfective and adaptive maintenance. Over 100 EPICS IOC sit atop industrial automation controllers and provide configuration, control and monitoring functions. EPICS Channel Access and pvAccess gateway services provide bi-directional communication, role-based and condition-based access control capabilities to the Temporary Main Control Room (T-MCR), as well as Remote Participation Centers (RPC) located in the Russian Federation and the United States. Software application frameworks have been adopted and developed to facilitate deployment of pvAccess to support central automation and monitoring services.

        The presentation will re-affirm the control system integration objectives, the integration process, summarise the status after 3 eventful years, the lessons learnt, and forecast for the short-term future.

        Speaker: Bertrand Bauvir (ITER Organization)
      • 6:35 PM
        break - 5 minutes
      • 26
        Judgement System : qualifying a signal set against a limit mask

        D-TACQ produces a range of networked DAQ systems with flexible IO configuration. Each system has "EPICS Inside", running the business logic, and publishing control, diagnostic and data points on Channel Access. The talk shows an example of customising the internal IOC to fulfill a customer function that also has general use.

        Speaker: Peter Milne (D-TACQ Solutions Ltd)
      • 7:00 PM
        break - 5 minutes
      • 27
        Beckhoff EK9000 Module

        Beckhoff IO is economical, robust, and exceedingly diverse. Their complete EtherCAT terminal line can be utilized without a PLC, or an EtherCAT master occupying a NIC by using an EK9000 Modbus coupler. The coupler maps the PDO of EtherCAT terminals to Modbus registers and coils, in a similar fashion as the Beckhoff BK9000 (which only works with the K-bus terminals [Beckhoff proprietary]). This module enables direct EPICS integration of fairly arbitrary EtherCAT chains over Modbus TCP.

        Speaker: Jeremy Lorelli (SLAC)
      • 7:15 PM
        break - 5 minutes
    • 28
      Closing remarks
      Speaker: Glen Wright
    • Pre-meeting check-in and connection testing
      • 29
        Pre-meeting check-in and connection testing
        Speaker: Robby Tanner
      • 30
        Opening remarks
        Speaker: Glen Wright (Canadian Light Source)
    • GUI: Talks
      • 31
        EPICS integration in QML/QtQuick

        Qt has two different toolkits for creating GUIs. One is the classical widgets as we know from the beginning. It is stable, which also means it is effectively in maintenance state. Another is QtQuick/Qml, with v1 appearing in Qt4.7 and v2 in Qt5 with a complete overhaul in the backend. QtQuick/Qml promotes a new, descriptive programming paradigm. This leads to simple signal/slots/property handling and facilitates creation of dynamic UI components.

        In this talk, I want to share my findings as a result of self-education. Hopefully I wish to explain what it is, demonstrate its advantages through examples, and lastly how to make it EPICS aware.

        Speaker: Xiaoqiang Wang (Paul Scherrer Institute)
      • 2:30 PM
        break - 5 minutes
      • 32
        PyDM Status Update

        A brief update on new features in PyDM (Python Display Manager), and the roadmap for future work.

        Speaker: Matt Gibbs (SLAC National Accelerator Laboratory)
      • 2:45 PM
        break - 5 minutes
      • 33
        Rapid Screen Builder

        At the CLS, Beamline Scientists often ask for simple EPICS screens, or temporary screens for one time tasks. This talk presents and demonstrates a simple Rapid Screen Builder for EPICS with the goal that any Beamline Scientist can quickly create a simple screen in minutes, if not seconds, with no programming whatsoever. The Screen Builder presented here is just a simple prototype, developed as an exercise in PyQt programming.

        Speaker: Michael Bree (Canadian Light Source)
      • 3:05 PM
        break - 5 minutes
      • 34
        pySTXM: python, Qt, BlueSky application for STXM data collection

        pySTXM is a data collection application for STXM beamlines that attempts to use UI idea’s borrowed from Adobe Photoshop and Blender to create a user interface that facilitates learning and decreased data collection time by reducing users ability to make mistakes that waste “shutter time” during the average beamline shift. Among its features are tools for interactive user/data experience, an agnostic view for the underlying control system as well as a standardized data storage format via NEXUS.
        Approx time: 20 – 30 minutes plus Q and A time

        Speaker: Russ Berg (Canadian Light Source)
      • 3:30 PM
        break - 5 minutes
      • 35
        CS-Studio and Phoebus Update

        An update from the CS-Studio and Phoebus collaboration about recent developments in the core framework and the various applications and tools built on it.

        Speaker: Kunal Shroff
      • 3:50 PM
        break - 5 minutes
      • 36
        Phoebus Olog Service

        The Phoebus Olog is an online logbook used for recording operational and experimental events by users or programmatically by other applications. The Phoebus Olog service is an evolution of the Olog web service. It uses modern nosql data stores like mondoDB and elastic which provide horizontal scalability, improved performance, and complex querying functionality like fuzzy searches. The new service is accompanied by new Phoebus, web, and mobile clients. The Phoebus clients provide integration with alarm, archiving, and OPI while the web and mobile clients provide convenient accessibility on the move.

        Speaker: Kunal Shroff
    • 4:10 PM
      break - 10 minutes
    • Tools: Part 1
      • 37
        Making Windows Applications EPICS-Aware with Python

        The presentation will explain using Python to make Excel EPICS-aware. This same technique can be applied to any application that acts as an "Automation Server"; such as AutoCAD, MS Word and other programs in the Microsoft Office "Productivity" Suite.

        The mechanism that exposes these "automation objects" is implemented at the O/S level, so any language that can make system calls can control these servers (e.g. VBA, .NET, Delphi, C++, Python).

        The live demos will show implementations of this technique for test automation, diagnostics and PV prototyping.

        Speaker: Robby Tanner (Canadian Light Source)
      • 4:40 PM
        break - 5 minutes
      • 38

        IOCSee is a tool under development at the Canadian Light Source (CLS) which allows for Glass Box testing of an EPICS IOC Application during operation.

        Monitoring of PV Fields is not confined to the VAL Fields, and thus support is available for more complex IOC Applications where differing fields are varied dynamically based upon calculations or conditions. A demonstration of IOC Monitor will also be shown.

        Speaker: Mr Juniper Willard (CLS)
      • 5:05 PM
        break - 5 minutes
      • 39
        Dynamic firewall manager prototype for EPICS Channel Access

        Background: Setting up firewalls on EPICS IOC's are a troublesome
        matter. When multiple IOC's run on a server, all but the first
        one uses random port numbers to establish connections to clients,
        whereas openings in firewalls tend to be defined by fixed
        port numbers. Purpose: Dynamically manage firewalls as IOC
        applications come and go. Method: A prototype service was
        developed that detects new or lost instances of IOC applications
        through Channel Access beacons and process ID's, and adds or
        removes firewalls automatically, without prior knowledge of IOC
        applications. There are perl and python versions (to accommodate
        whichever is installed on IOC's), and works with iptables, nft,
        and firewalld. Results: In multiple restarts and in a couple of
        weeks of testing, firewall openings worked fine, but occasionally
        some openings did not close, mostly due to timing of restarting
        the service. Conclusion: The concept works on a small scale, but
        it has not been tested on large servers or a production environment.

        Speaker: ru igarashi (Canadian Light Source)
    • Future of EPICS: Talks
      • 40
        A Future for EPICS Linux Packaging?

        For more than ten years, NSLS-II have provided Debian packages for many EPICS parts and tools to the community as a public repository. The packaging effort is shared and hosted at GitHub's epicsdeb organization. Following recent changes at BNL and the departure of key persons, this established collaboration is at risk.
        Other institutes have been packaging for RHEL, but as more or less isolated efforts and without the packages being available to the public.
        Which direction should this go? How can we organize to share effort efficiently and produce more packages of higher quality?

        Speaker: Ralph Lange (ITER Organization)
      • 5:35 PM
        break - 5 minutes
      • 41
        EPICS and IPv6

        How much work would it take to support the PV Access and/or Channel Access protocols over IPv6, and how urgently are they needed? This talk may have more questions than answers, but US DOE Laboratories are being required to adopt IPv6 or to request a waiver. It won't be too long before new experimental control systems will have to run on IPv6-only networks, so to survive in that era EPICS needs a plan.

        Speaker: Mr Andrew Johnson (Argonne National Laboratory)
      • 5:50 PM
        break - 5 minutes
      • 42
        Kubernetes for EPICS IOCs

        EPICS IOCs at Diamond Light Source are built, deployed, and managed by a set of in-house tools that were implemented 15 years ago. This paper will detail a proof of concept to demonstrate replacing these legacy tools and processes with modern industry standards.

        IOCs are packaged in containers with their unique dependencies included. A layered approach to container design ensures that disk space requirements are controlled. The dependency hierarchy is kept to a minimum for easy maintenance. Sources of container image builds have been chosen to maximize portability and enable collaboration.

        IOC images are generic, and a single image is required for all containers that control a given class of device. Configuration is provided to the container in the form of a start-up script only. The configuration allows the generic IOC image to bootstrap a container for a unique IOC instance. This approach keeps the number of images required to a minimum.

        Container orchestration for all beamlines in the facility is provided through a central Kubernetes cluster. The cluster has remote nodes that reside within each beamline network to host the IOCs for the local beamline.

        All source, images and individual IOC configurations are held in repositories. Build and deployment to the production registries is handled by continuous integration.

        Finally, a development container provides a portable development environment for maintaining and testing IOC code.

        Speaker: Giles Knap (Diamond Light Source)
      • 6:15 PM
        break - 5 minutes
      • 43
        EPICS Core Developments & Plans

        Recent developments and future plans for EPICS Base from the EPICS Core Developer's Group.

        Speaker: Andrew Johnson (Argonne)
    • 44
    • Pre-meeting check-in and connection testing
      • 45
        Pre-meeting check-in and connection testing
        Speaker: Robby Tanner
      • 46
        Opening remarks
        Speaker: Glen Wright (Canadian Light Source)
    • Conference Kick-Off: Saskatoon - An Historical Perspective
    • Tools: Part 2
      • 48
        The LUME-EPICS Python package for supporting simulations over CA and PVA

        LUME-EPICS is a dedicated Python API and related server that provides an EPICS interface for machine learning and physics-based simulation models using variable representations defined in the LUME-Model package, which enforces minimal data requirements for serving model variables. The server is configurable for use with either Channel Access, pvAccess, or a synchronized dual server, accepting inputs and outputs in the form of scalars, images (e.g. areaDetector for Channel Access and NTNDarrays with attributes for pvAccess), and arrays. Features include templated variable and display generation, Bokeh client widgets, and minimal model abstraction. To illustrate LUME-EPIC's utility, we will showcase a neural network representation of the LCLS injector and a live Bmad simulation model using live process variable values from the LCLS.

        Speaker: Jacqueline Garrahan (SLAC)
      • 2:40 PM
        break - 5 minutes
      • 49
        Archiving and accessing PVA data at ITER

        PVA is started to be used by the Supervisory System to configure and monitor the numerous plant systems. The PVA structure can be very complex. Archiving this data and being able to access individual element are key requirements. In this talk, we will present the requirements, the work done on archiving and retrieving PVA data and the next steps.

        Speaker: Lana Abadie (ITER organization)
      • 3:05 PM
        break - 5 minutes
      • 50
        React Automation Studio: A New Face to Control Large Scientific Equipment

        React Automation Studio: A New Face to Control Large Scientific Equipment. A new software platform to enable the control of large scientific equipment through EPICS has been designed. The system implements a modern tool chain with a React frontend and a Python backend as a progressive web application. This enables efficient and responsive cross platform and cross device operation. A general overview of React Automation Studio V3.0.0 as well as the system architecture, implementation at iThemba LABs, community involvement and future plans for the system is presented.

        Speaker: Dr William Duckitt (iThemba LABS)
      • 3:30 PM
        break - 5 minutes
      • 51
        EPICS integration in Buildroot for FPGA-based multiplatforms and control system targets

        Over the last few years, FPGA-based systems for high resolution data acquisition and high frequency control have taken significant relevance in the field of high energy physics and other associated research. When working with such varied embedded systems based on, for example, Zynq Ultrascale and Zynq-7000 series, it is necessary to create a method to build ad-hoc linux-based OS for the distinct product architectures. For this purpose, Buildroot tool is used for generating the cross-compilation toolchains needed and the related operating system. In order to carry out the task of integrating EPICS framework capabilities on the DAQ, control and synchronization products developed in Seven Solutions, EPICS base and some modules have been in Buildroot. In this way, all the custom OS built with this tool will be provided with full EPICS, either own architectures or standard architectures such as MicroTCA.

        Speaker: Antonio Miguel Lopez Antequera (Seven Solutions S.L.)
      • 3:50 PM
        break - 5 minutes
      • 52
        Adaptive Machine Learning and Feedback Controls for Particle Accelerators

        Particle accelerators are complicated scientific tools which are composed of tens to thousands of coupled components (depending on accelerator size) including accelerating RF cavities and magnets used to focus and bend charged particle beams. EPICS is one of the most useful tools in existence for accelerator component controls and for accelerator diagnostics. In this talk I present some recent results on developing and implementing adaptive machine learning controls and diagnostics for accelerators, present examples of using EPICS for accelerator controls and diagnostics, and discuss what future EPICS capabilities may be beneficial for implementing novel adaptive machine learning tools.

        Speaker: Alexander Scheinker (Los Alamos National Laboratory)
      • 4:15 PM
        break - 5 minutes
      • 53
        A System for User-created Alerts with Grafana and the EPICS Archiver Appliance

        Archiverappliance-datasource is a Grafana plugin that connects Grafana to the EPICS Archiver Appliance with the purpose of allowing users to create visualization dashboards and alerts. We’ve added a back-end component to this plugin to allow users to create realtime, continuously monitoring alerts based upon EPICS process variables. Our work compliments the initial front-end work completed at KEK that allows users to build and save visualizations from archiver data. The notification system’s key feature is that it does not require engineering expertise to configure alerts yet still offers a high degree of customizability. Once the process variables are being archived, users are able to use Grafana’s web interface to identify their process variables, view a PV’s history, and carefully craft alerts tailored to their specific needs. These alerts can be coupled with Grafana’s support for a variety of messaging systems such as Email, Slack, Kafka, and raw HTTP POST requests to distribute these notifications in the manner of the users choice.

        Speaker: Mr Nolan Brown (SLAC National Accelerator Laboratory)
      • 4:40 PM
        break - 5 minutes
      • 54
        DevIOC - Simple Python Device IOC Support for EPICS

        DevIOC is a package that enables EPICS IOC Soft Device support all within python. It allows you to define the IOC database model as a python class, and to use the model to rapidly develop dynamic, IOC servers.

        Speaker: Michel Fodje (Canadian Light Source)
    • 55
      EPICS Council Update and final remarks

      The EPICS Council works to optimize the use of resources to ensure the ongoing viability of EPICS as the control system toolkit of choice for scientific facilities. This talk will give a short summary and overview of the work in the EPICS council since the last collaboration meeting.

      Speaker: Carling Henrik
    • 56