LabVIEW与数据采集2011\3\23数据采集系统的构成一个完整的数据采集系统(DataAcQuisition,DAQ)包括:传感器和变换器、信号调理设备、数据采集卡、驱动程序、硬件配置管理软件、应用软件和计算机。传感器和变换器直接将各种物理量转换成DAQ系统可采集的电信号。信号调理设备对采集的电信号进行放大、滤波、隔离等措施,将它们转换成易于读取的信号。采集设备将数据送到计算机中。常见的是插入式数据采集卡、基于PXI规范的数据采集装备;另外还有通过各种其他总线与计算机相连的外置式DAQ设备。NI公司提供了TraditionalNI-DAQ(传统NI-DAQ)和NI-DAQmx这两套自带的驱动程序。数据采集卡的功能一个典型的数据采集卡的功能有模拟输入、模拟输出、数字I/O、计数器/计时器等。因此LabVIEW中DAQ模板设计也围绕这4大功能组织①模拟输入是采集最基本的功能。它一般由多路开关(MUX)、放大器、采样保持电路以及A/D来实现,通过这些部分,一个模拟信号就可以转化为数字信号。②模拟输出通常是为采集系统提供激励。输出信号受数模转换器(D/A)的建立时间、转换率、分辨率等因素影响。③数字I/O通常用来控制过程、产生测试信号、与外设通信等。它的重要参数包括:数字口路数(line)、接收(发送)率、驱动能力等。一般的数字I/O板卡均采用TTL(transistortransistorlogic)电平。需要强调的是,对大功率外部设备的驱动需要设计专门的信号处理装置。④许多场合都要用到计数器,如精确时间控制和脉冲信号产生等。计数器最重要的参数是分辨率和时钟频率,分辨率越大,计数器位数越大,计数值也越高。基于LABVIEW的数据采集系统:LabVIEW8.5为用户提供了多种用于数据采集的函数、VIs和ExpressVIs。这些函数、VIs和ExpressVIs大体可以分为两类,一类是TraditionalDAQVIS,另外一类是操作更为简单的NI-DAQmx,这些组件位于函数模板中的MeasurementI/O,InstrumentI/O子模板中,如图所示:、其中最为常见的模板是位于MeasurementI/O子模板中的DataAcquisition和NI-DAQmxAcquisition两个子模板,如图所示:DAQVIs的功能模板LabVIEW中DAQVIs都包含在FunctionsDataAcquisitions子模板中。共包含6个子模板,每个子模板完成不同的数据采集任务。各子模板的主要功能如下:①AnalogInput子模板,完成模拟信号进行A/D转换,并采集到计算机;②AnalogOutput子模板,将计算机产生的数字信号进行D/A转换,并输出;③DigitalI/O子模板,用于控制DAQ设备的数字I/O功能;④Counter子模板,用于控制DAQ设备的计数器功能;⑤CalibrationandConfiguration子模板,用于校准和配置DAQ设备,用户较少用到该功能;⑥SignalConditioning子模板,将从温度传感器或应变片中采集的模拟电压信号转化为相应的应力单位或温度单位。LabVIEW中对于数据采集模块按照难易程度做了分类①简易VIs(EasyVIs)该行的四个模块执行简单的DAQ操作。它们可以作为单独的VI,也可以作为subVI来使用。这些模块可以自动发出错误警告信息,在对话框中你可以选择中断运行或忽略。但是比较复杂的应用需要使用下面的类型。②中级VIs(IntermediateVIs)简易EasyVIs相比,中级VIs具有更多的硬件功能,用户可以更加有效、更加灵活地开发应用程序。同时还有很多EasyVIs所不具备的特性,比如,通道时间的扫描速率、定时器、触发信号、标度和配置等等。中级VIs模块几乎可以组建所有的DAQ应用系统。③通用模入(实用函数模块)VIs(UtilityVIs)这里提供了三个常用的VIs,AIReadOneScan,AIWaveformScan,及AIContinuousScan。使用一个VI就可以解决一个普通的DAQ问题,方便但缺乏灵活性.④高级模入VIs(AdvancedVIs)这些VIs是NI-DAQ数据采集软件的界面,是上面三种类型VIs的基础。一般情况下,用户不需要直接使用这个功能。DAQVIs常用参数简介LabVIEW中通用DAQ参数的定义有:①设备号和任务号(DeviceIDandTaskID)在模拟I/O、数字I/O以及计数器VIs中,每个设备都有唯一的编号,在配置DAO设备时,编号由用户指定。输出参数TaskID是相同给特定的I/O操作分配的一个唯一的编号,贯串以后DAQ操作的始终。②通道(Channels)AnalogInput和AnalogOutputVIs中有一个输入参数叫通道(channels),用于指定DAQ读写操作的通道。数字I/O和计数器VIs中,也有类似参分别称为Digitalchanellist和counterlist。③通道命名(ChannelNameAddressing)当采用DAQChannelWizard配置DAQ卡的I/O通道时,可以在channels中输入一定物理意义的名称来确定通道的地址。在EasyVIs中,可以在channels参数的数组元素中的填写一个通道的名称,也可将多个通道的名称写在一个元素中,编号之间用逗号隔开。④通道编号命名(ChannelNumberAddressing)如果用户不使用通道名称来确定通道地址,那么还可以在channels中使用通道编号来确定通道的地址。可以将每个通道编号作为一个数组中的元素,也可以将多个通道编号写入一个数组元素中,编号之间用逗号隔开。⑤I/O范围设置(LimitSettings)LimitSettings是指DAQ卡所采集或输出的模拟信号的最大/最小值。一对最大/最小值组成一个簇,每个通道对应一个簇,多个簇形成一个簇的数组⑥采集数据的构成在多通道数据采集中,采集到的数据以二维数组的形式保存。即以行(row)或以列(column)的形式来组织二维数组中的数据。⑦扫描次数(NumbersofScantoAcquire)用户指定的一组通道进行数据采集的次数。⑧采样点数(NumberofSamples)对一个通道采样点的个数。⑨扫描速率(ScanRate)一秒内完成的一组指定通道数据采集的次数,它决定了一定时间内所进行数据采集次数的总合。构建单通道数据采集系统这套系统的硬件部分是多功能数据采集卡NI-PCI-6110,软件部分采用LabVIEW数据采集模块实现。首先新建一个空白VI,从函数模块中MeasurementI/O子模块中选取DataAcquisition子模块如图:从DataAcquisition子模块中的Analoginput模板中选取AIAcquireWaveform.vi置于后面板中:AIAcquireWaveform.vi的主要功能是实现单通道数据采集。它由如下四个重要的输入端口,分别是device(数据采集卡的器件编号)、channel(通道编号)、numberofsamples(采样点数量)以及samplerate(采样速率)。AIAcquireWaveform.vi的输出端口用于连接Waveform数据类型的控件。设置后的后面板如图所示:经过上面的简单设置,程序便可以对任意的devicenumber所对应的数据采集硬件的任意一个通道进行数据采集了,采集速率和采集的数据点个数由numberofsamples和samplerate决定。采集后的数据被实时显示在示波器窗口waveformgraph上面。在实际使用中,往往需要程序不仅仅做到数据显示,更要做到数据的保存和分析处理,因而我们还需对其进行修改以使得被采集的数据保存到计算机中,并进行实时的频谱分析。首先从waveform子模板中选取getwaveformcomponents函数,将获取的数据转换为一维数组,并从函数模板中FileI/O子模板中选取WriteToSpreadsheetFile函数,将其1Ddata端口与getwaveformcomponents函数输出数据端口Y相连,对采集的数据进行保存,如图:下面对采集的信号进行频谱分析,从signalprocessing子模块中选取SpectalmeasurementExpressVI,对其属性进行设置,取功率谱,加汉宁窗,如图所示:最终的后面板和前面半如图所示,该程序实现了单通道的数据采集、显示、保存以及分析处理。