Speaker
Description
基于Python的大型物理实验控制软件框架研究与部署测试
夏守腾1,2,3,张银鸿1,2*,钱森1,2,杨洁3
(1. 中国科学院高能物理研究所,北京 100049;2.核探测与核电子学国家重点实验室,北京 100049; 3. 郑州大学,郑州 450001)
不同大型物理实验设备的软件实现需求存在明显差异。传统的控制软件是针对特定实验设备而开发的,其代码模块结构紧密,因此难以复用和扩展。为解决这个问题,本文研究并设计了一个通用框架,可用于不同类型实验设备的控制软件,以便快速构建控制软件以满足不同需求。
该框架是一个基于Python的、开源的慢控制系统软件框架,可用于所有粒子物理实验的设备控制。该框架包括多个功能模块,如显示、数据查询、警报、日志和远程监视等。其最主要的数据采集、数据监控以及报警功能之间的数据通信是采用MQTT(Message Queuing Telemetry Transport)协议,不仅降低了代码耦合度,也确保了实时和可靠的数据传输。基于MVC(Module、View、Control)架构,利用PyQt5开发了用户界面,实现了用户界面与后端逻辑处理之间的分离,提高了各模块的灵活性和可移植性。本研究基于面向对象的编程方法保证了每个功能模块的独立性和可移植性,并且统一的配置文件格式使它们可以在各种实验中轻松地通过简单地组合模块来适应需求的变化和创建新的应用程序,适用于物理实验设备控制软件的更新换代。本研究中开发的控制软件框架已经成功部署在了SY5527与VME设备上,并都经过了Docker测试,同时结合K3S对Docker进行管理,解决了框架在大型物理实验中大数据量下的负载均衡,便于用户对软件的管理与维护。
关键词:慢控制系统;MQTT;PYQT5;Docker