JACoW logo

Journals of Accelerator Conferences Website (JACoW)

JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.

BiBTeX citation export for TUBL05: Pysmlib: A Python Finite State Machine Library for EPICS

  author       = {D. Marcato and G. Arena and M.A. Bellato and D. Bortolato and F. Gelain and G. Lilli and V. Martinelli and E. Munaron and M. Roetta and G. Savarese},
% author       = {D. Marcato and G. Arena and M.A. Bellato and D. Bortolato and F. Gelain and G. Lilli and others},
% author       = {D. Marcato and others},
  title        = {{Pysmlib: A Python Finite State Machine Library for EPICS}},
  booktitle    = {Proc. ICALEPCS'21},
  pages        = {330--336},
  eid          = {TUBL05},
  language     = {english},
  keywords     = {EPICS, controls, interface, software, operation},
  venue        = {Shanghai, China},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {18},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {03},
  year         = {2022},
  issn         = {2226-0358},
  isbn         = {978-3-95450-221-9},
  doi          = {10.18429/JACoW-ICALEPCS2021-TUBL05},
  url          = {https://jacow.org/icalepcs2021/papers/tubl05.pdf},
  abstract     = {{In the field of Experimental Physics and Industrial Control Systems (EPICS)*, the traditional tool to implement high level procedures is the Sequencer*. While this is a mature, fast, and well-proven software, it comes with some drawbacks. For example, it’s based on a custom C-like programming language which may be unfamiliar to new users and it often results in complex, hard to read code. This paper presents pysmlib, a free and open source Python library developed as a simpler alternative to the EPICS Sequencer. The library exposes a simple interface to develop event-driven Finite State Machines (FSM), where the inputs are connected to Channel Access Process Variables (PV) thanks to the PyEpics** integration. Other features include parallel FSM with multi-threading support and input sharing, timers, and an integrated watchdog logic. The library offers a lower barrier to enter and greater extensibility thanks to the large ecosystem of scientific and engineering python libraries, making it a perfect fit for modern control system requirements. Pysmlib has been deployed in multiple projects at INFN Legnaro National Laboratories (LNL), proving its robustness and flexibility.}},