EPICS 7新特性简介

实验物理和工业控制系统(EPICS)是一种用于高性能分布式控制的开源软件框架,是许多世界上大型加速器和望远镜的核心。EPICS 7进行了重大修订,旨在为下一代大科学装置提供更好的计算支持和分析工具。许多新的数据类型,如矩阵、表、图像和统计描述,以及用户自己的数据类型被引入,这些都补充了经典EPICS的简单标量和波形类型,并为高性能数据处理服务和流水线技术添加了新的科学计算体系结构。Python和Java绑定使得用户界面功能更加强大。建模和仿真、机器学习、企业数据库和实验DAQ也被集成在一起。

三十多年来,EPICS一直由加速器实验室、望远镜等大型国际研究所合作开发和使用。近年来,由于对快速在线数据分析、加速器性能调整、机器学习以及检测器和实验优化的需求增强,EPICS(版本7)进行了重大升级。 EPICS的基本功能是用于监控、闭环反馈、归档、报警管理、定时以及前端处理器和面向硬件设备的其他方面。EPICS通常托管在Linux或Windows PC中,或者有时在嵌入式系统(如RTEMS或vxWork)中,该软件及其主机统称为IOC(输入/输出控制器)。IOC针对低延迟I/O进行了优化。它们控制和/或监控一系列设备,每个IOC节点都包含一个内存驻留实时数据库。

IOC数据库是一组“智能”记录,它们以数据流模式互连。 他们的聪明之处在于他们的字段值可能直接来自硬件,或者是依赖于记录类型的处理结果。记录可以包含“设备支持”代码,以通过设备驱动程序与物理设备连接。IOC代码针对吞吐量进行了优化。

这种所谓的“EPICS基础”软件,以及基于其构建的软件扩展,如用户级显示管理器、归档和记录系统、探测器框架等,已经证明在科学仪器的控制方面非常成功。它为许多加速器提供出色的低级I/O,DAQ,最佳控制和用户界面。

大型仪器的现代控制系统要求在控制系统本身中进行更多的科学研究,而不仅仅是EPICS基础软件。高输出检测器需要流水线数据处理;物理应用程序处理过程变量及其值的系统,而不是一次处理一个过程变量(PV);过程变量可以是统计上聚合的,结构化的,表格式的或多模态的。最近,通过机器学习或多参数回归分析进行加速器调整和预测的关键工作需要获取和整理“大”控制系统数据和重要元数据。

除EPICS Base外,EPICS 7的两个核心模块是“pvData”和“pvAccess”。pvData模块是EPICS 7的高性能结构化数据主干。它支持动态创建和管理结构化数据类型和阵列。尽管可以动态创建类型,但EPICS 7定义了一组面向科学控制数据的标准数据类型(称为EPICS“规范类型”)。其中定义的类型包括矩阵、键值集、表、直方图、连续图和图像,以及通用和特定于应用程序的类型。

pvAccess是EPICS 7的网络协议。除了期望的get,put和通知变更(所谓的“监视器”)方法之外,pvAccess还提供远程过程调用(RPC)方法,包括同步和异步,其中PV值是根据用户提供的参数计算的。PvAccess和pvData包括内存管理和高效编码和反序列化,以最大限度地减少大型复杂数据I/O的复制和有线事务。

pvAccess网络性能测试结果表明pvAccess的网络效率是稳定的,表现良好,能够在1 Gb/s或10 Gb/s以太网上提供接近95%的标称最大比特率,而且没有CPU饱和。

许多EPICS“显示管理器”现在或即将支持EPICS 7。CS-Studio已经有一段时间了。PyDM和EPICS Qt都支持测试版,包括规范类型。

EPICS 7的新pvDatabase模块实现了一个用于根据pvData结构定义的记录的内存驻留数据库的框架。与经典EPICS的IOC数据库一样,pvDatabase的记录可以处理I/O事件;与IOC不同,记录可以是工程师所希望的任何结构,并且可以从任何pvAccess-ible数据源和Channel Access中提取数据。

EPICS 7可以轻松集成到现有EPICS安装中,以补充现有的设备支持、DCS和SCADA。

发表评论