刘 瑶 庹先国 郑洪龙
(西南科技大学国防科技学院,四川 绵阳 621010)
长距离α测量系统的实时数据采集软件设计
刘 瑶 庹先国 郑洪龙
(西南科技大学国防科技学院,四川 绵阳 621010)
为了掌握长距离α测量系统所测数据的实时变动情况及后期对数据的分析与处理,提出一种软件设计方案。融合RS-232串口与RS-232转USB接口两种方式实现对测量数据的接收,并通过ZedGraph图形控件对测量数据进行实时动态显示及统计分析,利用SQLite数据库对测量数据进行存储,实现历史数据的在线与离线查询。测试结果表明,该系统软件具有较好的实时性与稳定性,且动态显示过程流畅,适用于实时数据的获取与显示。
长距离α测量 数据采集 实时 串口 USB ZedGraph 统计分析 SQLite
目前,人们对核能的开发和利用的力度越来越大,在这一过程中,不可避免地会产生核污染。长距离α测量系统突破了常规α探测的局限,能够高效地探测仪器管道内壁和不规则面α污染的严重程度,现已得到了广泛的应用[1]。随着计算机成为人们日常生活及工业生产中不可缺少的设备[2-3],如何利用先进的计算机技术对长距离α测量系统的测量数据进行高效地处理已成为一个亟待解决的问题,国内已有部分研究人员对此进行了探索并取得了研究成果。罗召霞基于长距离α测量技术研制了一台管道内表面α活度监测仪,并设计了相应的数据采集软件,能够通过串口实时获取数据并进行图形化显示[4],但显示的数据量有限,不能显示数据变动的全貌;成毅等基于PDA设计了一种α测量软件,能够通过蓝牙接收α测量仪器测得的能谱数据并进行显示[5],但由于其采用的是简单的文本存储方式,使得后期对于历史数据的查询与分析变得比较复杂。
根据所作的需求分析,构建的系统体系结构如图1所示,主要是由长距离α测量系统、接口模块、数据动态显示与统计分析、数据库4个部分组成。
图1 α污染测量系统框架
长距离α测量系统包括α污染测量仪、电离室、导气管道、供电电源等,文献[6]对这一部分进行了详细的阐述。接口模块设计了两种方式。一种是计算机带有RS-232接口,可直接通过串口线进行通信;另一种是计算机不带RS-232接口而只有USB接口,需要RS-232转USB接口线支持, 这类转接线通过USB接口连接计算机,并安装相应的驱动程序后即可在所接计算机上虚拟出一个COM端口,实现硬件设备与计算机的串口通信。计算机接收到数据后,一方面用于实时动态显示与统计分析,另一方面通过SQLite数据库对其进行存储,方便历史数据的查询与导出。
以Visual Studio 2010作为软件开发工具,基于C#语言开发。结合系统体系结构的划分,设计软件的功能模块如图2所示。该软件功能模块主要由数据接收模块、数据存储模块、数据显示模块、数据查询模块和数据分析模块5个部分组成。
图2 软件功能模块
数据接收模块完成接口数据的接收。数据存储模块具备数据库存储以及导出至EXCEL表格保存2种功能,双备份确保数据不会丢失。数据查询模块包括EXCEL查询与数据库查询,其中EXCEL查询方式可以直接打开相应文件查看,也可以将数据导入软件中进行查看。数据显示模块包括表格实时记录与图形动态显示,其中图形动态显示能够将所测量数据全部显示且画面不会出现迟滞现象。数据分析模块是利用统计学原理对所测量的数据作出分析。
3.1 数据接收模块
对移动学习(M-Learning)的研究始于1994年卡内基梅隆的研究项目,该项目开创了移动教育的先河。随后E-Learning提供商借鉴E-Learning的相关经验,将移动学习引入高校和企业培训。由教育机构发起的针对中小学的教育信息化改革,则试图通过新技术改善教学、学习和管理。
3.1.1 数据接收接口
① 计算机若有RS-232串口,则可用RS-232串口线连接长距离α测量系统与计算机,并在计算机端通过SerialPort类完成串口的相关设置(端口号、波特率等),即可实现串口通信。
② 计算机若无串口而只有USB接口,则需要由RS-232转USB接口线支持。转接线一端是RS-232接口,用于连接长距离α测量系统;另一端是USB接口,用于连接计算机,在网上下载相应的驱动程序并安装,即可在计算机端虚拟出一个串口。
对于虚拟串口的相关信息的获取有两种方式:一种是通过查看设备管理器;另一种是通过编程实现,WMI有一个类(Win32_PNPEntity)可以返回“设备管理器”中所有设备的信息[7],通过虚拟串口的标志符“Prolific USB-to-Serial Comm Port”进行字符串搜索,即可定位到设备管理器信息中的虚拟串口,最后通过字符串操作提取出端口号COM*。
在设计时,采用编程获取虚拟串口信息。若在设备管理器信息中检索时能够返回虚拟串口信息,则说明接入计算机的是RS-232转USB接口线,并将通信端口设置为虚拟端口号,否则,将通信端口设置为默认物理端口COM2。通过这种方式,无论采用RS-232串口线还是RS-232转USB接口线接入计算机,软件都能够自动识别并完成对串口的设置。
3.1.2 数据接收原理
DotNet提供了SerialPort类进行串口通信,读取串口数据时有两种方式:一种是新建一个线程用于实时读取串口,该方式是线程每隔一定时间就读取串口,而不论此时串口是否有接收到数据;另一种是事件触发方式,该方式以数据到达为触发事件,触发时通知主线程,然后再进行数据读取。由于线程实时读串口相的接收数据的效率低于事件触发方式,故设计时采用事件触发方式。
SerialPort类封装屏蔽了很多通信细节,因此使用非常方便。事件触发方式的编程实现方法是只需为SerialPort类的DataReceived事件绑定一个函数,然后在该函数中调用适合的方法,从而实现对串口数据的读取[8]。
3.1.3 数据接收过程
由于长距离α测量系统的测量数据是以字节格式向计算机发送数据,故适合采用调用ReadByte()方法从串口中接收数据。当数据接收速度大于数据处理速度时,会出现数据丢失。
为了避免这种情况,在接收数据后并不立即处理,而是将接收到的数据存入队列中。当队列不为空时,即从队列中取出数据进行处理。由于队列采用先进先出方式,因此从队列中取出数据时可以保持数据的原有顺序[9]。
下面以测量本底电流(无污染源的情况下测量得到的数据)为例,说明数据的接收流程,如图3所示。
图3 数据接收流程
从串口接收到数据后存入队列,当队列不为空时,即从队列中取出首字节,判断其是否为数据包的标志字节“0x42”,若不是,继续取出下一个字节进行判断,直至取到“0x42”;然后从队列中取出连续的4个字节(高位在前),即完成一个完整数据包的获取;最后通过进制转换算法将这4个字节数据转换得到一个十进制数据,即为最后的结果。
3.2 数据显示模块
3.2.1 表格实时记录
在获取数据并转换为十进制结果后,需要将数值进行前端显示,在此采用Dot Net自带的DataGridView表格控件对数据进行实时记录。通过控件提供的方法Insert(行索引,当前时间,测量值)将数据插入到行索引处,并调用Refresh()方法即可显示新插入的数据。
3.2.2 图形化动态显示
为了直观地了解测量结果的增减变动情况,软件添加了图形显示的功能。设计时有三种方案。第一种方案采用商业的报表开发工具内含的统计图表功能,其优点是功能全面,缺点是商业控件是收费的,会增加软件的开发成本;第二种方案是采用DotnetCharting图形控件,其优点是控件免费,水晶式效果炫目,图表效果好;缺点是性能稍差、不支持缩放;第三种方案是采用ZedGraph图形控件,可用于创建折线图、饼图、柱状图,其优点是控件免费并且代码开源,可以修改代码以适应具体的需求,性能较好,支持缩放和拖动功能;缺点是图表效果稍差。由于软件是需要对实时数据进行显示,对性能要求较高,因此采用第三种方案。
ZedGraph图形控件绑定了PointPairList数据集,实现时,指定该数据集显示的图样形式为折线图,当DataGirdView表格中有数据更新时,将更新的数据点(时间,测量值)添加至该数据集,并调用坐标适应方法AxisChange()与更新方法Refresh(),即可在图形面板上动态地显示测量结果的变动的情况[10]。
3.3 数据存储模块
3.3.1 数据库存储
软件采用SQLite数据库对数据进行存储,该数据库无需任何初始化配置文件,无安装卸载过程,也不存在服务器实例的启动与停止,操作方便、易于维护。
数据存储结构的设计有两种方案。一种方案是将需要存储的信息(测量起始时间、测量时间间隔、电流测量值等)存储在一个表中。其优点是表设计简单,查询操作的编程容易;缺点是存在数据冗余。另一种方案是根据表中数据的关系,设计出不同的表,用于存储不同的数据。其优点是减少数据冗余,优化了数据表;缺点是设计复杂。为了使数据存储更有效率,设计中采用第二种方案。根据所需存储的信息,设计的数据库E-R图如图4所示。
图4 数据库E-R图
其中,测量信息表中的内容包括测量起始时间、测量结束时间、测量用时、测量时间间隔等,目标电流记录表与本底电流记录表是根据长距离α测量系统所测的不同内容作出的相应记录。
3.3.2 EXCEL表格保存
为避免测量数据发生丢失,除采用数据库存储外,还通过将DataGridView表格数据导出至EXCEL表格的方式进行保存。实现时,新建EXCEL工作表,并将DataGridView表格中的数据一行一行地写入工作表中[11]。需要特别注意的是,每一次的导出操作,在新建EXCEL工作表后都会创建EXCEL.EXE进程,所以在写入操作完成之后,需要销毁EXCEL.EXE进程,否则,随着导出操作次数的增加,该进程会不断地消耗内存。
3.4 数据分析模块
为测试软件各功能模块的实现情况以及运行的稳定性,设置测量时间间隔为1 s,总耗时4 h,共计接收14 402个数据点,测试得到的效果图如图5所示。
图5 软件功能测试图
图5(a)展示了测量数据的图形化动态显示;图5(b)展示了测量数据的表格记录过程;图5(c)是对这次测量数据所做的统计分析,在图中除了给出频率直方图与正态分布曲线的比对之外,还列示了各类指标数据(平均值,均值等)。根据这些数据,可得到该组测量数据的置信分布情况,如表1所示。
通过对图样中频率直方图与正态分布曲线的对比,并考虑表1中试验概率相对于理论概率的偏差程度,可知,这组数据近似满足正态分布,可靠性较高。
从测试结果来看,软件满足了设计的要求,各功能模块能够有效地工作且运行稳定。
表1 测量数据的置信分布情况
针对目前α测量数据采集软件所存在的不足,本文设计了一种长距离α测量系统实时数据采集软件。该软件融合了RS-232串口与RS-232转USB接口两种方式,能够自动识别接口并进行相关设置,并通过ZedGraph图形控件实现了实时数据的动态显示;采用SQLite数据库与Excel表格对数据进行双备份,通过对存储结构的设计,优化了存储效率;此外,运用统计学知识对测量数据进行分析,判定了该组数据的可靠性。最后,通过测试实例,验证了所设计软件的实用性及稳定性。
[1] 付军,庹先国,廖哲,等.LRAD技术在α表面污染监测中的应用[J].核电子学与探测技术,2007,27(5):830-832,851.
[2] 孟亚辉.浅谈软件项目开发过程中的需求分析[J].科技信息,2009,26(11):435-436.
[3] 罗薇红.计算机软件需求分析及开发研究[J].信息通信,2013,27(2):177.
[4] 罗召霞.管道内表面α活度监测系统研制[D].成都:成都理工大学,2012.
[5] 成毅,周传文,庹先国,等.基于PDA&MCU的便携式α测量系统[J].核电子学与探测技术,2011,31(8):894-898.
[6] 付军.长距离α污染测量仪的研制[D].成都:成都理工大学,2008.
[7] 陈杰新.如何获取设备管理器的明细[J].黑龙江科技信息,2009,13(24):65.
[8] 龚新文.串口通信在VS2008中的实现与应用[J].电脑与电信,2011,17(3):47-48,51.
[9] 江泽鹏.三菱PLC串口通信时数据冲突的解决方法[J].自动化应用,2013,54(6):58-59,71.
[10]朱亦钢.应用ZedGraph高效开发数据图表[J].电脑编程技巧与维护,2009,16(12):59-61,124.
[11] 李纪军.将DataGridView中数据导出到Excel[J].电脑编程技巧与维护,2012,19(15):64-66.
[12]吴治华.原子核物理实验方法[M].北京:原子能出版社,1997:4-16.
Design of the Real-time Data Acquisition Software for Long RangeαMeasurement System
In order to master the real time changes of the measured data in long rangeαmeasurement system, and to analyze and process the data in later period, the software design strategy is proposed. The measured data can be
through both RS-232 serial port mode, and RS-232 to USB mode; and the measured data can be dynamically displayed and statistically analyzed in real time through ZedGraph graphic control. By adopting SQLite database, the historical data are stored for online and offline inquiries. The test results indicate that the system software possesses better real time performance and stability; and the dynamic display process is smooth, it is suitable for real time data acquisition and display.
Long rangeαmeasurement Data acquisition Real-time Serial port USB ZedGraph Statistical analysis SQLite
国家自然科学基金资助项目(编号:413741301)。
刘瑶(1991-),男,现为西南科技大学控制科学与工程专业在读硕士研究生;主要从事计算机应用方面的研究。
TP319
A
10.16086/j.cnki.issn1000-0380.201509017
修改稿收到日期:2015-01-10。