陈素颖,战明川,龙锋利,叶卫东
(1.中国科学院高能物理研究所,北京 100049;2.北京航空航天大学,北京 100191)
北京正负电子对撞机(BEPCⅡ)有近500套磁铁电源,需要一套快速检测系统(以下称检测系统),以便快速查找磁铁电源引起加速器束流的不稳定因素和分析丢束的原因。加速器磁铁电源是为加速器各类型电磁铁供电的系统,调节磁铁电源的电流,可改变磁铁的电磁场,从而控制粒子运动的轨道。由于BEPCⅡ电源设备数量较大,位置亦较分散,因此,检测系统采用分布式结构,每个本地单元能独立运行,同时也可作为移动平台,用于其他系统或设备的测试。目前,BEPCⅡ正在使用的磁铁电源检测系统[1]由具有8通道输入端的ADS1210数据采集集成电路与CAN网络节点的控制电路构成。该系统中的单片机通过CAN网络接受PC机发送的指令,以进行选通通道和将采集数据传送至PC机。虽然ADS1210的模数转换精度高、转换速度快,但受系统工作方式的限制,每通道采样率小于1Hz,所有电源检测一遍需5min,无法满足对储存环电源进行长期、快速的在线测量和实时检测的要求。在加速器运行过程中,一旦出现不明原因的丢束,则无法捕捉到因电源引起的瞬间跳变。因此,本文建立磁铁电源电流值的快速检测系统,将所有通道的回采数据实时写入数据库,从而有利于进行后期数据分析,确认磁铁电源电流值是否存在电流值跳变问题。
BEPCⅡ磁铁电源控制系统承担着控制电源开关机、调节及监测参量变化的任务,由于该系统采样率较低,捕捉不到磁铁电源电流的瞬间跳变,因此本工作研制BEPCⅡ磁铁电源快速检测系统来快速查找磁铁电源引起的束流不稳定因素。BEPCⅡ磁铁电源快速检测系统的结构如图1所示,其主要包括电流传感器、隔离放大器、信号调理模块、数据采集卡、PXI控制器等部分,每个PXI系统均可作为服务器与客户端进行数据交换,软件采用Labview和SQL语言编写。由于本工作研究的磁铁电源电流稳定度较高,根据传感器的类型及磁铁电源的输出电流,选用稳定度达2ppm的Hitec高精度传感器[2],通过检测系统快速检测电源传感器输出的电压信号,并与中央控制室送给磁铁电源的给定信号对比,以分析磁铁电源的工作状况和判断束流丢失的原因。
图1 磁铁电源检测系统结构
检测系统最小分辨率为18bit;最大采样率为500kHz;信号通道数为497;8h稳定度≤0.005%;非线性度≤0.01%;采样范围≤±10V。
由于磁铁电源所处的位置较分散,为减少长线传输造成的干扰,采用5套PXI[3]系统同时进行检测,系统在BEPCⅡ运行期间最快可在0.33ms内采集一遍所有的磁铁电源电流值,可迅速排查电源稳定度问题。
程序流程图如图2所示。前端采集以每通道1Hz的速率不间断检测所有磁铁电源的电流稳定度。根据实时显示的电源电流稳定度和束流的状况判断电源是否存在问题,再对其进行每通道30Hz的快速采集,采集过程中产生的大量数据通过TCP/IP传输至中央控制室客户端计算机,TCP包括如下函数节点:Connec-tion函数,用于建立客户机和服务器之间通讯的连接;Transmission函数,用于在客户机和服务器之间传输数据;Conversion函数,用于计算机IP地址和计算机名称之间的切换。TCP函数节点工作过程如图3所示。
图2 磁铁电源检测系统流程图
图3 TCP函数节点工作过程
在中央控制室计算机与5个前端PXI子站的通讯中,设定PXI端为服务器端,中央控制室端为客户端。运行时服务器端不断侦听,当有客户端连接时则建立连接[4],然后收取和发送数据形成通讯,客户端程序运行后与服务器端进行试探连接,若未连接上,程序则重复连接或报超时,若连接上,则进行收发数据处理。
Labview编写的程序中,数据传递的方式分为直接数据流、本地变量和属性节点,直接数据流传递速度最快,本地变量或属性节点的方式无需与程序前面板的控制器/指示器直接连线就可用来传递控制器/指示器中的数值。3种数据传递方式虽均可传递数值,但工作方式不同,建立本地变量是对控制器/指示器中的数据进行复制,因此占用内存,当为数组建立多个本地变量时,会占用大量的内存。属性节点进行读数据或写数据时是对控制器/指示器中的数据进行查询或置入,不会占用内存。由于本地变量是对内存操作,所以运行速度很快。相对于本地变量,属性节点的效率很低,更占用CPU的资源。在快速检测系统的软件实现中尽可能地使用直接数据流,减少使用属性节点,可使系统运行的响应速度更快。
MySQL是一开放源码的小型关联式数据库管理系统[5],具备体积小、速度快的优点,支持多线程,充分利用CPU资源,支持大型的数据库,可处理拥有上千万条记录的大型数据库。MySQL既能作为一个单独的应用程序应用在客户端服务器网络环境中,也能作为一个库而嵌入到其他的软件中。本文对MySQL进行如下优化。
1)Datatime为8字节,与时区无关,缺省值是NULL,而Timestamp为4字节,与时区有关,缺省插入值是当前时间。
2)MySQL用于处理连接和释放连接的效率较高。因此,编写查询程序时将复杂的查询分成多个简单的查询,然后在应用层将这些小查询连接起来,效率会很高。
磁铁电源快速检测系统采集数据的同时通过TCP/IP将数据传输至中央控制室MySQL数据库,中央控制室可随时查询历史数据,数据库查询的界面是以时间轴为横轴的图表(图4),其能直观地显示磁铁电源的历史趋势,同时可将查询结果导出至Excel文件。
图4 中央控制室数据库查询界面
根据电源电流设定值与实际工作电流值间的一致性来判断电源的准确度,若误差超出一定范围就要进行电源电流系数校正。
在网络不通或数据不需写入数据库的情况下,需要检测系统本地存储采集数据。检测系统要求文件存储速度达30kB/s。与Excel文件格式存储相比,采用TDMS文件格式可取得更好的效果。TDMS文件是一种二进制记录文件,其逻辑结构分为3层:文件、通道组和通道,每一层次上均可附加特定的属性。TDMS内部结构的核心是segment,当数据被写入segment中时,实际上是新建了segment。各segment中包含几个记录信息的数据段。这种物理结构决定了TDMS文件的随机存取特性,当程序仅读取其中1个数据段时,可直接获得该数据段信息而不必调用其他数据段的信息,这保证了TDMS文件的高速存取,TDMS在磁盘阵列的高速流盘应用中实际存取速度达372MB/s。考虑到BEPCⅡ磁铁电源快速检测系统长期运行的过程中会持续产生大量数据,采集软件设计为数据每天自动新存一个当天日期为文件名的TDMS文件,避免单个文件过大。
为使BEPCⅡ磁铁电源快速检测系统能精确地采集与处理数据,必须考虑各种干扰对系统的影响。检测系统的工作现场较为恶劣,掺杂着各种来自系统内部和外部的干扰,当被测信号较微弱时,会导致较大的数据采集与处理误差。检测系统在实测电源电流时会出现较大幅度的共模干扰(图5)。采用各种软件滤波的方法,效果均不明显,也无法满足设计指标。通过分析大量测试数据表明,检测系统极可能是从地线引入共模干扰,将输入信号电缆屏蔽层连接检测系统接线端子的接地片,取得了显著的效果,实测电源稳定度均优于万分之一。测试结果如图6所示。
图5 磁铁电源输出检测中存在的共模干扰
图6 排除干扰后磁铁电源输出电流检测
本文用高精度稳流电源作为信号源对检测系统进行线性度测试,测试结果列于表1。
表1 检测系统线性度测试结果
本文研制的磁铁电源快速检测系统,可实现500kHz的采样率,能快速准确地发现磁铁电源输出电流值的瞬间跳变,成为BEPCⅡ运行排查故障的有力手段,且优化了采集程序及数据库,使大量的采集数据得以迅速传输和存储。本文开发的数据库查询界面以时间轴曲线显示,可直观地判断束流不稳定或丢束是否因磁铁电源电流稳定度问题引起。
[1] 龙锋利,张旌,陈斌,等.高精度稳流电源的网络化检测系统[J].原子能科学技术,2006,40(2):249-251.LONG Fengli,ZHANG Jing,CHEN Bin,et al.Network measuring system for high precision stabilized current supply[J].Atomic Energy Science and Technology,2006,40(2):249-251(in Chinese).
[2] 丰伟伟,杨世文,南金瑞,等.LabVIEW中TDMS文件和SQL数据库数据处理速度的研究[J].仪器仪表与分析监测,2011(1):10-12.
[3] 朱军.PXI规范与最新发展概览[J].电子技术应用,2011,37(6):20-21.
[4] 毕虎,律方成,李燕青,等.Labview中访问数据库的几种不同方法[J].传感器与仪器仪表,2006,22(1):131-134.BI Hu,LV Fangcheng,LI Yanqing,et al.Several methods of accessing database in Labview[J].Control &Automation,2006,22(1):131-134(in Chinese).
[5] 王小东.高性能MySQL[M].北京:电子工业出版社,2010.