- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabVIEW和TCP的数据采集系统设计与实现
摘 要: 针对低成本和远程控制的数据采集的需求,以LabVIEW为平台开发了一套数据采集系统,通过TCP连接实现PC机LabVIEW图形化人机界面软件与数据采集设备的通信,具有参数设置、数据采集和存储以及数据分析等功能。该系统操作简单,设置简便,功能实用,成本较低。实验结果表明,系统具有良好的可靠性和稳定性,是进行数据采集的有力工具。
关键词:数据采集; LabVIEW; TCP; 人机界面
随着科学技术的迅速发展,越来越多的数据采集仪器设备被应用于测量和测试各种参数信息。然而,科学技术的飞速发展,也导致旧的仪器设备越来越难于满足新技术所需测量的参数及其所需达到的测量指标。而开发新的仪器设备不仅存在开发周期长、测试效率低等问题,还大大增加了测试成本。这些都是传统仪器存在的难以避免的缺点[1]。
由美国国家仪器有限公司(NI)提出的虚拟仪器技术很好地解决了以上问题。它推出的图形化编程语言LabVIEW提供了很多外观与传统仪器类似的控件,采用数据流编程方式[2],在程序界面设计、编写代码和实现功能等都采用了图形化方式,被广泛应用于航空、汽车、通信和过程控制等领域[3]。本文提出了使用LabVIEW虚拟仪器技术来设计数据采集系统软件平台,解决了测试成本高、测试效率低、系统开发时间长等几个关键问题,同时它还具备远程控制、数据采集、数据分析等功能。
1 系统设计思想
完整的数据采集系统由硬件和软件两部分构成。硬件部分如图1所示,主要完成数据的采集工作[4]。软件部分主要由计算机系统软件和软件开发平台组成,主要完成数据的读取、显示和分析工作。系统采用LabVIEW软件进行编程设计,首先作为服务器端的PC机通过TCP通信协议经RJ45网络端口发出命令,对连接客户端数据采集设备的无线通信信道进行工作状态检测,随后对工作正常的设备的数据采集卡进行参数设置,读取TCP通信传输过来的数据后显示波形,同时以二进制文件格式存储到指定的文件路径中,完成有用信息提取、数据处理和分析等工作,从而实现系统远程控制及数据采集的功能。
2 系统设计
2.1 开发工具和关键技术
系统以LabVIEW软件为开发平台,采用TCP协议实现Socket通信。
LabVIEW集成了丰富的数据采集、存储、分析、显示等工具包,内置了多种通信协议的标准库函数,提供了强大的传统程序调试工具和外部程序接口能力[5]。利用LabVIEW设计开发的数据采集系统,在实际开发中利用封装好的VI函数,可实现PC机RJ45网络接口与LabVIEW的通信,从而替代了NI公司配备的价格高昂的数据采集卡,大大降低了设备成本。
TCP协议是一个面向连接的传输控制协议,同时具有顺序传递、流量控制、拥塞控制、差错控制等机制,能够实现可靠的连接服务,为数据的无差错传输提供了保障[6]。
Socket技术最初是由加州大学Berkeley分校开发的,是用于两个基于TCP/IP协议的应用程序之间相互通信的网络通信接口(API)。采用Socket技术连接时,发起呼叫连接请求的一方为客户端,接受呼叫连接请求的一方为服务端。连接过程可以分为三个步骤:服务器监听即服务器处于等待连接的状态,实时监控网络状态;客户端向服务器端Socket提出连接请求;连接确认即服务器端Socket监听到连接请求后响应请求。Socket技术能有效地支持不同应用程序对数据的同时应用以及多个应用程序之间的数据交互,实现不同机器、不同语言、不同进程间的实时数据交互和共享[7]。
2.2 系统的软件结构设计
采集系统主要需要实现以下功能:(1)工作状态检测,即对选定的数据采集设备(客户端)通信信道进行的工作状态检测;(2)参数设置,包括对采样频率、采样点数、放大倍数等参数的设置;(3)读取数据,并显示波形及频谱分析图;(4)读取已存储的数据文件;(5)对已采集到的数据提取有用或感兴趣部分并保存; (6)数据分析处理。软件结构图如图2所示。
3 功能实现
数据采集系统以LabVIEW为设计平台,其图形化人机界面的特点为人机交互提供了便捷[8],同时,其强大灵活的功能特点使得实现信道工作状态检测、硬件设备参数设置、数据读取(采集)、波形显示、频谱分析、有用信号提取和数据分析处理等功能成为可能。
3.1工作状态检测功能
工作状态检测模块的作用是,在进行数据采集之前进行准备工作,其目的一是检测数据采集硬件设备是否正常工作,二是检查无线通信信道是否畅通。由于在特定的测试环境中可能同时采用多套无线通信的数据采集设备,因此根据TCP协议,设定PC机为服务器端,数据采集设备端设为客户端。进行状态检测时,先通过复选框选择需检测的设备,点击“检测”按钮后,PC机向客户端发送状态检测命令,通过接收到的反馈信息或者连接超时信息来判定设备工作状态。
3.2 参数设置功能
参数设置模块的功能是通过LabVIEW的TCP子VI,可选择地对数据采集设备发送参数设置控制指令,这些参数中包括采样频率、采样点数、采样时间和放大倍数等,同时,参数设置模块中还包含了对无线通信模块的控制指令,其中包括断电、清除备份、重启等功能。通过软件中的TCP通信程序,参数设置模块实现了对数据采集设备的远程控制,大大提高了系统自动化程度,为特殊环境中的数据采集提供了可能。
3.3 数据读取功能
数据读取模块的程序框图如图3所示。数据读取模块的作用是向下位机发送开始采集数据的命令,并且读回已采集到的数据。LabVIEW为用户提供了封装好的TCP VI函数,使用时服务器端TCP VI需设置指定的监听端口,客户端TCP VI则需设置要与其建立连接的地址和远程端口号。根据Socket技术,其TCP通信流程包括:作为服务器端的PC机先对指定的端口监听并处于等待连接状态,作为客户端的数据采集端向服务器端被监听的端口发出连接请求后,PC机响应,先向客户端发出数据采集命令,再读取客户端反馈的表示确认握手成功的信息后,读取文件是否为加密文件的标志位,读取文件数据大小信息,最后读取数据,完成后关闭TCP。
当所采集的数据量较大时,无线传输所需要的时间也会相应增加,为减少时间和数据存储开销,数据采集端对数据进行了压缩。相应地,服务器端的采集系统也需进行解压工作。为实现解压缩功能,在程序中使用了执行系统命令VI(System Exec.vi), 嵌入执行软件7z.exe的解压缩命令,达到了数据解压缩的目的。
3.4 有用信号提取功能
由于在所采集到数据中,有用信号或感兴趣部分只占所采集到的信号中的一部分,为了方便波形的观察和数据的分析处理以及节省内存资源,通常会对信号进行截取。程序中通过两个游标位置可确定信号感兴趣部分的范围,截取并保存范围内的波形,即可实现系统有用信号提取功能。
3.5 波形显示功能
LabVIEW中的波形图控件本身包含了一些小的辅助控件,其中包括图形工具、游标图例、标尺等。由于游标图例的显示影响系统界面的整体效果,程序中通过编程达到了显示游标坐标和通过输入数值重新定位游标的效果,从而替代了游标图例。为初步判断所采集到的信号的正确性,系统对数据进行了简单的频谱分析。同时,由于波形图控件没有撤销重做的功能,程序中通过捕捉标尺范围的变化,并将改变前的标尺范围值入栈保存来实现撤销功能。 撤销功能模块的部分程序框图如图4所示。
3.6 数据处理功能
为使去噪效果较理想,数据处理模块中提供了巴特沃斯、切比雪夫、平滑滤波、中值滤波等多种滤波方式以供选择。此模块还对滤波后信号的频谱和功率谱进行分析,并进行特征值提取、均值和峰值计算、基线估计、温压的动态特性修正等工作。
4 系统应用效果验证
为了测试系统的可靠性,将PC机的RJ45口与数据采集设备相连,运行并对系统进行工作状态检测和参数设置,系统数据采集的运行界面如图5所示。试验证明,系统采集到的信号与下位机所发送的2 Mb的三角波一致,可见数据采集系统能够稳定、可靠、准确地工作。
在实际项目开发中,系统以LabVIEW软件为开发平台,充分利用了LabVIEW的强大功能,通过TCP连接实现了PC机与数据采集设备的通信,实现了采集卡参数的远程设置,完成了远程数据的采集、显示、存储、处理等,自动化程度较高,具有较高的可靠性和稳定性,具有实际应用价值。此数据采集系统开发中取得的经验,可在其他数据采集等测控系统中应用推广。
参考文献
[1] 曾剑,周剑扬.基于LabVIEW的SFP光模块测试平台的设计与实现[J].电子技术应用,2011,37(4):67-69.
[2] 陈锡辉,张银鸿. LabVIEW 8.2程序设计从入门到精通[M].北京:清华大学出版社,2007.
[3] 张东,施奇峰.基于LabVIEW和TCP的数据采集系统的开发及应用[J].冶金自动化,2011,35(2):36-40.
[4] 董刚刚,吴建.基于CPLD+FLASH的多通道测试记录仪[J].光电技术应用,2011,26(4):8-10.
[5] 陈学庆,房小溪.LabVIEW图形化编程与实例应用[M].北京:中国铁道出版社,2005.
[6] 谢希仁.计算机网络[M].第5版.北京:电子工业出版社,2008.
[7] DONAHOO M J, CALVERT K L. TCP/IP Sockets编程(C语言实现)[M]. 第2版. 陈宗斌,等译.北京:清华大学出版社,2009.
[8] 李全江.虚拟仪器设计测控应用典型实例[M].北京:电子工业出版社,2010.
上一篇:基于LabVIEW和PXI技术的核电站数字地震监测系统
下一篇:在受控生产环境下使用LabVIEW、NI
TestStand和PXI测试医疗血糖仪和胰岛素输送系统