1、LabVIEW与数据采集肖俊生2008.04.03内容与安排l虚拟仪器与LabVIEW简介l数据采集的相关介绍l数据采集设备的设置与测试lLabVIEW中的数据采集lLabVIEW中数据采集的扩展应用l介绍若干实例第一部分虚拟仪器简介 NI公司于20世纪70年代中期提出了虚拟仪器的概念。虚拟仪器是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统计算机仪器系统,是计算机技术与仪器技术相结合的产物,其基础是计算机系统,核心是软件技术。简而言之,虚拟仪器就是在开放架构的基础上创建用户自定义的测试系统。虚拟仪器大大突破了传统仪器在数据采集、处理
2、、显示、存储等方面的限制,是一个测试和自动化系统的高性能、低成本运载平台。虚拟仪器的构成 虚拟仪器与传统仪器的比较 l独立式传统仪器的基本框架类似于基于PC 机的虚拟仪器 l根本区别在于两者不同的灵活性灵活性,用户是否能够根据各自不同的需求对其进行修改和扩展 虚拟仪器的特点 l软件是虚拟仪器的核心l性价比高 l缩小了仪器厂商与用户之间的距离 l具有良好的人机界面 l具有方便、灵活的互联 l可靠性高 l具有开放性、模块化、可重复使用及互换性等特点 l维护、维修方便 什么是LabVIEWlLabVIEW是美国NI(National Instrument)公司推出的一种基于G语言(Graphics
3、Language,图形化编程语言)的虚拟仪器软件开发工具。lLabVIEW为虚拟仪器设计者提供了一个便捷、轻松的设计环境。利用它,设计者可以像搭积木一样轻松组建一个测量系统和构造自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。LabVIEW的特点与优点l图形化编程方式l提供丰富的数据采集、分析及存储的库函数l即提供传统的程序调试手段,同时提供独到的高亮执行工具,程序调试、开发更方便l包括了DAQ、GPIB、PXI、VXI、RS-232/485、USB在内的各种仪器通信总线标准的功能函数l提供大量与外部代码或软件进行连接的机制,如DLL、DDE、ActiveX等l强大的网络功能,支持常用网
4、络协议LabVIEW程序实例(前面板)输入控件显示控件按钮LabVIEW程序实例(后面板)生成函数第二部分数据采集的任务l数据采集系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机进行相应的计算和处理,得出所需的数据。与此同时,将计算得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。l数据采集系统性能的好坏,主要取决于它的精度和速度。模拟信号的数字化处理l数据采集的核心过程就是将连续的模拟信号转换成离散的数字信号l采样点太多,会占用大量内存单元;采样点太少,会使模拟信号的某些信息
5、被丢失,出现失真现象混叠干扰图中采样频率500Hz,5个正弦波的频率分别为100Hz,200Hz,300Hz,375Hz和400 Hz。因为100Hz,200Hz的信号频率小于fs/2,可以由离散信号还原出原始的正弦波连续信号。而300Hz,375Hz和400Hz的信号频率都大于fs/2,故离散信号重构原信号时形成了频率不同于原信号频率的信号,即混叠(aliasing)干扰。采样定理在进行信号采样时,需要遵循采样定理采样定理:设连续模拟信号X(t)的频谱为X(f),以采样间隔Ts采样得到的离散模拟信号为X(nTs),如果X(f)和Ts满足以下条件,离散信号X(nTs)可以完全确定频谱X(f)l
6、X(f)有截止频率(即最高频率)fh,即当|f|fh时,X(f)0lTs 1/2fh 或 fs 2fh 混叠的消除l由采样定理可知,如果要求不产生混叠干扰,首先应使被采样信号X(t)成为有限带宽的信号。为此,对不满足此要求的信号,在采样之前,使其先通过模拟低通滤波器滤除高频成分,使其成为带限信号。这种处理称为抗混叠滤波预处理。其次,应使采样频率fs大于带限信号最高频率fh的2倍,即fs2fh。l在实际工作中,考虑到实际的模拟低通滤波器不可能有理想的截止特性,在其截止频率fh之后总有一定的过渡带,故采样频率常常选为(34)fh,甚至更高。量化为了能用计算机处理信号,须将采样信号转换成数字信号,也
7、就是将采样信号的幅值用二进制码来表示,由于二进制码的位数是有限的,只能代表有限个信号的电平,故在编码之前,首先要对采样信号进行“量化”。量化量化就是把采样信号的幅值与某个最小数量单位的一系列整倍数比较,以最接近于采样信号幅值的最小数量单位倍数来代替该幅值。这一过程称为“量化过程”,简称“量化”。最小数量单位称为量化单位。量化单位定义为量化器满量程电压FSR(Full Scale Range)与2n的比值,用q表示,有:式中,n为量化器的位数,也就是采集卡的采样位数。量化误差l由量化引起的误差叫做量化误差(也常叫做量化噪声,因为它常与噪声有相同影响)。l量化误差的最大值为q,它是一种原理性误差,
8、只能减小而不能完全消除。l由前面q的定义式可以看出,减小量化误差可以通过两个途径:u减小FSR,即根据输入信号的大小,设置合理的采集卡通道的输入信号范围;u增大n的值,即选择采样分辨率高的采集卡。信号分类l在数据采集应用领域,常将被测信号分为数字信号和模拟信号(也称连续时间信号)。数字(二进制)信号分为开关信号或脉冲信号。模拟信号可分为直流、时域、频域信号,如下图所示。模拟信号的连接方式 l接入数据采集设备的信号根据参考点的不同可以分为接地信号和浮动信号两种类型。接地信号接地信号:就是以系统地(如建筑物的地)为参考点的信号,也称参考信号。因为接地信号用的是系统地,所以与数据采集设备是共地的。最
9、常见的接地信号源是通过墙上的接地引出线接入建筑物地的设备,如信号发生器和电源。一个不与任何地(如大地或建筑物的地)连接的电压信号称为浮动信号浮动信号,浮动信号的每个端口都与系统地独立。一些常见的浮动信号源有电池、热电偶、变压器和隔离放大器等。测量系统分类-差分测量系统信号的正负极分别与一个模拟输入通道相连接。具有仪器放大器(Instrumentation Amplifier)的数据采集设备可配置成差分测量系统。一个理想的差分测量系统能够精确测量(+)和(-)输入端口之间的电位差,并将共模电压完全抑制掉。需要注意需要注意,若输入共模电压超过允许范围,将会降低测量系统的共模抑制比。为了避免测量误差
10、,需要限制信号地与数据采集卡的地之间的浮地电压。测量系统分类-参考地单端参考地单端测量系统所有信号均使用同一个参考电压或接地电压,也称为接地测量系统。在接地测量系统中,被测信号一端接模拟输入通道,另一端直接与系统地AIGND相连。测量系统分类-无参考地单端参考地单端测量系统所有测量都有一个共同的参考源,但此类参考电压可根据测量系统的地面实际情况而有所不同。在无参考地单端测量系统中,信号的一端接模拟输入通道,另一端接一个公共参考端(AISENSE),但这个参考端电压相对于测量系统的地来说是不断变化的。一个单通道的无参考地单端测量系统和一个单通道的差分测量系统是一样的。测量系统的选择 单端输入以一
11、个共同点为参考点,这种方式适用于输入信号为高电平(大于1V)且信号源与采集端之间的距离较短(通常小于5m)的应用场合。如果不能满足上述条件,则需要使用差分输入。在差分输入方式下,每个输入可以有不同的参考点,并且有效地消除了共模噪声的影响,所以差分输入差分输入方式的采集精度较高。连接方式连接方式接地信号接地信号浮动信号浮动信号差分差分参考地单端参考地单端无参考地单端无参考地单端数据采集系统的组成模拟多路开关l模拟多路开关可以分时选通来自多个输入通道的某一路信号,使得在一个特定的时间范围内,只允许一路模拟信号输入到A/D转换器。因此,在多路开关后的单元电路,如采样/保持电路、A/D及处理器电路等,
12、只需一套即可,这样可以降低成本,减小设备体积。l多路开关从一个通道切换到另一个通道时会发生瞬变现象,使输出产生短暂的尖峰电压。l模拟多路开关的源负载效应误差源负载效应误差和串扰串扰等因素对检测精度有较大的影响,尤其是在信号源内阻较大的时候,因此,信号源的内阻应该尽可能的小信号源的内阻应该尽可能的小。数据采集卡的功能功功 能能描描 述述模拟输入模拟输入数据采集卡最基本、最常用最基本、最常用的功能,将模拟电压信号通过A/D转换成数字信号。常用于检测温度、压力、流量等传感器的输出电压信号。模拟输出模拟输出通过D/A转换将自定义的数字信号转化成模拟信号输出。常用作信号发生器为其他系统提供激励。数字数字
13、I/O处理二值信号,多数采用TTL电平标准。通常用于获取/设置数据采集系统外围设备的状态,可以利用其与外围设备进行通信,还能驱动步进电机等。计数器计数器实现定时功能,或生成数字脉冲信号,以驱动步进电机一类的执行元器件。也能对脉冲信号计数,如测量数字脉冲信号的频率等。采集卡基本参数l以NI公司的PCI-6221多功能采集卡为例,介绍采集卡的一般参数:u模拟输入:16路单端/8路双端,输入范围:10Vu分辨率:16位 u采样频率:最高250kS/s u模拟输出:2路,12位,833kS/s,输出范围:10V u数字I/O:8路 u计数器:2路,24位,基准时钟20MHz第三部分数据采集设备的设置与
14、测试测试与自动化资源管理器(MAX)第四部分为什么选择LabVIEW做数据采集?lLabVIEW是一种面向工程师的编程语言,采用图形化编程,多线程同步运行,只需要连线就能进行软件的编制。提供了丰富的函数库和控件,搭建软件的界面非常迅速,一个熟练的工程师可能只需要几分钟就能搭建一个数据采集系统。lNI的数据采集卡提供了对LabVIEW丰富且完备的支持,驱动函数都是在底层的基础函数上进行了高度封装,用户不需要对采集卡具体工作有深入的了解,只要掌握这些驱动函数输入/输出端口的意义,就能进行数据采集开发。LabVIEW中的模拟输入形形 式式描描 述述单点采集单点采集采集设备从一个或多个输入通道分别获取
15、一个信号值,然后LabVIEW立即返回这个值,这是一个即时、无缓冲的操作。效率和灵活性低。波形采集波形采集在计算机内存中开辟一段缓冲区,设备将采集的数据存入其中,当指定的数据采集完成后,LabVIEW再将缓冲区中的数据一次读出,此时输出的是一段有限长度的信号波形。连续采集连续采集开辟一段循环缓冲区,设备连续采集数据并将数据向缓冲区中存放的同时,LabVIEW依据设置,将缓存中的数据一段一段地读取出来。最常用的采集方式。连续模拟输入连续模拟输入l需要注意注意,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下3个参数来达到上述
16、要求:ubuffer size(缓存的大小)uscan rate(采样速率)unumber of scans to read at a time(每次读取的样本数)l连续采集的程序模型为:AIConfigAIStartAIReadDataProcessAIClear循循 环环连续模拟输入程序实例模拟输入的讨论l对于一些复杂的采集任务,可以采用一些特殊的采集方式,例如采用外部时钟采集、触发采集等;l触发采集种类很多,根据触发信号类型可以分为数字信号触发和模拟信号触发;根据触发形式可以分为边沿触发和窗口触发;根据触发功能可以分为启动触发、暂停触发和参考触发;l不是每个数据采集卡都具有这些特殊采样功
17、能的,使用前要查看采集卡的使用手册;l在模拟输入采集系统中,实现数据采集并不复杂,数据处理与分析才是难点。LabVIEW中的模拟输出形形 式式描描 述述单点模出单点模出将一个数据直接写到模拟输出通道,产生一个模拟直流信号,是一个即时、无缓冲的操作波形模出波形模出在计算机内存中开辟一段缓冲区,LabVIEW将一段数字波形写入缓冲区中,然后设备将缓冲区中的数据通过DAC输出,就得到一段模拟波形连续模出连续模出开辟一段循环缓冲区,LabVIEW将数字波形写入缓冲区中,设备连续将缓冲区中的数据通过DAC输出。最常用的采集方式。连续模拟输出l有两种形式的连续模拟输出,第一种就是在模拟输出之前,将数字信号
18、写入缓冲区中,然后设备连续不断地将缓冲区中的数据通过DAC重复输出。这种连续模出执行效率很高,但是需要写入的数字信号必须是整周期的,不然输出模拟信号将会不连续,在使用上不够灵活。AOConfigAOStartAOWriteAOClear循循 环环AOWriteDigitalSignalNothing连续模拟输出l第二种方式就是在设备将缓冲区中数据输出的同时,不断地将数字信号写入缓冲区中,这种方式在编程上比较复杂,但是灵活性比较高,只要保证这一次写入缓冲区的数字信号和上次是连续的就行,不需要每次写入的信号是整周期的。AOConfigAOStartAOWriteAOClear循循 环环AOWrit
19、eDigitalSignalDigitalSignal长度为其1/2LabVIEW中的数字I/Ol一般情况下,数字I/O按照TTL逻辑电平设计,其逻辑低电平在0到0.7V之间,高电平在3.4到5.0V之间;l在硬件设备上,多路路(Line)数字I/O组成一组后被称为端口端口(Port)。一个端口由多少个数字通路组成是依据其设备而定的,在多数情况下8个数字通路组成一个端口;l在LabVIEW中对数字I/O的操作非常简单,可以对整个端口进行操作,也可以对端口中的一路或多路同时进行操作。LabVIEW中的计数器l可以设置对SOURCE输入端口由高到低或由低到高的信号状态进行计数;可以设置内部计数寄存
20、器的计数方式为递增或递减;lGATE端口的输入控制计数器的计数操作,可以设置为以下几种门限工作方式:高电位计数、低电位计数、上升沿触发计数、下降沿触发计数,以及无门限方式;l可以使用OUT口发生多种类型的波形,或者用于计数器的串级使用中,从而增大计数器的量程。如左图为计数器的简化模型:一个SOURCE输入口、一个GATE输入口、一个OUT输出口,以及一个计数寄存器计数器的频率测量方方 法法描描 述述Low Frequency with 1 Counter 将待测信号输入计数器的Gate端,Source端引入内部的恒定时基,这样在信号的一段周期内对时基进行计数,从而可得到信号的周期,然后求周期的
21、倒数后就得到了频率值。此方法只用一个计数器,适用于低频信号的测量。Large Range with 2 Counters 先将待测信号输入第一个计数器的source端,进行降频处理,然后再输入到第二个计数器的Gate端,进行周期测量,求其倒数后得到频率值。此方法适用于频率范围比较大的信号的测量。High Frequency with 2 Counters 使用两个计数器,首先通过第一个计数器来生成一个由measurement time指定周期的信号,输入第二个计数器的Gate端,然后将待测信号输入第二个计数器的Source端,即在一个已知周期内数待测信号的周期数,这样再除一下即可得到频率值。此
22、方法适用于高频信号的测量。并行安排l多功能DAQ设备上的模拟输入、模拟输出、数字I/O和计数器等功能是能够同时运行的,可以在程序中并行安排这些功能,还能实现它们的同步。l如下图,是一个连续采集和连续模拟输出并行安排的程序,利用传递error信息的数据线安排并行的执行顺序。第五部分对外接口与调用NI采集卡采集卡非非NI采集卡采集卡LabVIEW其它环境,其它环境,如如VC、VB传统DAQ或DAQmx驱动创建DLL调用DAQmx C API调用DLL二次封装DLL基于网络的远程数据采集 l要实现远程数据采集,可以通过网络使多台计算机(客户机)共享一台计算机(服务器)上的DAQ设备,这样就不必在每台
23、客户机上都安装DAQ设备,只需要在服务器上配置DAQ设备即可,整个远程数据采集系统的组成如下图所示。远程采集的实现方法l远程设备访问(RDA)技术 NI公司专为远程数据采集而提供的一项技术,它可将DAQ设备在网络上共享,通过一定的设置后,在客户机上可以控制该远程设备,并且使用起来和本地的DAQ设备并无差别。lDataSocket技术 NI公司提供的一种新的实时数据传输技术,可用于一个计算机内或网络中多个应用程序之间的数据交换。它克服了传统TCP/IP传输协议需要较为复杂的底层编程、传输速率较慢(特别是对动态数据)等缺点,大大简化了实时数据的传输问题。l其它技术 可以通过TCP/UDP网络协议、
24、远程面板(Remote Panels)等实现远程数据采集,各种方法各有优缺点。基于声卡的数据采集l声卡作为语音信号与计算机的通用接口,其主要功能就是经过DSP(数字信号处理)音效芯片的处理,进行模拟音频信号与数字信号的转换,因此,从其功能上来看,声卡也可以作为一块数据采集卡来使用。声卡价格低廉,现在一般的电脑上都已经集成了声卡,用其取代常规的DAQ设备是一种很好的选择,而且LabVIEW中提供了专门用于声卡操作的函数节点,所以用声卡搭建数据采集系统也是非常方便的。声卡的技术参数 l声卡的技术参数主要有两个:采样位数采样位数和采样频率采样频率。l声卡采样位数的概念和数据采集卡的位数概念是一样的,
25、是指将模拟信号转化为数字信号的二进制位数,反映了对信号描述的准确程度。位数显然是越高越好,目前市面上几乎所有声卡的主流产品都是16位,而一般数据采集卡大多只是12位,所以从这方面来讲,声卡的精度是比较高的。l声卡的采样频率一般不是很高,因为它只是处理音频信号,目前最高采样率为44.1KHz,少数能达48KHz。对于普通声卡,采样频率一般设为4挡:44.1KHz、22.05KHz、11.025KHz和8KHz。l另外,还要考虑声卡的频率响应,一般声卡只是对20Hz20KHz的音频信号有比较好的响应,对这范围之外的信号有很强的衰减作用。对于测试,信号频率在50Hz10KHz范围内比较好。声卡的硬件
26、接口 l对于不同的声卡,其硬件接口有所不同,对于最普通的集成声卡,一般有3个接口,从外观上区分,粉红色的为Mic In,草绿色的为Wave Out,浅蓝色的为Line In。lMic In接口只能接受较弱的信号,易受干扰,对于数据采集,一般常用Line In接口,它可接受幅值约不超过1.5V的信号,这两个输入接口内部都有隔直电容,直流或频率较低的信号不能被声卡接受。l用集成声卡做数据采集时,被测信号应从浅蓝色的Line In口引入,输出信号应从草绿色Wave Out口输出。Line InMic InWave Out声卡采集的实例声卡采集注意事项l声卡具有两个声道,关于采集通道,应该尽量选择立体声双声道采样,因为单声道采样,左右声道都相同,而且每个声道的幅值只有原信号幅值的1/2,而用立体声采样时,左右声道互不干扰,稳定性好,可以采两路不同的信号,而且采样信号的幅值与原幅值相同。l声卡不提供基准电压,不论A/D还是D/A,都需要用户对信号进行标定。l声卡测量频率范围较窄,不能测直流信号,只能测量音频范围内的信号,而且其增益较大,不能直接测量强度较强的信号。第六部分虚拟信号发生器虚拟信号发生器程序框图虚拟示波器虚拟示波器部分程序框图光纤定位单元的驱动电路检测系统光纤定位单元的驱动电路检测系统