Author: Bellister, J.J.
Paper Title Page
TUMBCMO05 PyDM Development Update 349
 
  • J.J. Bellister, Y.G. Yazar
    SLAC, Menlo Park, California, USA
 
  PyDM is a PyQt-based framework for building user interfaces for control systems. It provides a no-code, drag-and-drop system to make simple screens, as well as a straightforward Python framework to build complex applications. Recent updates include expanded EPICS PVAccess support using the P4P module. A new widget has been added for displaying data received from NTTables. Performance improvements have been implemented to enhance the loading time of displays, particularly those that heavily utilize template repeaters. Additionally, improved documentation and tutorial materials, accompanied by a sample template application, make it easier for users to get started.  
slides icon Slides TUMBCMO05 [0.345 MB]  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-TUMBCMO05  
About • Received ※ 06 October 2023 — Revised ※ 08 October 2023 — Accepted ※ 13 October 2023 — Issued ※ 24 October 2023
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
TUPDP130 PyDM Archive Viewer 892
 
  • Y.G. Yazar, J.J. Bellister, Z.A. Domke, T. Summers
    SLAC, Menlo Park, California, USA
  • F.M. Osman
    Santa Clara University, Santa Clara, California, USA
 
  A new open-source PyQT-based archive viewer application has been developed at SLAC National Accelerator Laboratory. The viewer’s main purpose is to visualize both live values and historical Process Variable (PV) data retrieved from the EPICS Archive Appliances. It is designed as both a stand-alone application and to be easily launched from widgets on PyDM operator interfaces. In addition to providing standard configurability for things like traces, formulas, style and data exporting, it provides post-processing capabilities for filtering and curve fitting. The current release supports standard enumerated and analog data types as well as waveforms. Extension of this to support EPICS7 normative data types such as NTTable and NTNDArray is under development.  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-TUPDP130  
About • Received ※ 06 October 2023 — Revised ※ 22 October 2023 — Accepted ※ 14 December 2023 — Issued ※ 20 December 2023
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
TH2AO02 High Availability Alarm System Deployed with Kubernetes 1134
 
  • J.J. Bellister, T. Schwander, T. Summers
    SLAC, Menlo Park, California, USA
 
  To support multiple scientific facilities at SLAC, a modern alarm system designed for availability, integrability, and extensibility is required. The new alarm system deployed at SLAC fulfills these requirements by blending the Phoebus alarm server with existing open-source technologies for deployment, management, and visualization. To deliver a high-availability deployment, Kubernetes was chosen for orchestration of the system. By deploying all parts of the system as containers with Kubernetes, each component becomes robust to failures, self-healing, and readily recoverable. Well-supported Kubernetes Operators were selected to manage Kafka and Elasticsearch in accordance with current best practices, using high-level declarative deployment files to shift deployment details into the software itself and facilitate nearly seamless future upgrades. An automated process based on git-sync allows for automated restarts of the alarm server when configuration files change eliminating the need for sysadmin intervention. To encourage increased accelerator operator engagement, multiple interfaces are provided for interacting with alarms. Grafana dashboards offer a user-friendly way to build displays with minimal code, while a custom Python client allows for direct consumption from the Kafka message queue and access to any information logged by the system.  
slides icon Slides TH2AO02 [0.798 MB]  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-TH2AO02  
About • Received ※ 06 October 2023 — Revised ※ 09 October 2023 — Accepted ※ 14 December 2023 — Issued ※ 18 December 2023
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THSDSC03 Integrate EPICS 7 with MATLAB Using PVAccess for Python (P4P) Module 1580
 
  • K.T. Kim, J.J. Bellister, K.H. Kim, E. Williams, S. Zelazny
    SLAC, Menlo Park, California, USA
 
  MATLAB is essential for accelerator scientists engaged in data analysis and processing across diverse fields, including particle physics experiments, synchrotron light sources, XFELs, and telescopes, due to its extensive range of built-in functions and tools. Scientists also depend on EPICS 7* to control and monitor complex systems. Since Python has gained popularity in the scientific community and many facilities have been migrating towards it, SLAC has developed matpva, a Python interface to integrate EPICS 7 with MATLAB. Matpva utilizes the Python P4P module** and EPICS 7 to offer a robust and reliable interface for MATLAB users that employ EPICS 7. The EPICS 7 PVAccess API allows higher-level scientific applications to get/set/monitor simple and complex structures from an EPICS 7-based control system. Moreover, matpva simplifies the process by handling the data type conversion from Python to MATLAB, making it easier for researchers to focus on their analyses and innovative ideas instead of technical data conversion. By leveraging matpva, researchers can work more efficiently and make discoveries in diverse fields, including particle physics and astronomy.
* See https://epics-controls.org/resources-and-support/base/epics-7/ to learn more about EPICS 7
** Visit https://mdavidsaver.github.io/p4p/ to learn more about the P4P
 
poster icon Poster THSDSC03 [0.865 MB]  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-THSDSC03  
About • Received ※ 06 October 2023 — Revised ※ 10 October 2023 — Accepted ※ 06 December 2023 — Issued ※ 15 December 2023
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)