SDDS在EPICS控制系统中的应用

自描述数据集(SDDS)文件协议和程序工具包是很多加速器实验的重要组成部分。SDDS的有用性源于数据协议本身,而不是大量现有的通用SDDS兼容程序(统称为“SDDS工具包”)。

自描述数据(SDD)是仅通过名称引用和访问的数据。SDD通常具有可用的元数据,并且仅通过名称访问。迄今为止,SDD的有限应用与实现普遍性的尝试有关。随着通用性的提高,应用程序开发和使用中的难度也随之增加,并且开发时间也越来越长。过于笼统的协议使创建通用工具变得困难,从而失去了SDD的基本动机。

SDDS协议通用到足以有用,但足够简单到可以使用。数据模型允许任意数量的同构结构的“数据页”。该结构定义了参数(即单个值),多维数组和数据表的任意集合。每个页面都是此结构的一个实例。该页面的各种元素可通过调用C例程库获得,有关这些元素的元数据(例如,单位、数据类型、数组条目数)也可以使用。支持各种数据类型(例如,字符串、浮点数、整数)。

SDDS文件可以是二进制或ASCII格式。ASCII变体非常简单,可以在需要时方便地“手动”创建输入数据。来自不兼容程序的数据通常可以通过添加简单的文件头进行转换。

尽管SDDS协议可以方便地存储大多数数据,但是如果没有可用于处理数据的工具,则使用SDDS协议将无济于事。SDDS Toolkit由40多个独立程序组成,这些程序接受SDDS文件作为输入。几乎所有程序还创建SDDS文件作为输出。这意味着可以通过组合多个程序的功能来创建复杂的数据处理序列,而不必担心一个程序可以使用另一个程序的输出还是创建适合另一个程序的输出。这样的序列可以使用中间文件,也可以将它们构造为管道。使应用程序彼此之间更加独立,因为数据流中附加数据的存在不会破坏应用程序。此外,应用程序可以例如通过检查数据的存在,检查单元或检查数据类型来验证所给定的数据的有效性。

使用SDDS,个人可以不受限制地添加按自己的顺序使用的程序。个人可以创建数据处理序列的外壳脚本,并不受限制地组合这些脚本。 与现在常见的数据处理应用程序的多合一方法相比,既不需要也不希望对这样的活动进行集中控制。

实验物理和工业控制系统(EPICS)用于APS和许多其他加速器设施。在APS,除极少数例外,SDDS用于收集和处理来自EPICS和其他来源的所有调试数据。

例如,SDDS用于以下控制应用程序:保存、还原和比较机器配置;配置复合旋钮存储磁铁调节说明;保存和恢复GPIB设备配置;存储来自数字示波器和频谱分析仪的数据;归档数据记录;在自动化实验中收集数据;配置数据,用于对过程变量的一般性反馈(例如轨道校正)。

使用与SDDS Toolkit相同的原理,开发了与EPICS交互的通用程序,同时使用SDDS文件进行输入和输出。也就是说,虽然这些工具从EPICS中获取数据,但它们由SDDS文件配置并产生SDDS文件作为输出。因此,不需要编写任何特定于EPICS的数据处理或显示程序,而只需使用SDDS工具包。

符合SDDS的EPICS工具箱是一组软件应用程序,用于收集或写入实验物理和工业控制系统(EPICS)数据库记录中的数据。尽管大多数应用程序本质上都执行相当简单的操作,但将这些应用程序与SDDS后处理工具箱中的其他应用程序结合使用,可以对数据进行任意复杂的分析。这些工具是通用工具,可以在EPICS的控制下应用于加速器以外的设备。

此处提供的EPICS工具可将数据读取并存储到SDDS协议文件中。SDDS(自描述数据集)是指自描述文件协议的特定实现。自描述意味着通过名称引用和访问数据(Self-describing means that the data is refered to and accessed by name.)。因此,用户无需知道一条表格数据位于哪一列中。ASCII标头包含有关文件数据结构的信息,即结构元素的定义,例如列(表格数据)和参数(单个值)。

最初,SDDS文件协议最初被用于复杂的物理模拟程序,在数据收集软件中也很出色。通常,EPICS工具会将EPICS数据写入SDDS文件,并将每个回读写入对应于EPICS数据库记录名称的名称列。描述实验条件的单值数据可以作为参数写入文件。可以将EPICS工具视为EPICS控制系统与更多功能分析工具和脚本之间的层,其中SDDS协议文件为中介。

下图是APS控制系统架构示意图,该架构显示了EPICS的典型使用模型:前端计算机(IOC)、中间件服务和用于显示和机器分析的客户端的三层系统。值得注意的是,其中包含SDDS-EPICS 7工具包。

发表回复