ITER数据归档系统的应用

2015-12-23 07:04黄连生
核技术 2015年12期
关键词:发布者模拟信号变流器

单 凤 傅 鹏, 黄连生 高 格

ITER数据归档系统的应用

单 凤1傅 鹏1,2黄连生2高 格2

1(中国科学技术大学 核科学与技术学院 合肥 230026)
2(中国科学院等离子体物理研究所 合肥 230031)

国际热核实验堆(International Thermonuclear Experimental Reactor, ITER)是世界上最大的超导托卡马克装置,其中央控制系统CODAC (Control, Data Access and Communication)为ITER装置及其各个子系统提供了丰富的控制系统设计与开发工具。ITER极向场整流器系统作为其子系统之一在运行的过程中会产生大量的实验数据,大量数据的高速采集给数据的存储造成很大的困难,其控制系统需要及时地将采集到的数据进行有效的存储,并提供相应数据的查看方式。本文采用CODAC提供的数据归档系统对极向场控制系统数据进行有效的管理。在充分了解该数据归档系统的基础上,对该数据归档系统的使用和可用性进行了详细的介绍。

国际热核实验堆,中央控制系统CODAC,HDF5,数据归档,DAN

国际热核聚变实验堆(International Thermonuclear Experimental Reactor, ITER)是为实现可控核聚变的一个国际性项目工程。由中国、欧盟、韩国、日本、俄国、美国、印度共同建造。CODAC (Control, Data Access and Communication)系统是ITER装置的中央控制系统[1]。ITER装置被划分为多个子系统,每个子系统都交由相应的成员国来进行制造和交付。各个子系统的控制系统也是交付的重要组成部分。CODAC Core System是用于ITER设备控制系统开发的软件包。它在遵循ITER标准的同时,为控制系统开发者提供了软件开发和测试所需的环境。CODAC Core System基于实验物理和控制系统(Experimental Physics and Industrial Control System, EPICS)和红帽Linux系统[2]。DAN (Data Archiving Network)数据归档是其提供的重要功能之一。该功能的主要目的是存储实验过程中产生的高吞吐量的实验数据。

ITER极向场(Poloidal Field, PF)共有6个线圈,共需要14个变流器单元(Poloidal Field Converter Unit, PFCU)来为其供电[3],所有的变流器单元具有相同的设计,其电路拓扑图如图1所示。

图1 ITER极向场变流器单元拓扑结构Fig.1 Topological structure of ITER PFCU.

整个ITER极向场变流器的整体结构简图如图2所示。对于第一个线圈PF1和第六个线圈PF6分别需要一个变流器单元为其供电。其余线圈需要三个变流器单元串联为其供电。每个线圈的变流器单元都接到66 kV的电缆上。所有变流器单元的总的信号量为224个模拟信号和2520个开关信号。其中,模拟信号采样率为5 kHz,开关信号变化采样。

图2 ITER极向场变流器单元的整体结构Fig.2 Overall structure of ITER PF convert units.

每一个变流器都需要本地控制器。在ITER极向场整流器数据采集与归档系统中,本地控制器负责采集多通道数据(包括多通道模拟信号和开关信号),并将数据存储在本地控制器的缓存中,然后本地控制器将数据以UDP数据包的形式发送到远程服务器上,远程服务器接收数据并发送到远程数据库服务器中进行存储和处理。

整个极向场数据采集和归档系统采用分布式采集,集中存储的方式。数据归档无需考虑数据采集的细节,只需接收高吞吐的数据,并将数据存储,并提供一定的方式来处理分析数据。

1 ITER数据归档系统介绍

DAN数据归档系统主要由三部分组成:快速控制器(安装有CODAC系统的一台计算机)上的一组模块,即本地的DAN发布者进程和一个DAN发送者进程(收集本地数据,并通过DAN网络传送到远程的ITERDB)[4];一个DAN存储服务器用来接收传送者发送的数据,并将数据写入HDF5 (Hierarchical Data Format)文件中;一个数据访问库和一组绘图器来检索数据[4]。

1.1 数据归档系统名词解释

数据归档系统涉及到多个专有名词,各个名词的含义如下:

(1) DAN数据源:数据的产生器,数据源可以是一个采集程序,每一个数据源会有一个相关联的数据缓冲。

(2) DAN发布者:系统中的一个进程,负责在DAN API中注册新的DAN数据源,发布该数据源关联的数据缓冲中新的可用数据块的引用。引用被订阅者获取后,再从数据缓冲中获得实际的可用数据。

(3) 数据缓冲:循环缓冲区,用于临时存放数据源产生的数据,使用共享内存机制,使得多个进程均可访问数据缓冲。

(4) DAN发送者:系统中的一个进程,特殊的DAN订阅者,负责将订阅的数据源产生的数据发送到远程的数据库。

(5) DAN订阅者:本地linux进程,订阅一个或者多个数据源,并访问数据源产生的数据,做相应的数据处理。

(6) DAN API:一组接口函数,用于发布者、订阅者、传送者之间进行通信,并且为各个模块提供了访问数据缓冲、处理采集数据的接口函数。

1.2 数据归档系统的整体结构

数据归档系统的整体结构可以看成C/S结构,见图3。DAN Client从不同的数据源(source)中获得要存储的数据,DAN存储服务器则负责接收数据并将数据存储在HDF5文件中。客户端和服务器之间是通过DAN网络进行连接,该网络使用一个基于TCP/IP的专用的协议。归档系统的整体结构如图1所示。快速控制器上的DAN Client是基于发布-订阅的结构。发布者负责更新数据源相关的数据缓冲中的数据,并通过DAN API发布缓冲中可用数据的引用到数据源信息数据结构中。一个数据发布者可以负责监控多个数据源。订阅者订阅感兴趣的数据源,并接收发布者发布的关于该数据源缓冲中的可用数据的引用,并根据引用到数据缓冲中获取可用的数据。数据缓冲可以是系统原有的(如快速控制器1),也可以通过DAN API为数据源分配一个新的数据缓冲(如快速控制器2)。每一个快速控制器上,只有一个DAN 发送者,发送者是订阅者的一种,订阅了一个或者多个DAN数据源,并将数据通过DAN网络发送到DAN服务器上。

DAN Server负责接收并存储数据,详见§1.4。

图3 ITER数据归档系统的整体结构Fig.3 Overall structure of ITER data archiving system.

1.3 DAN数据模型

数据归档过程中的要存储的数据被组织成为一种特定的数据模型,即DAN数据模型,该数据模型被称作DAN流。DAN流的数据模型的示意图如图4所示。

DAN流是来自于同一个数据源数据块的临时有序的集合,这些数据块共享相同的流属性和通道属性。一个DAN数据模型由三个部分组成:流元数据头、每个通道元数据头和一组数据块。流元数据头包含了一系列强制性属性和用户自定义属性,用来描述数据源数据的相关信息。强制属性包括数据源标识符、数据结构版本、流的类型、数据类型(每一个通道数据的类型)等。通道元数据主要记录通道的相关信息如采集卡中的通道号。用户自定义元数据给用户提供了很高的灵活性,用户可以根据自身实验的需要自行添加。

数据块由一组样本序列和数据块头构成。数据块头中包含的信息有:时间戳(该数据块中第一个样本采集的时间,相对于流元数据中的初始时间)、采样率(样本的采样率)、数据维度(样本中每一个通道数据的维度)、样本数(该数据块中有多少样本)、以及用户扩展的数据块头属性。数据块中的每一个样本的时间戳都可以根据该数据块头中的最初时间戳和采样率来进行推算。数据块之间是相互独立的。根据数据块头的信息可以在线性时间内读取到所存储的数据。

从数据归档系统的角度看,样本是最小的数据单元。一个样本是该数据源通道数据多路复用而成的一个通道数据序列。

1.4 DAN流的存储与访问

DAN数据归档服务器负责接收多个发送者发来的流数据。在使用归档进程时,需要通过配置文件对其进行配置。目前CODAC 5.0版本中,属于同一个流的数据存储在同一个HDF5文件中[5]。采用HDF5文件作为数据存储的好处是:数据存储方法灵活,支持标准数据类型和自定义类型;具有线型数据访问性能,显著的流数据存储率;灵活的数据压缩框架;API支持C、C++、Fortran、java等多种语言[6];线程安全;支持嵌入式数据加密;具有良好的图像支持;代码质量高。因此比较于其他的数据库,HDF5更能满足ITER 数据的需要[7]。

图4 DAN数据模型Fig.4 Data model of DAN.

1.4.1HDF5文件的结构

HDF5是一种层次性数据格式。HDF5文件相当于一个容器,被组织成一个类似于Linux文件系统的树形结构,如图5所示。容器中包含了多种数据对象:组、数据集、属性、数据空间、数据类型。其中,最基本的数据对象是组和数据集。HDF5文件被看作是root组。

图5 HDF5文件逻辑结构Fig.5 Logical structure of HDF5 file.

组可以看作是一个集合,包含一个或者多个组或者数据集,不存储实际数据,相当于路径的作用。

数据集是一个多维数组,数组的形状由数据空间进行描述。数据集中的元素是一个单独的数据单元,它可以是单个数字或字符,也可以是数字或字符数组,甚至可以由不同数据组成的复合结构。数据集维度大小没有限制,支持很多通用数据类型,并支持用户自定义的数据类型。

属性是一种小型的数据集,用来描述HDF5文件中的基本数据对象组和数据集。一个HDF5数据对象可以有0个或者多个属性。

1.4.2 HDF5文件和DAN 流数据模型的对应关系

采用DAN数据归档系统将流数据存储为一个HDF5文件。其中HDF5文件名的格式为:流名_数据源名_脉冲号.h5。HDF5文件的内容与DAN数据模型的对应关系见表1。

表1 DAN存储的HDF5文件内容Table 1 Content of HDF5 file stored by DAN.

2 实验过程和结果

2.1 模拟信号的存储及显示

2.1.1信号的采集

模拟一套模拟信号产生程序,产生224个通道模拟信号,信号的采样率为5 kHz(与现有的采集程序的采样率相同)。由于ITER极向场变流器控制系统中,数据采集与归档分开,数据归档无需考虑采集的细节,信号的值不影响归档。本模拟实验中,将所有的通道信号均设为幅值2.0,周期10 ms的正弦信号。模拟数据采集程序以UDP包的形式将采集到的数据发送给DAN 发布者。

采集程序所发送的UDP数据包中的数据要符合一定的要求。本实验中,数据包被分为5段,每段所存储的数据如表2所示。数据包中的数据就相当于DAN数据模型中的一个数据块。

表2 模拟数据UDP包格式Table 2 Organization of UDP package comprised by analog signals.

每一个样本为224个通道数据组成的一个一维数组,通道数据类型为浮点型。每个通道每次只产生一个数据,因此数据维度为1×1,数据维度1的值为1,数据维度2的值为1,数据类型为浮点型。采样率为双精度浮点型。最初时间戳为第一个样本的采集时刻,数据类型为64整型,该时间戳使用的是UTC时间,即距离1970年1月1日,00:00:00时的纳秒时间。该数据块中的其余样本可以根据时间戳和采样率来计算采样时刻。

模拟数据采集程序每2 ms发送一次UDP包,每个UDP包含有10个样本(该值可根据缓冲大小进行调整),数据量为17.952 KB。每秒钟数据量高达到9 M左右。

2.1.2数据接收和存储

使用DAN数据归档系统存储数据,需要有一个发布者进程、发送者进程和归档写进程。根据数据源的定义,上述的数据采集程序可以看作是一个数据源。数据发布者与传送者需要通过DAN API进行数据通信。

首先要生成DAN配置文件、描述流、通道、数据源、传送者的基本信息,并使用命令danApiTool来配置DAN API。命令格式:/opt/codac-5.0/bin/ danApiTool api init[配置文件名][8]。只有进行了DAN API的配置之后,才可以使用DAN API。该命令执行后,发送者进程会自动启动,并等待发布者的可用数据引用通知。

采集程序以UDP包的形式将采集到的数据发送给DAN发布者进程。发布者将每一个UDP包看作是一个数据块。数据发布者负责接收UDP数据包,并将数据包中的数据做相应的解析,然后写入为该数据源分配的缓存当中,数据写入后将会通知传送者来读取缓存中的可用数据。数据发布者的流程图如图6所示。

使用DAN API编写DAN发布者程序。运行发布者进程之前,要确保数据归档写进程和发送者进程已经启动。数据归档写进程通过命令dan_archiver_writer start命令进行启动[9]。

图6 DAN发布者流程图Fig.6 Flow chart of DAN publisher.

2.1.3波形显示

每通道数据波形(部分)显示结果如图7所示。

(2)减少不必要的人员、机械费用。减少不必要的开支,为企业提供更多的利益,这是成本控制的一种比较好的方案。在不影响路桥质量的情况下把利益最大化。通过良好的工程计量对项目所用的材料等进行估量,以减少材料的浪费。

图7 模拟信号波形Fig.7 Waveform of archived analog signal.

从HDF5文件中读取每一个通道的数据,并使用python中的pyplot子库绘制波形。每通道数据均正确存储并绘制。图7中X轴为所采集样本数据的序列号,从0开始标号,图7中显示的是第9200-9900个样本,Y轴为每通道的采样值。与设定的各通道的值相同,即幅值2.0的正弦信号,且周期采集样本数为50个。可见使用DAN数据归档系统可以准确无误地存储多通道高采样的模拟信号。

2.2 开关信号的存储和显示

2.2.1开关信号的采集

DAN数据归档系统的最初目的是存储高吞吐量的模拟数据,对于开关信号并未给予相应的解决方案。对于开关信号的值,采集系统使用一个bit来存储相应开关信号的值。并且对于一个开关信号,没有固定的采样率,无法通过最初时间戳和采样率来推算该开关信号的下一个数据的采样时刻。因此对于每一个开关信号值都需要存储该值采集的时间戳。如果按照模拟信号的存储方法,将每一个开关信号当作一个通道进行存储,会造成很大的磁盘空间浪费。而且一个数据块中也只能放一个样本(因为一个数据快中的样本要可以通过最初时间戳和采样率进行时间戳推算),这样会大大降低了网络带宽利用率[10]。根据开关信号和DAN数据归档系统各自的特点。本实验采用了如下的解决方案,使得可以使用DAN数据归档系统来存储开关信号数据。

采集系统将采集到的数据以UDP包的形式发给DAN发布者进程。该UDP数据包的格式见表3。其中数据块头与模拟信号类似,这是DAN归档系统所要求的。数据块头存储该数据块的一些基本信息,如最初时间戳、样本数据维度、采样率等。数据段5存储的是实际的数据,由时间戳和0,1序列交替组成。时间戳为紧接着的0,1序列数据的采集时间,该0,1序列代表的是一组开关信号的值,这一组开关信号的每一个值的采集时间相同。数据段5中的数据在开关信号的存储过程中,被看成是两个以上的虚拟通道数据。通道数据类型为64位整型(HDF5文件中的每一个数据集中所存储的数据的数据类型必须一致,并且所有通道的数据存储在一个数据集中)。第一个通道存储时间戳,其余通道存储开关信号,其余通道个数M取决于开关信号的个数N,其余通道数M=N/64+1。因此,数据段5所存储的数据被数据归档系统看成是M+1通道的数据。然后按照存储模拟数据的方法来存储开关信号。

表3 开关信号UDP数据包格式Table 3 Organization of UDP package comprised by switch signals.

本次实验中模拟了一套开关信号采集程序。开关信号的个数为2520个。因此存储过程中每个样本由41个通道复合而成,第一个通道数据为时间戳,第二个通道到第41个通道为开关信号在该时刻的取值,其中第41个通道中低24位有效。由于在ITER极向场数据采集与归档系统中,数据采集与存储分开,所采集的数据值不会影响数据归档。本实验中假设所有开关信号的变化规律一样。对于每一个开关信号的取值规律为 4个1和4个0交替变换。模拟采集程序每1 ms发送一个UDP包。每一个UDP数据包数据段5中含有8个样本(该值可根据缓冲大小进行调整),即8个时间戳和其对应的每个开关信号的采样值。每秒钟数据产生量可达到2.656M,相对实际应用来说已经足够。实验进行数分钟,发现数据存储准确无误。

2.2.2数据的接收和存储

采用与模拟信号一样的DAN 发布者进程进行数据的接收和监控。对于DAN API的配置文件需要重新生成,除了模拟信号中要描述的信息之外还应该添加一个额外的属性,用来描述开关信号的个数。经过通道虚拟之后,开关信号的接收和存储过程与模拟信号类似。

2.2.3开关信号的波形

由于在HDF5文件中所存储的通道数据是虚拟的通道,实际存储开关信号值只是一个二进制位。因此对于第二个以后的虚拟通道中的数据都要进行相应的处理,解析出要访问的模拟信号的值。解析的步骤如下,所绘制的波形图(部分)如图8所示。

图8 第0-19开关信号波形Fig.8 Waveform of number 0-19 switch signals.

(1) 对于要访问的每一个实际的开关信号(下标从0开始),首先取出X轴的数据,即时间,就是虚拟通道0中的数据;

(2) 然后判断实际开关信号位于哪一个虚拟通道中;

(3) 取出该虚拟通道的数据,并取出相应的开关信号值,即Y轴的数据;

(4) 按照X、Y轴的数据值进行波形修复,将梯形波修复为方波;

(5) 若开关信号没访问完,则返回步骤(1)。

图8中的X轴为开关信号采集的纳秒级时间戳(末尾的标注1×108+1.4369789523×1018为时间戳的科学计数法,横坐标刻度2代表的实际时间戳为2×108+1.4369789523×1018ns),Y轴为该时刻对应的开关信号的值,0代表开关无效即断开,1代表开关闭合。

3 结语

实验表明,DAN数据归档系统可高效的存储多通道模拟信号和开关信号,可对信号进行波形显示。满足ITER极向场变流器数据归档的要求。通过本次实验,掌握了DAN数据归档系统的使用,也验证了DAN数据归档系统的可靠性与合理性。为更好地将DAN数据归档系统应用于ITER PF变流器控制系统以及其他的控制系统做了铺垫。

1 Di Maio F. CODAC core system overview[R]. Cadarache: ITER Organization, 2015

2 Stepanov D. CODAC core system user manual[R]. Cadarache: ITER Organization, 2015

3 Zhu L L, Fu P, Gao G, et al. Development of data acquisition management system for ITER DC testing platform[J]. Journal of Fusion Energy, 2015, 34: 1100-1104. DOI: 10.1007/s10894-015-9924-5

4 Gheni A. ITER CODAC archiving system-detailed system archiving document[R]. Cadarache: ITER Organization, 2013

5 Castro R. User manual-DAN archiving server v1.0[R]. Cadarache: ITER Organization, 2014

6 The HDF Group. HDF5 user’s guide[OL]. http://www.hdfgroup.org/HDF5/doc/UG/index.html, 2015-02[2015-04-10]

7 Cook N. Survey of scientific data formats[R]. Cadarache: ITER Organization, 2015

8 Castro R. DAN API reference document[R]. Cadarache: ITER Organization, 2014

9 Abadie L. DAN user manual[R]. Cadarache: ITER Organization, 2015

10 Hu Z, Mi Q R, Zhen L F, et al. EPICS data archiver at SSRF beamlines[J]. Nuclear Science and Techniques, 2014, 25(2): 020103. DOI: 10.13538/j.1001-8042/ nst.25.020103

Application of ITER data archiving system for PF control system

SHAN Feng1FU Peng1,2HUANG Liansheng2GAO Ge2
1(College of Nuclear Science and Technology, University of Science and Technology of China, Hefei 230026, China)
2(Institute of Plasma Physics, Chinese Academy of Sciences, Hefei 230031, China)

Background:International Thermonuclear Experimental Reactor (ITER) is the largest superconducting Tokamak device in the world. CODAC (Control, Data Access and Communication) system has been adopted as the central control system for ITER device. This system provides ITER subsystems with many tools to design and develop its own sub-control system. ITER device will produce a larger number of experimental data during its operation. Fast data acquisition and large volume of data can bring great difficulty to control system.Purpose:This study aims to design and implement a data archiving system for Poloidal Field (PF) control to archive these data effectively in time, and provide some way to check the data.Methods:Data Archiving Network (DAN) of CODAC is employed to implement an effective data archiving system for ITER PF control system, and a program to do data lookup is designed using Python. Necessary experiments to simulate the PF system were performed to test this data archiving system flexibly.Results and Conclusion:Experimental results show that this data archiving system can store experimental data effectively.

ITER, CODAC, HDF5, Data archiving, DAN

SHAN Feng, female, born in 1992, graduated from Anhui University in 2013, master student, research area is computer automatic control

TP274.2

10.11889/j.0253-3219.2015.hjs.38.120401

科技部国际合作项目(No.4.1.P2.CN.01):ITER计划极向场变流器电源系统设计及国内集成

单凤,女,1992年出生,2013年毕业于安徽大学,现为硕士研究生,研究领域为计算机自动控制

Supported by Design and Integrate of ITER Polodial Field Convert System in China (No.4.1.P1.CN.01)

2015-07-15,

2015-11-16

CLCTP274.2

猜你喜欢
发布者模拟信号变流器
基于CAN总线的车身控制模拟信号采集程序设计
新加坡新法规引争议
用于能量回馈装置的变流器设计与实现
一种基于ADG426多路模拟开关的模拟信号输入接口设计
基于博弈论的社交网络转发控制机制
模拟信号的三种调制方法比较研究
广告发布者的著作权审查义务问题研究
中压一体化储能变流器的设计
基于背靠背变流器的并网控制研究
基于FPGA的三相AC/DC变流器的控制研究