美章网 资料文库 实时数据采集软件设计范文

实时数据采集软件设计范文

本站小编为你精心准备了实时数据采集软件设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

实时数据采集软件设计

目前,人们对核能的开发和利用的力度越来越大,在这一过程中,不可避免地会产生核污染。长距离α测量系统突破了常规α探测的局限,能够高效地探测仪器管道内壁和不规则面α污染的严重程度,现已得到了广泛的应用[1]。随着计算机成为人们日常生活及工业生产中不可缺少的设备,如何利用先进的计算机技术对长距离α测量系统的测量数据进行高效地处理已成为一个亟待解决的问题,国内已有部分研究人员对此进行了探索并取得了研究成果。罗召霞基于长距离α测量技术研制了一台管道内表面α活度监测仪,并设计了相应的数据采集软件,能够通过串口实时获取数据并进行图形化显示,但显示的数据量有限,不能显示数据变动的全貌;成毅等基于PDA设计了一种α测量软件,能够通过蓝牙接收α测量仪器测得的能谱数据并进行显示,但由于其采用的是简单的文本存储方式,使得后期对于历史数据的查询与分析变得比较复杂。针对上述研究成果中的不足,本文利用长距离α测量系统提供的RS-232接口实现与计算机通信,从接口方案、实时数据动态显示、数据统计分析、数据库4个方面作出了改进。

1系统体系结构

根据所作的需求分析,构建的系统体系结构如图1所示,主要是由长距离α测量系统、接口模块、数据动态显示与统计分析、数据库4个部分组成。长距离α测量系统包括α污染测量仪、电离室、导气管道、供电电源等,文献[6]对这一部分进行了详细的阐述。接口模块设计了两种方式。一种是计算机带有RS-232接口,可直接通过串口线进行通信;另一种是计算机不带RS-232接口而只有USB接口,需要RS-232转USB接口线支持,这类转接线通过USB接口连接计算机,并安装相应的驱动程序后即可在所接计算机上虚拟出一个COM端口,实现硬件设备与计算机的串口通信。计算机接收到数据后,一方面用于实时动态显示与统计分析,另一方面通过SQLite数据库对其进行存储,方便历史数据的查询与导出。

2软件功能模块设计

以VisualStudio2010作为软件开发工具,基于C#语言开发。结合系统体系结构的划分,设计软件的功能模块如图2所示。该软件功能模块主要由数据接收模块、数据存储模块、数据显示模块、数据查询模块和数据分析模块5个部分组成。数据接收模块完成接口数据的接收。数据存储模块具备数据库存储以及导出至EXCEL表格保存2种功能,双备份确保数据不会丢失。数据查询模块包括EXCEL查询与数据库查询,其中EXCEL查询方式可以直接打开相应文件查看,也可以将数据导入软件中进行查看。数据显示模块包括表格实时记录与图形动态显示,其中图形动态显示能够将所测量数据全部显示且画面不会出现迟滞现象。数据分析模块是利用统计学原理对所测量的数据作出分析。

3软件各功能模块的具体实现

3.1数据接收模块

3.1.1数据接收接口①计算机若有RS-232串口,则可用RS-232串口线连接长距离α测量系统与计算机,并在计算机端通过SerialPort类完成串口的相关设置(端口号、波特率等),即可实现串口通信。②计算机若无串口而只有USB接口,则需要由RS-232转USB接口线支持。转接线一端是RS-232接口,用于连接长距离α测量系统;另一端是USB接口,用于连接计算机,在网上下载相应的驱动程序并安装,即可在计算机端虚拟出一个串口。对于虚拟串口的相关信息的获取有两种方式:一种是通过查看设备管理器;另一种是通过编程实现,WMI有一个类(Win32_PNPEntity)可以返回“设备管理器”中所有设备的信息[7],通过虚拟串口的标志符“ProlificUSB-to-SerialCommPort”进行字符串搜索,即可定位到设备管理器信息中的虚拟串口,最后通过字符串操作提取出端口号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所示。从串口接收到数据后存入队列,当队列不为空时,即从队列中取出首字节,判断其是否为数据包的标志字节“0x42”,若不是,继续取出下一个字节进行判断,直至取到“0x42”;然后从队列中取出连续的4个字节(高位在前),即完成一个完整数据包的获取;最后通过进制转换算法将这4个字节数据转换得到一个十进制数据,即为最后的结果。

3.2数据显示模块

3.2.1表格实时记录在获取数据并转换为十进制结果后,需要将数值进行前端显示,在此采用DotNet自带的DataGridView表格控件对数据进行实时记录。通过控件提供的方法Insert(行索引,当前时间,测量值)将数据插入到行索引处,并调用Refresh()方法即可显示新插入的数据。

3.2.2图形化动态显示为了直观地了解测量结果的增减变动情况,软件添加了图形显示的功能。设计时有三种方案。第一种方案采用商业的报表开发工具内含的统计图表功能,其优点是功能全面,缺点是商业控件是收费的,会增加软件的开发成本;第二种方案是采用DotnetCharting图形控件,其优点是控件免费,水晶式效果炫目,图表效果好;缺点是性能稍差、不支持缩放;第三种方案是采用ZedGraph图形控件,可用于创建折线图、饼图、柱状图,其优点是控件免费并且代码开源,可以修改代码以适应具体的需求,性能较好,支持缩放和拖动功能;缺点是图表效果稍差。由于软件是需要对实时数据进行显示,对性能要求较高,因此采用第三种方案。ZedGraph图形控件绑定了PointPairList数据集,实现时,指定该数据集显示的图样形式为折线图,当DataGirdView表格中有数据更新时,将更新的数据点(时间,测量值)添加至该数据集,并调用坐标适应方法AxisChange()与更新方法Refresh(),即可在图形面板上动态地显示测量结果的变动的情况[10]。

3.3数据存储模块

3.3.1数据库存储软件采用SQLite数据库对数据进行存储,该数据库无需任何初始化配置文件,无安装卸载过程,也不存在服务器实例的启动与停止,操作方便、易于维护。数据存储结构的设计有两种方案。一种方案是将需要存储的信息(测量起始时间、测量时间间隔、电流测量值等)存储在一个表中。其优点是表设计简单,查询操作的编程容易;缺点是存在数据冗余。另一种方案是根据表中数据的关系,设计出不同的表,用于存储不同的数据。其优点是减少数据冗余,优化了数据表;缺点是设计复杂。为了使数据存储更有效率,设计中采用第二种方案。根据所需存储的信息,设计的数据库E-R图如图4所示。其中,测量信息表中的内容包括测量起始时间、测量结束时间、测量用时、测量时间间隔等,目标电流记录表与本底电流记录表是根据长距离α测量系统所测的不同内容作出的相应记录。

3.3.2EXCEL表格保存为避免测量数据发生丢失,除采用数据库存储外,还通过将DataGridView表格数据导出至EXCEL表格的方式进行保存。实现时,新建EXCEL工作表,并将DataGridView表格中的数据一行一行地写入工作表中[11]。需要特别注意的是,每一次的导出操作,在新建EXCEL工作表后都会创建EXCEL.EXE进程,所以在写入操作完成之后,需要销毁EXCEL.EXE进程,否则,随着导出操作次数的增加,该进程会不断地消耗内存。

3.4数据分析模块长距离α测量系统测得的电流值本质是由α粒子衰变得来,理论上,对放射性核衰变的测量结果满足正态分布规律,每次测量值总是在其平均值上下涨落[12]。因此,为了掌握所测数据是否可靠,在软件中加入对数据的统计分析功能,即计算出一组数据中每个数据所出现的频率,通过ZedGraph图形控件绘制出这组数据的频率直方图,再与正态分布曲线作对比,可直观地看出这组数据是否近似满足正态分布;将这组数据置信区间(N珚±σ,N珚±2σ,N珚±3σ)的实验概率与理论概率进行比较,综合分析所测数据的可靠性。

4软件测试

为测试软件各功能模块的实现情况以及运行的稳定性,设置测量时间间隔为1s,总耗时4h,共计接收14402个数据点,测试得到的效果图如图5所示。图5(a)展示了测量数据的图形化动态显示;图5(b)展示了测量数据的表格记录过程;图5(c)是对这次测量数据所做的统计分析,在图中除了给出频率直方图与正态分布曲线的比对之外,还列示了各类指标数据(平均值,均值等)。根据这些数据,可得到该组测量数据的置信分布情况,如表1所示。通过对图样中频率直方图与正态分布曲线的对比,并考虑表1中试验概率相对于理论概率的偏差程度,可知,这组数据近似满足正态分布,可靠性较高。从测试结果来看,软件满足了设计的要求,各功能模块能够有效地工作且运行稳定。

5结束语

针对目前α测量数据采集软件所存在的不足,本文设计了一种长距离α测量系统实时数据采集软件。该软件融合了RS-232串口与RS-232转USB接口两种方式,能够自动识别接口并进行相关设置,并通过ZedGraph图形控件实现了实时数据的动态显示;采用SQLite数据库与Excel表格对数据进行双备份,通过对存储结构的设计,优化了存储效率;此外,运用统计学知识对测量数据进行分析,判定了该组数据的可靠性。最后,通过测试实例,验证了所设计软件的实用性及稳定性。

作者:刘瑶 庹先国 郑洪龙 单位:西南科技大学国防科技学院