English

Beyond the EPICS: comprehensive Python IOC development with QueueIOC

Instrumentation and Detectors 2026-03-17 v4 High Energy Physics - Experiment

Abstract

Background and Purpose: Architectural deficiencies in EPICS lead to inefficiency in the development and application of EPICS IOCs. An unintrusive solution is replacing EPICS IOCs with more maintainable and flexible Python IOCs, only reusing the CA protocol of EPICS. While there are libraries like caproto and PCASPy that help to create Python IOCs, they still feel insufficient for more complex requirements. Methods: Noticing caput, caget and camonitor are just specialised combinations of requests/replies and notifications in client-server communication, by combining barebone caproto and event loops like those in server-like programs, the QueueIOC framework for Python IOCs is created, which has the potential to systematically reduce the development and maintenance cost of IOCs. Results: Examples based on QueueIOC are first given for workalikes of StreamDevice and asyn; also given are examples for "sequencer" applications, like those based on seq, include monochromators, motor anti-bumping and motor multiplexing. A QueueIOC-based framework for detector integration is presented in an accompanying paper. Also reported is a simple but expressive architecture for GUIs, as well as software to use with the ~/iocBoot convention which addresses some issues we find with a similar solution based on procServ.

Cite

@article{arxiv.2411.01258,
  title  = {Beyond the EPICS: comprehensive Python IOC development with QueueIOC},
  author = {Peng-Cheng Li and Xiao-Xue Bi and Ying-Ke Huang and Dian-Shuai Zhang and Xiao-Bao Deng and Qun Zhang and Ge Lei and Gang Li and Yu Liu},
  journal= {arXiv preprint arXiv:2411.01258},
  year   = {2026}
}

Comments

18 pages, 10 figures

R2 v1 2026-06-28T19:45:32.939Z