基于高精度时间数据的加速器故障分析样机设计

2022-11-19 07:06程司农张昭朱鹏刘智王林徐广磊张玉亮雷
核技术 2022年10期
关键词:样机加速器高精度

程司农张 昭朱 鹏刘 智王 林徐广磊张玉亮雷 革

1(中国科学院高能物理研究所 北京 100049)

2(散裂中子源科学中心 东莞 523803)

3(中国科学院大学 北京 100049)

高性能的加速器对运行的可靠性和稳定性提出了更高的要求,而加速器庞大的设备数量、极高的设备精度和性能要求导致对外部干扰非常敏感,给加速器的高效可靠运行带来了很大的挑战。分析加速器运行过程中常规保存的历史数据,可以判断和处理大部分故障,而对于发生的少数快速故障过程,由于常规方式保存的历史数据时间粒度不够,导致无法对这类快速故障过程进行有效分析。

当故障发生时,将若干系统在故障发生时刻前后一段时间内具有高时间相关性和高时间分辨率的数据(即时间数据)进行获取和存储,利用这些数据重建快速故障发生的过程,从而定位和判断故障产生的根源,此即为基于高精度时间数据的加速器故障分析系统的基本过程。在2002年,欧洲核子中心(Conseil Européen pour la Recherche Nucléaire,CERN)针对大型强子对撞机(Large Hadron Collider,LHC)提出了加速器故障分析系统,其主要包括如下4个部分:高精度时间戳、故障触发、数据采集与呈现以及数据存储[1]。2008年,CERN利用该系统对LHC的束流测试数据进行了分析,并为他们对相关数据分析提供了宝贵经验[2]。在2016~2017年,美国国家同步加速器光源(National Synchrotron Light Source II,NSLS-II)[3]与中国台湾光源(Taiwan Photon Source,TPS)[4]均在其加速器上对故障分析系统进行了评估,且对提高加速器运行的可靠性起到了很重要的作用。

为了能够准确获取到故障发生时刻的数据,可采用网络实时获取与存储数据,这将给网络传输与存储空间带来很大的压力。以中国散裂中子源(China Spallation Neutron Source,CSNS)加速器束流损失探测系统为例,每小时产生的数据量约为41 GB,保存全部的束流损失历史数据几乎不可能[5]。而在设备级前端使用带有数据缓存功能的硬件设备,采用同步触发的方式进行数据锁存和获取,可以极大减少数据传输时占用的网络带宽与数据存储空间,即在收到同步触发信号后,锁存前端硬件设备缓存区的数据,再将其读取并存储到服务器。

基于全局高精度时间戳及触发式数据锁存与获取,本文实现了基于高精度时间数据的加速器故障分析样机(以下简称故障分析样机),全局高精度时间戳基于事件定时系统实现,可为相关硬件系统记录的数据打上全局高精度时间戳,时间戳精度好于16 ns;全局数据锁存触发信号使用事件定时链路进行传输。本文将介绍故障分析样机的总体设计和软件设计以及该样机实验结果的分析。

1 总体设计

故障分析样机的总体设计如图1所示,主要包括两个核心部分:全局高精度时间戳的实现、数据组装与获取分析。故障数据的全局高精度时间戳是分析故障原因的关键因素之一。本样机基于高性能铷原子钟和事件定时系统实现了全局的高精度时间戳,为时间数据提供全局的高精度时间戳。事件定时系统是以事件发生器(Event Generator,EVG)和事件接收器(Event Receiver,EVR)为主体进行搭建的一级或多级星型结构的定时系统。

图1 故障分析样机总体架构图Fig.1 Schematic diagram of failure analysis system prototype architecture

故障分析样机的另一核心部分为数据组装与获取分析,用于将带高精度时间戳的数据按照预定义的数据结构进行组装和发布。基本工作过程为:1)当主站的事件发生器接收到故障触发信号后,发送事件码到各个子站,子站将数据缓存区的数据进行锁存,不再刷新数据;2)驱动程序从事件接收器获取全局的高精度时间戳,从数据采集卡获取硬件信息和缓存数据,并将这些信息按照EPICS 7规范类型[6]组装成结构化数据;3)上层软件程序对结构化数据进行获取分析,为操作员分析故障原因提供参考。

2 全局高精度时间戳的实现

大科学装置中建立全局时间戳常用的方式有:NTP(Network Time Protocol)、PTP(Precision Time Protocol)[7]以及事件定时系统等。由于NTP同步精度会受网络负载与网络波动的影响,同步精度一般在1~50 ms范围[8];用PTP实现全局的高精度时间戳,需大范围增加专用发收设备及链路,这并不适用于已经建有并成功运行事件定时系统的加速器装置中;而基于事件定时系统发送和接收时间戳,则可以提高时间戳的精度,并且事件定时系统广泛应用于国外内加速器装置中[9-13]。

事件定时系统的EVG产生并行的分布式总线时钟信号和事件码,经由光电转换模块,将事件流发送到EVR,EVR将事件流恢复为分布式总线时钟信号和事件码,并产生与EVG事件钟锁相的事件钟作为EVR的基准时钟[13]。因此,只需在各个前端硬件设备处安装EVR与控制器,作为不同的子站,即可与主站进行全局的高精度时间戳同步。本文介绍的故障分析样机,事件钟频率为125 MHz,由信号源提供的500 MHz高频信号分频产生。

2.1 全局高精度时间戳的设计与实现

故障分析样机中实现的基于事件定时的全局高精度时间戳,下称事件时间(Event Time),其关键在于时间的秒部分与纳秒部分的产生和获取,事件时间的设计方案如图2所示,硬件设备主要包括铷原子钟、EVG和EVR,其中铷原子钟用于提供高精度秒脉冲信号(Pulse Per Second,PPS)、10 MHz时钟信号和NTP时间。

图2 事件时间的设计方案Fig.2 Design scheme of the Event Time

EVG的秒时间获取程序,即UTC(Coordinated Universal Time)秒数获取模块,通过NTP协议获取UTC时间并锁定,并对锁定后的UTC时间进行截断处理,只保留UTC时间的秒部分(下称UTC秒数),该UTC秒数作为定时主站秒时间的初始值,并根据PPS对秒时间进行自加运算,以保持和UTC秒数的同步并减少网络波动带来的影响。铷原子钟的PPS信号到来后,定时主站把32位秒时间转换为32个事件码(0对应0x70,1对应0x71),并保证在本秒内发送到事件定时网络中所有的定时子站,作为定时子站下一秒的时间基准。同时,定时主站程序还周期性判断定时主站维持的秒时间和通过NTP获取的UTC秒数是否相同,以此判断事件时间的秒时间是否正确。

EVR使用EVG发送的高精度分布式时钟作为纳秒时间的计数器时钟,计数器的值经换算后转化为纳秒时间。因此,各子站的秒时间与纳秒时间可实现全局同步。

为了防止EVR的32位纳秒计数器计数值溢出,每当定时主站的EVG接收到PPS信号时,都会发送0x7D事件码到EVR,EVR接收到该事件码后,将32位纳秒计数器复位。

事件时间不仅可以为硬件数据提供硬时标,也可以用作实验物理和工业控制系统(Experimental Physics and Industrial Control System)[14]的时间源。利 用EPICS的generalTime[15]框 架,为 过 程 变 量(Process Variables,PV)[16]提 供 高 精 度 时 间 戳。generalTime框架用来管理系统中的多个时间源,注册的时间源优先级高低决定其调用顺序的先后,如图3所示。故障分析样机在generalTime框架中注册了三种时间源,其中系统时间(OS Clock)的优先级最低,NTP Time的优先级次之,Event Time的优先级最高。若当前使用的时间源报错,generalTime将会使用次优先级的时间源作为当前时间源。

图3 EPICS generalTime框架Fig.3 Framework of EPICS generalTime

2.2 全局高精度时间戳的自身报错处理

当事件链路损坏或EVG未收到来自铷原子钟的PPS信号时,事件时间将会出现错误,若没有及时进行错误处理,会导致当前事件时间不可信,因此设计了事件时间发生错误报警程序和事件链路恢复重新锁定UTC时间程序。事件时间状态判断逻辑如图4所示。通过计算判断0x7D事件码是否被接收以及事件时间秒时间是否均匀增加,基于二者的结果,判断事件时间的状态。

图4事件时间状态判断逻辑Fig.4 Judgment logic of the Event Time status

图4 中Judge Event Time status,即为判断事件时间内部状态,其逻辑框图如图5所示。事件时间错误处理的功能:当未接收到0x7D事件时,事件时间的状态为ERROR;当重新接收到0x7D事件码时,则将事件时间与NTP Time的秒时间同步,使事件时间恢复正常。

图5 Event Time内部状态判断逻辑框图Fig.5 Logic diagram of the Event Time internal status

为了能够监测当前事件时间的状态,以及统计事件时间发生错误的总次数,设计了两个PV,用于显示这些信息。

2.3 全局高精度时间戳的同步精度与准确度

为了减少事件时间与铷原子钟精确时间的误差,将信号源与铷原子钟的10 MHz信号同步,图6为信号源产生的500 MHz信号与铷原子钟的10 MHz时钟信号同步前后的波形。当不同子站EVR与主站EVG连接使用的光纤长度不等时,会导致不同子站的事件时间有一定的偏差。因此,在子站程序中加入时间修正,使得不同长度的传输光纤下,EVR提供的事件时间保持同步。

图6 500 MHz信号与10 MHz时钟信号同步前(a)、同步后(b)的测量截图Fig.6 Screen capture of the unsynchronized(a)and synchronized(b)signals between 500 MHz vs.10 MHz

为了测试事件时间的同步精度,设计了两个实验,测量两个子站的EVR提供的事件时间差值。1)两个子站的EVR均使用550 m的光纤与主站的EVG相连。以2 Hz的频率进行测量,10万次测量后,交换两个EVR与EVG连接的光纤,继续测量10万次,均未有一次偏差。2)两个子站的EVR分别使用550 m的光纤、3 m光纤与主站的EVG相连。进行时间修正后,同样以2 Hz的频率进行测量,1 200次测量后,约600次出现1个计数时钟周期的偏差,出现该现象的原因是不同长度光纤产生的事件时间差,不严格为计数时钟的整数倍。

综合两个实验的结果可知,不同子站之间的事件时间同步精度最差为1个计数时钟的周期,测量实验中使用的计数时钟频率为62.5 MHz,即:

为了测量事件时间相对于GPS时间的准确度,设计了如图7所示的实验,测量EVG接收PPS信号后产生的脉冲信号的抖动Jitter。

图7 时间戳的准确度测量结构框图Fig.7 Block diagram of the timestamp accuracy measurement

EVG的接收到PPS信号后,会产生0x7D事件码并发送给EVR,EVR接收到该事件码后将产生脉冲信号,利用示波器测量该脉冲信号相对计数时钟的Jitter。示波器测量的结果如图8所示。

图8 PPS信号抖动测量Fig.8 Measurement of the PPS signal jitter

图8 中的实验结果显示,PPS触发信号的Jitter均值为50.0 ps。

结合PPS信号的Jitter以及事件时间计数周期对事件时间准确度的影响,可得出事件时间的准确度为:

3 数据组装与获取分析程序实现

数据获取的实验框图如图9所示,实现了事件时间的获取,模拟故障信号、数据锁存信号以及故障触发信号的生成。两个子站的EVR1、EVR2均使用550 m的光纤与主站的EVG连接,并对二者进行延时补偿,使它们的时间戳与EVR3的时间戳保持一致。由EVR3产生具有一定延时的模拟故障信号1与模拟故障信号2,分别发送到数据采集卡1与数据采集卡2;在发出模拟故障信号延时一段时间后,EVR3再产生一路模拟故障触发信号到EVG,EVG收到故障触发信号后,产生故障触发事件码并发送到所有的EVR;EVR1与EVR2收到故障触发事件码后,产生两路锁存信号,分别发送到数据采集卡1与数据采集卡2,用于数据锁存。此后,驱动程序读取子站的数据采集卡1与数据采集卡2中锁存的数据,高精度时间戳分别从子站的EVR1与EVR2中获取。

图9 数据获取实验框图Fig.9 Block diagram of the data acquisition experiment

为能准确且方便地获取设备数据的具体信息,对数据的结构做出了规定:包含了设备所属系统名称(systemName)和子系统名称(subSystem)、设备名称(deviceName)、设备卡号(cardNo)、数据采样频率(dataFreq)、时间戳(timeStamp)以及锁存的数据(dataList)。

为统一获取这些信息,基于EPICS 7的规范类型(Normative Types,NT),设计了一种结构化数据,用于将这些信息进行整合,该结构化数据的结构如图10所示。EPICS 7的规范类型定义了一些基于pvData的通用数据类型,可以将多个PV的信息进行组合,例如NTScalar、NTTable等类型[6,17],图10为样机使用的符合规范类型的数据结构定义,该结构化数据给出了与设备相关的所有标量数据。

图10 结构化数据定义Fig.10 Design of the structure data

EPICS 7的pvget命令[18]可以将结构化数据的信息以json格式打印。利用python获取该结构化数据中的信息,并编写数据可视化程序,将结构化数据中dataList存储的数据可视化,方便进行故障分析。

4 故障分析样机搭建与测试

故障分析样机搭建时,硬件设备使用了铷原子钟、信号源、EVG、EVR以及数据采集卡,其中数据采集卡用于提供模拟数据;软件采用vxWorks作为操作系统,使用EPICS 7的IOC以提供PV。

如图11所示,从两个数据采集卡中读取到的一次模拟故障数据,且存储在结构化数据的dataList中。数据采集卡数据缓存区的采样频率为100 MHz,因此,每两个数据点的时间间隔为10 ns。

图11 从不同站点读取的结构化数据Fig.11 Structure data from different test stations of the experiment

将两个模拟故障信号的延时分别设置为0 ns与1 000 ns,锁存信号延时均设置为4 μs。利用python编写程序,将两个结构化数据中dataList存储的数据进行呈现,由于两个数据采集卡获取到的数据的时间戳相同,因此呈现的两组数据的横坐标得以对齐,如图12所示。这说明事件时间是可靠的;两组数据中的故障数据相差100个数据点,因此,故障发生的时间间隔为1 μs,与设置的延时间隔相同。从实验的结果可知,若故障数据产生于故障触发信号到达前,则这些数据均可采集到,并且可以区分两组数据中的故障点位置,与实验的预期相符合。

图12 模拟故障数据的采集分析Fig.12 Data collection and analysis of simulated failure event

5 结语

本文设计并实现了基于高精度时间数据的加速器故障分析样机,可用于分析加速器运行时出现的快速故障过程,定位故障产生的根本原因。该故障分析样机的可行性已经在实验室得到了验证,即将应用于CSNS加速器。后续将在数据存储以及数据分析和呈现等方面进行进一步的开发。

作者贡献声明程司农:设计实验方案,实验硬件环境搭建,实施研究,论文撰写和修改;张昭:参与方案设计,参与研究过程和问题讨论;朱鹏:参与实验环境搭建;刘智、王林、徐广磊:参与方案设计;张玉亮:负责方案提出,论文修改指导,研究经费支持;雷革:负责方案提出,论文修改指导。

猜你喜欢
样机加速器高精度
莫比斯加速器众创办公空间
知识快餐店 科学加速器
国内外医用直线加速器可靠性对比研究
关于高精度磁测在构造解释方面的应用分析
按需选择在PPT中美化APP截图
高精度在轨实时轨道机动决策
基于遗传算法的高精度事故重建与损伤分析
高精度PWM式DAC开发与设计
高精度PWM式DAC开发与设计
Dunnnk让设计作品更加形象逼真