文章快速检索    
  核技术  2017, Vol. 40 Issue (3): 030402-030402   DOI: 10.11889/j.0253-3219.2017.hjs.40.030402
0

引用本文 [复制中英文]

岳敏, 袁超, 苟世哲, 张玮, 王永平, 常建军. 基于C#的SECRAL-Ⅱ数据归档系统[J]. 核技术, 2017, 40(3): 030402-030402. DOI: 10.11889/j.0253-3219.2017.hjs.40.030402. [复制中文]
YUE Min, YUAN Chao, GOU Shizhe, ZHANG Wei, WANG Yongping, CHANG Jianjun. Data archive system of SECRAL-Ⅱ based on C#[J]. Nuclear Techniques, 2017, 40(3): 030402-030402. DOI: 10.11889/j.0253-3219.2017.hjs.40.030402.
[复制英文]

基金项目

国家自然科学基金(No.11427904)资助

第一作者

岳敏, 女, 1985年出生, 2010年于兰州大学获硕士学位, 研究领域为加速器控制技术

文章历史

收稿日期: 2016-08-31
修回日期: 2016-12-12
基于C#的SECRAL-Ⅱ数据归档系统
岳敏, 袁超, 苟世哲, 张玮, 王永平, 常建军     
中国科学院近代物理研究所 兰州 730000
摘要 超导电子回旋共振离子源Ⅱ(Superconducting Electron Cyclotron Resonance ion source with Advanceddesign in Lanzhou-Ⅱ,SECRAL-Ⅱ)控制系统采用实验物理与工业控制系统(Experimental Physics and IndustrialControl System,EPICS)架构,其中数据归档子系统主要用来存储离子源电源、真空、束诊、水压等数据,便于技术人员进行在线和离线数据分析,是其控制系统的重要组成部分。EPICS自带的Channel Archiver存储格式固定,无法满足用户的实际使用需求。使用C#实现了EPICS架构下变量(Process Variable,PV)历史数据的存储功能,结合Oracle数据库技术,使得在存储PV变量的策略上可以更加灵活控制。同时,实现了基于超文本预处理器(Hypertext Preprocessor,PHP)的文件管理系统,用于历史数据文件的管理。测试及运行结果表明系统可以很好地满足研究人员对于历史数据的归档要求和研究需求。
关键词超导电子回旋共振离子源Ⅱ    实验物理与工业控制系统    Oracle    超文本预处理器    数据归档    
Data archive system of SECRAL-Ⅱ based on C#
YUE Min , YUAN Chao , GOU Shizhe , ZHANG Wei , WANG Yongping , CHANG Jianjun     
Institute of Modern Physics, Chinese Academy of Sciences, Lanzhou 730000, China
Supported by National Natural Science Foundation of China (No.11427904)
First author: YUE Min, female, born in 1985, graduated from Lanzhou University with a master's degree in 2010, focusing on accelerator control
Abstract: Background: Data archiving system is an important part of SECRAL-Ⅱ (Superconducting Electron Cyclotron Resonance ion source with Advanced design in Lanzhou-Ⅱ, SECRAL-Ⅱ) control system which is based on the Experimental Physics and Industrial Control System (EPICS). The SECRAL-Ⅱ researchers have special request for data archiving system, but the Channel Archiver of EPICS cannot satisfy their requirements. Purpose: This study aims to develop a novel data archive system to meet user's special requirements. Methods: EpicsSharp, a software library for the NET platform, is employed to implement the channel access protocol of EPICS. Based on C# language and Oracle database, EPICS Client library combined with Microsoft.Excel 14.0 object library are used to implement a novel data archive system which can read EPICS process variable (PV) values and save them into files in Excel format. Corresponding file management system based on hypertext preprocessor (PHP) is developed for user convenience and the safety of the file system. Results: The data system is stable and reliable and has been running in practice for half a year. Through the web browser, user can login into the file manager system and select any file to download to the local computer. Then the data file can be viewed or imported into another analysis system. Conclusion: The archive system is reliable and suitable for SECRAL-Ⅱ control system. This scheme is applicable to the similar requirements of other control system.
Key Words: SECRAL-Ⅱ    EPICS    Oracle    PHP    Data archive    

超导电子回旋共振离子源 (Superconducting Electron Cyclotron Resonance ion source with Advanced design in Lanzhou, SECRAL)[1-2]是由中国科学院近代物理研究所在2006年研制的一台具有全新磁铁结构的电子回旋共振 (Electron Cyclotron Resonance, ECR) 离子源,融合了最新的ECR技术,可在18-28GHz微波频率下为兰州重离子加速器 (Heavy Ion Research Facility in Lanzhou, HIRFL) 提供强流离子束[3-4],是目前国际领先的ECR离子源之一。自投入运行以来,使扇聚焦回旋加速器 (Sector Focusing Cyclotron, SFC) 和分离扇回旋加速器 (Sector Separated Cyclotron, SSC) 的氙束束流强度分别提高了10倍和50倍,并成功刷新了许多高电荷态离子束的流强记录,例如Pb30+、Ca16+和Ni17+等。2011年SECRAL成功引出了238U32+离子,并在HIRFL冷却储存环主环 (Cooling Storage Ring main ring, CSRm) 中加速到了23.8GeV,从而使HIRFL累积完成了元素周期表中从氢到铀的全离子加速。

SECRAL-Ⅱ是中国科学院大科学装置维修改造项目“HIRFL备用超导ECR离子源研制”的最核心设备,其控制系统是基于实验物理与工业控制系统 (Experimental Physics and Industrial Control System, EPICS)[5-6]的分布式控制系统。历史数据的存储是控制系统中一个非常重要的部分,在EPICS架构的控制系统中,由Control System Studio (CSS) 提供的ARCHIVE ENGINE[7]是比较常用的历史数据存储应用程序。CSS是基于Eclipse的一个工具集。ARCHIVE ENGINE使用Channel Archiver将数据存储到数据库。历史数据的查询则使用CSS提供的Data Browser工具。美国散裂中子源 (Spallation Neutron Source, SNS) 参与开发Channel Archiver并使用Channel Archiver[8]存储历史数据。日本的KEKB (KEK B-Factory) 加速器工程也使用Channel Archiver[9]存储历史数据。国内合肥光源控制系统中使用SNS开发的Channel Archiver进行历史数据存储[10],但是由于CSS提供的Data Browser的局限性,重新开发了历史数据的Web查询页面。

SECRAL-Ⅱ控制系统中,离子源子系统研究人员需要Excel文件格式的历史数据,进行基本数据查看以及将数据导入分析系统中进行处理和分析,所以在数据存储格式的要求方面,ARCHIVE ENGINE无法满足用户的需要。因此,本工作研究和开发了一套基于C#的数据归档系统。该系统使用EpicsSharp提供的软件库[11]实现了EPICS Client库函数,然后利用库函数,使用Channel Access (CA) 协议读取输入输出控制机 (Input/Output Controller, IOC) 上的变量 (Process Variable, PV) 值并存储到数据文件中。数据文件产生后,用户通过服务器获取数据文件。传统的匿名文件传输协议 (File Transfer Protocol, FTP) 应用十分广泛,是一个很常用的服务,但是FTP服务器通常情况下需要安装客户端软件,而且不能获取文件属性,无法实现移动和分布式办公。为了便于用户随时随地获取数据文件,本文为用户开发了一套基于超文本预处理器 (Hypertext Preprocessor, PHP) 技术的数据文件管理系统[12-13]

1 系统概述

SECRAL-Ⅱ总控制系统结构分三层:底层为设备层;中间层为IOC层,用来实现所有控制设备功能以及和上层通讯功能;上层为用户接口 (Operator Interface, OPI) 层,用来实现用户操作接口。系统整体架构如图 1所示。数据存档子系统位于总控系统架构第一层,通过建立CA通道和IOC服务器的PV进行通信。Oracle数据库存储了每个PV变量对应的设备名,所属的IOC服务器IP地址,以及每个PV变量读取的间隔时间[14]。文件系统 (File System) 用于管理数据文件。底层在SECRAL-Ⅱ系统中主要包括电源、真空、束诊等设备,设备接口类型有串口、以太网接口等。

图 1 控制系统架构 Figure 1 Structure of control system

系统中,使用Oracle存储变量信息,可以克服采用文件(比如可扩展标记语言 (eXtensible Markup Language, XML))进行信息配置的一些缺点。本文在共享性、冗余度、独立性、安全性、数据结构化以及后期集成几个方面对二者进行了对比,如表 1所示。

表 1 使用Oracle和使用文件对比 Table 1 Comparison of using oracle and file

表 1可以看出,由于Oracle的共享性支持,用户对文件内容的增、删、改、查会非常方便;另外,使用Oracle存储信息,可以避免人工核查XML文件格式的困难。从管理角度考虑,该子系统可以容易地集成到加速器控制信息综合管理平台中。

系统主要操作流程如图 2所示。首先应用程序初始化,从数据库读入PV变量名和所属IOC服务器IP地址,根据IOC服务器的IP地址,建立CA Client,并对其读取的IP列表进行配置。然后和IOC服务器建立连接,根据数据库中读取到的PV变量的间隔时间,在特定的时间后读取PV变量的值,然后存入缓冲区,定时将数据写入Excel文件,避免了频繁的输入输出操作。目前,根据用户分析数据实际需要,程序读取PV变量的间隔时间由用户定义为30 s。

图 2 操作流程 Figure 2 Operation flow chart
2 EPICS Client库开发

EPICS提供了多种开发语言的扩展包,本文对EPICS C#函数库进行了研究并使用其提供的函数进行二次开发。EpicsSharp由Client、Server和Gateway三部分组成。Client库支持程序读取、监控和操作IOC上的PV;Server库通过CA协议发布PV变量;Gateway是一个独立的软件。EpicsSharp提供了C#实现的Client类。为了更适合本控制系统中的设备,本工作对其进行了优化。由于每种设备的接口以及响应速度不同,根据设备情况,延时作为参数由使用者定义,并传递给函数。优化后的Client类以动态链接库SECRAL_Client.dll的方式引入到数据存档系统中。

使用SECRAL_Client读取PV,首先需要建立读取通道,使用CreateChannel函数,然后使用Get函数去读取PV变量的值。首先建立连接,然后由Client发送读取命令,获取数据。SECRAL-Ⅱ的控制系统目前需要存储的PV变量共30个,随着控制系统的逐步完善,PV变量个数会增加。由于PV变量分布于不同的IOC上,所以根据IOC的个数动态建立Client。程序以多线程方式实现,每个线程作为一个Client和IOC服务器连接,连接后默认不断开。在每个Client端,初始化时创建PV变量的Channel,以此来优化读取的速率。

为保证Client动态创建的有效性,当数据库中的PV变量信息更改时,通过消息机制通知程序进行信息重新读入,该部分由程序的监听线程实现。

3 Excel格式数据文件

C#向Excel文件写数据比较常用的有三种方式:第一种,将数据以流的形式写到Excel中,格式以html形式存在;第二种,将数据以文件流的形式写到Excel中,格式以txt的形式存在;第三种,将数据直接写到Excel中,格式以XLS形式存在。根据用户需求,本工作采用了第三种方法。在应用程序中,引入Microsoft Office 2010的Excel组件Microsoft.Excel 14.0 Object Library。

Microsoft.Excel 14.0 Object Library是Microsoft Office 2010提供的操作Excel的COM组件。首先创建Application对象AppExcel,声明Workbook对象,指定操作的Sheet,然后读取数据、写入数据。为了防止每次弹出写入提示,将AlertBeforeOverwriting和DisplayAlerts属性设为False。最后保存数据,需要同时保存WorkSheet和Workbook。保存后使用Quit函数退出AppExcel对象,并调用KillSpecialExcel函数关闭Excel进程,否则Excel进程会逐渐增加,消耗系统内存。

4 数据文件管理

数据文件管理子系统,用来管理存储的历史数据文件。该子系统使用浏览器/服务器 (Browser/Server, B/S) 架构实现。前台采用层叠样式表 (Cascading Style Sheets, CSS)+定位技术 (DIVision, DIV) 和主流的JavaScript开发框架Jquery进行页面设计。后台服务器端采用PHP+Apache+Oracle技术开发。系统前后台采用Ajax+Json进行数据通信,极大地提升了响应速度。系统安全方面采用登录验证和权限验证。用户在登录页面提交用户名和密码后,首先对用户名进行验证,若验证通过,将对用户密码进行信息摘要算法5 (Message-Digest Algorithm 5, MD5) 加密,然后根据数据库中的密码进行校验,若校验通过则允许登录。用户登录成功后,系统注册用户会话状态 (Session),防止未登录的用户访问系统。系统针对不同的用户设计了不同的权限,普通用户只有浏览、下载权限,管理员具有浏览、上传、下载、共享、删除等权限。登录验证后根据用户的权限显示相应的功能,从而进一步保证了文件的安全。

5 运行环境和运行结果

数据归档系统使用Visual Studio 2010平台开发,操作系统环境为64位Windows 7系统。应用程序和数据库皆部署在惠普ProLiant DL388 G9机架式服务器上,环境为64位Windows Server 2012系统。数据库采用Oracle 11.2.0.0.0。表 2为数据库中主要字段说明。

表 2 数据库主要字段 Table 2 Main field in database

图 3为历史数据文件浏览和下载界面。用户选中图 3中任意文件,选择“下载”,便可下载到本地。目前运行PV为30个,单日文件大小为300 KB左右。随着控制系统的不断完善,后续将继续增加PV变量,包括环境温度、湿度、磁铁温度监测等,理论值按200个PV计算,单日文件大小约为2 MB,年数据大小约为700MB左右。目前我们使用的机架式服务器硬盘总容量为1.5TB,数据存储方案采用存储性能、数据安全和存储成本兼顾的独立冗余磁盘阵列5 (Redundant Array of Independent Disk 5, RAID5) 方案,存储空间为600GB,可以满足用户长期使用需要。截止2016年11月,系统已经稳定运行7个月时间。

图 3 文件浏览和下载界面 Figure 3 User interface of file view and download

图 4是根据现场实际运行7个月的数据文件个数、大小以及用户下载情况做的信息统计。8月份由于加速器停机检修,所以8月份的数据量比较少。

图 4 数据文件统计 Figure 4 Statistics of data files
6 结语

使用C#实现了EPICS架构下PV变量的读取和历史数据存储。经过7个月的运行测试,系统稳定可靠,可以满足用户的需求。系统存储策略可以根据用户需要随时修改。RAID5方案保证了数据文件的存储安全性、文件管理系统的设计和使用,以及保证了数据文件的访问安全性,同时增加了用户获取数据的便捷性和易用性。该方案适用于同样需求的控制系统。

参考文献
[1] Sun L T, Zhao H W, Zhang X Z, et al.Preliminary results of SECRAL at 18 GHz[R].Lanzhou:IMP & HIRFL Annual Report, 2006:149.
[2] 周文雄, 王彦瑜, 周德泰, 等. SECRAL超导磁铁电源控制[J]. 原子核物理评论, 2014, 31(4): 489–493.
ZHOU Wenxiong, WANG Yanyu, ZHOU Detai, et al. Control of the superconducting magnet power supply for SECRAL[J]. Nuclear Physics Review, 2014, 31(4): 489–493. DOI: 10.11804/NuclPhysRev.31.04.489
[3] 夏佳文, 詹文龙, 原有进, 等. 千兆电子伏重离子加速器-兰州冷却储存环[J]. 原子能科学技术, 2009, 43(Suppl 1): 150–158.
XIA Jiawen, ZHAN Wenlong, YUAN Youjing, et al. Heavy ion coolers-storage-ring synchrotron in Lanzhou[J]. Atomic Energy Science and Technology, 2009, 43(Suppl 1): 150–158.
[4] 夏佳文, 詹文龙, 魏宝文, 等. 兰州重离子加速器冷却储存环[J]. 强激光与离子束, 2008, 20(11): 1787–1794.
XIA Jiawen, ZHAN Wenlong, WEI Baowen, et al. Heavy ion coolers-storage-ring synchrotron in Lanzhou[J]. High Power Laser Particle Beams, 2008, 20(11): 1787–1794.
[5] 唐兴海, 刘亚娟, 张俊强, 等. 基于MicroTCA的自动频率控制系统[J]. 核技术, 2016, 39(7): 070102.
TANG Xinghai, LIU Yajuan, ZHANG Junqiang, et al. An automatic frequency control system based on MicroTCA[J]. Nuclear Techniques, 2016, 39(7): 070102. DOI: 10.11889/j.0253-3219.2016.hjs.39.070102
[6] 孙皓, 龚培荣. 基于MATLAB的上海光源光束线运行状态分析与预警[J]. 核技术, 2016, 39(7): 070104.
SUN Hao, GONG Peirong. Analysis of beamline running state and forewarning by using MATLAB in SSRF[J]. Nuclear Techniques, 2016, 39(7): 070104. DOI: 10.11889/j.0253-3219.2016.hjs.39.070104
[7] Kasemir K, Carcassi G.Control system studio guide[EB/OL].2016-08-30.http://cs-studio.sourceforge.net/docbook/.
[8] Kasemir K U.Control system studio (CSS) data browser[C].Proceedings of PCaPAC08, Ljubljana, Slovenia, 2008:99-101.
[9] Satoh M, Seimiya Y.Control system upgrade for super KEKB injector LINAC[C].Proceedings of IPAC, Richmond, VA, USA, 2015:930-932.
[10] 强杰, 刘功发. 基于Oracle的合肥光源数据存档系统及初步应用[J]. 核技术, 2013, 36(1): 010101.
QIANG Jie, LIU Gongfa. The data archive system and preliminary applications of Hefei light source based on Oracle[J]. Nuclear Techniques, 2013, 36(1): 010101. DOI: 10.11889/j.0253-3219.2013.hjs.36.010101
[11] Bertrand A, Lauk D J, Krempaska R.EpicsSharp[EB/OL].2016-08-30.https://sourceforge.net/p/epicssharp/wiki/Home.
[12] 巩明. 基于PHP实现数据安全性的方法及比较[J]. 通讯世界, 2015, 22(5): 56.
GONG Ming. Comparison of approaches to data security implementation based on PHP[J]. Telecom World, 2015, 22(5): 56. DOI: 10.3969/j.issn.1006-4222.2015.05.037
[13] 权治, 宋晶晶. 基于PHP的动态网站研究与实现[J]. 计算机与网络, 2015, 41(11): 52–55.
QUAN Zhi, SONG Jingjing. Research and implementation of dynamic website base on PHP[J]. Computer and Network, 2015, 41(11): 52–55. DOI: 10.3969/j.issn.1008-1739.2015.11.046
[14] 雷蕾, 徐海霞, 韩利峰, 等. Oracle数据库在园区辐射监测系统中的应用[J]. 核电子学与探测技术, 2014, 34(9): 1114–1118.
LEI Lei, XU Haixia, HAN Lifeng, et al. Application of Oracle database to the radiation monitoring system[J]. Nuclear Electronics and Detection Technology, 2014, 34(9): 1114–1118. DOI: 10.3969/j.issn.0258-0934.2014.09.019