基于Labwindows CVI的仪器测试系统
2017-04-18张儒
张儒
【摘 要】为降低测井仪器的研发和测试成本,实现仪器的控制和数据采集,该设计是基于LabWindows/CVI的数据采集系统。通过LabWindows/CVI的交互式C语言开发平台,设计了上位机的测试界面,实现上位机与仪器间的通讯控制和数据采集。实验结果表明,该界面完成采集仪器数据的功能,很好地满足了仪器调试的需要,可广泛应用于测井领域。
【关键词】LabWindows/CVI;仪器采集;界面
【Abstract】The system based on LabWindows/CVI is designed to reduce the cost of R & D and test,to realize the instrument control and data acquisition.Based on the interactive C language development platform of LabWindows/CVI,the test interface of upper computer is designed,which can realize the communication control and data acquisition between PC and instrument.The experimental results show that the interface can achieve the function of data acquisition, and it can meet the need of instrument debugging.
【Key words】LabWindows/CVI;Instrument Acquisition;Interface
1 Labwindows CVI的应用
LabWindows/CVI是NI公司推出的交互式C语言开发平台,用于构建可靠的测试和测量方案。LabWindows/CVI将C语言平台与数据采集分析进行有机结合,提高了生产制造效率,用于制造测试、通讯、设计验证等领域。交互式开发平台,具有强大的函数库,创建数据采集和仪器控制的应用程序;利用软件工具进行数据采集、分析和显示;为其他程序开发C目标模块、动态链接库、C语言库等。LabWindows/CVI是完全集成的开发环境,针对GPIB、PXI、VXI和数据采集板卡为基础的测量系统。编程方面,主要采用事件驱动方式与回调函数方式。CVI的每个函数提供一个函数面板,进行交互式编程,减少代码编辑和程序语法错误,提高了可靠性、兼容性和编程效率。
为降本增效,在测井仪器的研发测试和生产试验阶段,使用CVI软件做上位机的测试界面。实现仪器的命令下发、数据采集、波形显示和文件保存等功能。
2 系统界面组成
该设计用于密度仪器的测试,给仪器发送实时指令,接收仪器的数据,并对接收的数据进行计算处理、图形显示、数據保存等。该测试系统界面分为四个部分组成,数据接口模块、数据处理模块、图形显示模块、文件处理模块。如图1所示,是该设计的整体测试框图。
数据接口模块,完成上位机与仪器的通讯,发送命令,接收数据。仪器与上位机之间采用RS232通讯方式。该设计中测试的仪器,数据量和数据速率均较低,RS232可满足测试需求。USB接口是计算机外设接口的发展趋势,在仪器与上位机之间使用RS232转USB转换盒,便于测试界面的使用和升级维护。
数据处理模块,根据仪器测量原理,对接收的仪器数据进行计算处理。图形显示模块,对部分测量数据进行图形显示,使得测试结果更加直观。文件处理模块,对重要的测量数据进行保存。
3 数据接口模块
本设计采用RS232通讯方式,CVI提供的RS232函数库包括以下函数:串口打开/关闭,串口输入/输出,串口控制,串口状态查询,串口事件处理函数。首先打开一个串口,并针对设置的参数进行配置,然后利用该串口发送和接收数据,最后在程序结束之前关闭该串口。
1)按照需要编写软面板,面板见图1。通过面板上的控件输入配置参数,包括串口号、波特率、校验方式、数据位数、停止位数。
2)自动生成程序框架,并添加源代码。
3)利用串口收发数据
本系统中,串口收发数据通过点击各控件完成。发送命令时,调用发送回调函数SendCmd(short *cmd, int len);接收数据时,调用接收回调函数RcvData_Commu(int Len)
4)关闭串口
程序退出前,必须关闭串口。
4 图表处理模块
为使测量结果更加直观,重要的测量信号(如采集的谱数据),用图形控件表示。CVI中的图形控件有三类,曲线图控件,带状图控件和数字图控件。本设计中选用曲线图控件,用于显示谱数据的信号波形和计算结果。
显示波形时,需要做数据累加处理,谱图在累积5次后清零。本系统中的谱图数据,采用一维数组,数据定义为totalSpecPlot_NS[256]和totalSpecPlot_FS[256]。首先把采集数据进行累加,显示谱图数据前,先清除原有的波形图,即:DeleteGraphPlot(caliHandle, CALIPANEL_SPECTRUM,-1,VAL_IMMEDIATE_DRAW);然后判断累加次数,达到累加次数后,累积的波形数据清零。最后显示当前的累积谱图数据,使用画图函数PlotY()。
本系统中需要配置和读取仪器的参数,参数的项数比较多,适合选用Table控件。参数配置界面中,一组参数的控制和读取用到两个Table控件。一个Table控件用来读取并显示仪器的当前配置参数,是只读模式,无法修改。读取仪器的配置参数使用GetTableCellVal ()函数;另一个Table控件,用来设置仪器的配置参数,是可写模式, 可以修改。设置仪器的配置参数使用SetTableCellVal()函数。
5 文件处理模块
仪器采集到的刻度数据,需要进行计算并保存。待存储的数据包括日期、时间、仪器信息、采集的原始谱数据、计算得到的均值和方差等信息。以下是本设计中的文件处理流程,包括存储文件的打开,数据的写入,文件的关闭。
1)选择存储文件的路径、文件名、格式等信息,调用FileSelectPopup()函数;
2)打开要存储的文件指针,调用OpenFile()函数;
3)获取当前的日期,时间信息和刻度数据,写入文件,调用WriteLine()函数;
4)待存储数据写入完毕后,关闭文件,调用CloseFile()函数。
6 结论
图2所示为仪器的采集控制界面,图2左侧上半部分串口的配置界面,包括串口配置参数,仪器的配置和调试信息。图2左侧下半部分为仪器状态信息。图2右侧下半部分是仪器的采集和测试界面,分6个Tab页进行采集控制,为存储信息、采集信息、通讯信息、参数配置、谱图显示、刻度界面。通过LabWindows/CVI测试界面,可以方便地应用CVI交互平台与上位机组成一个完整方便的测试应用,广泛的应用于测井仪器的研发和测试中。
【参考文献】
[1]王建新,隋美丽.LabWindows/CVI虚拟仪器测试技术及应用[M].化学工业出版社,2011.
[2]李江全.LabWindows/CVI数据采集与串口通信典型应用实例[M].电子工业出版社,2014.
[3]孙晓云.基于LabWindows/CVI的虚拟仪器设计与应用[M].2版.电子工业出版社,2010.
[责任编辑:田吉捷]