labview 与数据采集

60
LabVIEW 与与与与与 与与与 2008.04.03

Upload: philip-bennett

Post on 02-Jan-2016

114 views

Category:

Documents


0 download

DESCRIPTION

LabVIEW 与数据采集. 顾永刚 2008.04.03. 内容与安排. 虚拟仪器与 LabVIEW 简介 数据采集的相关介绍 LabVIEW 中的数据采集 LabVIEW 中数据采集的扩展应用 介绍若干实例. 第一部分. 虚拟仪器与 LabVIEW 简介. 虚拟仪器简介. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LabVIEW 与数据采集

LabVIEW 与数据采集

顾永刚2008.04.03

Page 2: LabVIEW 与数据采集

内容与安排

虚拟仪器与 LabVIEW 简介数据采集的相关介绍LabVIEW 中的数据采集LabVIEW 中数据采集的扩展应用介绍若干实例

Page 3: LabVIEW 与数据采集

第一部分

Page 4: LabVIEW 与数据采集

虚拟仪器简介

NI 公司于 20 世纪 70 年代中期提出了虚拟仪器的概念。虚拟仪器是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统,是计算机技术与仪器技术相结合的产物,其基础是计算机系统,核心是软件技术。简而言之,虚拟仪器就是在开放架构的基础上创建用户自定义的测试系统。虚拟仪器大大突破了传统仪器在数据采集、处理、显示、存储等方面的限制,是一个测试和自动化系统的高性能、低成本运载平台。

Page 5: LabVIEW 与数据采集

虚拟仪器的构成

Page 6: LabVIEW 与数据采集

虚拟仪器与传统仪器的比较

独立式传统仪器的基本框架类似于基于 PC 机的虚拟仪器

根本区别在于两者不同的灵活性,用户是否能够根据各自不同的需求对其进行修改和扩展

Page 7: LabVIEW 与数据采集

虚拟仪器的特点

软件是虚拟仪器的核心 性价比高 缩小了仪器厂商与用户之间的距离 具有良好的人机界面 具有方便、灵活的互联 可靠性高 具有开放性、模块化、可重复使用及互换性等特点 维护、维修方便

Page 8: LabVIEW 与数据采集

什么是 LabVIEW

LabVIEW 是美国 NI ( National Instrument )公司推出的一种基于 G 语言( Graphics Language ,图形化编程语言)的虚拟仪器软件开发工具。

LabVIEW 为虚拟仪器设计者提供了一个便捷、轻松的设计环境。利用它,设计者可以像搭积木一样轻松组建一个测量系统和构造自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。

Page 9: LabVIEW 与数据采集

LabVIEW 的特点与优点

图形化编程方式 提供丰富的数据采集、分析及存储的库函数 即提供传统的程序调试手段,同时提供独到的高亮执行

工具,程序调试、开发更方便 包括了 DAQ 、 GPIB 、 PXI 、 VXI 、 RS-232/485 、 U

SB 在内的各种仪器通信总线标准的功能函数 提供大量与外部代码或软件进行连接的机制,如 DLL 、

DDE 、 ActiveX 等 强大的网络功能,支持常用网络协议

Page 10: LabVIEW 与数据采集

LabVIEW 程序实例(前面板)

输入控件

显示控件

按钮

Page 11: LabVIEW 与数据采集

LabVIEW 程序实例(后面板)

生成函数

Page 12: LabVIEW 与数据采集

第二部分

Page 13: LabVIEW 与数据采集

数据采集的任务

数据采集系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机进行相应的计算和处理,得出所需的数据。与此同时,将计算得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。

数据采集系统性能的好坏,主要取决于它的精度和速度。

Page 14: LabVIEW 与数据采集

模拟信号的数字化处理

数据采集的核心过程就是将连续的模拟信号转换成离散的数字信号

采样点太多,会占用大量内存单元;采样点太少,会使模拟信号的某些信息被丢失,出现失真现象

Page 15: LabVIEW 与数据采集

混叠干扰

图中采样频率 500Hz, 5个正弦波的频率分别为 100Hz,200Hz, 300Hz, 375Hz和 400 Hz。因为 100Hz,200Hz的信号频率小于 fs/2,可以由离散信号还原出原始的正弦波连续信号。而 300Hz, 375Hz和 400Hz的信号频率都大于 fs/2,故离散信号重构原信号时形成了频率不同于原信号频率的信号,即混叠( aliasing)干扰。

Page 16: LabVIEW 与数据采集

采样定理

在进行信号采样时,需要遵循采样定理:设连续模拟信号 X(t) 的频谱为 X(f) ,以采样间隔 Ts 采样得到的离散模拟信号为 X(nTs) ,如果 X(f) 和 Ts满足以下条件,离散信号 X(nTs) 可以完全确定频谱 X(f)

X(f) 有截止频率 ( 即最高频率 )fh ,即当 |f|≥ fh

时, X(f)= 0 Ts ≤1/2fh 或 fs ≥2fh

Page 17: LabVIEW 与数据采集

混叠的消除

由采样定理可知,如果要求不产生混叠干扰,首先应使被采样信号 X(t) 成为有限带宽的信号。为此,对不满足此要求的信号,在采样之前,使其先通过模拟低通滤波器滤除高频成分,使其成为带限信号。这种处理称为抗混叠滤波预处理。其次,应使采样频率 fs 大于带限信号最高频率 fh 的 2倍,即 fs>2fh 。

在实际工作中,考虑到实际的模拟低通滤波器不可能有理想的截止特性,在其截止频率 fh 之后总有一定的过渡带,故采样频率常常选为( 3~ 4 ) fh ,甚至更高。

Page 18: LabVIEW 与数据采集

量化为了能用计算机处理信号,须将采样信号转换成数字信号,也就是将采样信号的幅值用二进制码来表示,由于二进制码的位数是有限的,只能代表有限个信号的电平,故在编码之前,首先要对采样信号进行“量化”。量化就是把采样信号的幅值与某个最小数量单位的一系列整倍数比较,以最接近于采样信号幅值的最小数量单位倍数来代替该幅值。这一过程称为“量化过程”,简称“量化”。

最小数量单位称为量化单位。量化单位定义为量化器满量程电压 FSR ( Full Scale Range )与 2n 的比值,用q表示,有:

2nFSR

q

式中, n 为量化器的位数,也就是采集卡的采样位数。

Page 19: LabVIEW 与数据采集

量化误差

由量化引起的误差叫做量化误差(也常叫做量化噪声,因为它常与噪声有相同影响)。

量化误差的最大值为 q ,它是一种原理性误差,只能减小而不能完全消除。

由前面 q 的定义式可以看出,减小量化误差可以通过两个途径:

减小 FSR ,即根据输入信号的大小,设置合理的采集卡通道的输入信号范围;

增大 n 的值,即选择采样分辨率高的采集卡。

Page 20: LabVIEW 与数据采集

信号分类 在数据采集应用领域,常将被测信号分为数字信号和模

拟信号(也称连续时间信号)。数字 (二进制 ) 信号分为开关信号或脉冲信号。模拟信号可分为直流、时域、频域信号,如下图所示。

Page 21: LabVIEW 与数据采集

模拟信号的连接方式 接入数据采集设备的信号根据参考点的不同可以分为接地信号和浮

动信号两种类型。

接地信号 浮动信号

接地信号:就是以系统地(如建筑物的地)为参考点的信号,也称参考信号。因为接地信号用的是系统地,所以与数据采集设备是共地的。最常见的接地信号源是通过墙上的接地引出线接入建筑物地的设备,如信号发生器和电源。

一个不与任何地(如大地或建筑物的地)连接的电压信号称为浮动信号,浮动信号的每个端口都与系统地独立。一些常见的浮动信号源有电池、热电偶、变压器和隔离放大器等。

Page 22: LabVIEW 与数据采集

测量系统分类 --- 差分测量系统

信号的正负极分别与一个模拟输入通道相连接。具有仪器放大器( Instrumentation Amplifier )的数据采集设备可配置成差分测量系统。

一个理想的差分测量系统能够精确测量( + )和( - )输入端口之间的电位差,并将共模电压完全抑制掉。需要注意,若输入共模电压超过允许范围,将会降低测量系统的共模抑制比。为了避免测量误差,需要限制信号地与数据采集卡的地之间的浮地电压。

Page 23: LabVIEW 与数据采集

测量系统分类 --- 参考地单端测量系统

所有信号均使用同一个参考电压或接地电压,也称为接地测量系统。在接地测量系统中,被测信号一端接模拟输入通道,另一端直接与系统地 AIGND 相连。

Page 24: LabVIEW 与数据采集

测量系统分类 --- 无参考地单端测量系统

所有测量都有一个共同的参考源,但此类参考电压可根据测量系统的地面实际情况而有所不同。在无参考地单端测量系统中,信号的一端接模拟输入通道,另一端接一个公共参考端( AISENSE ),但这个参考端电压相对于测量系统的地来说是不断变化的。一个单通道的无参考地单端测量系统和一个单通道的差分测量系统是一样的。

Page 25: LabVIEW 与数据采集

测量系统的选择

单端输入以一个共同点为参考点,这种方式适用于输入信号为高电平(大于 1V )且信号源与采集端之间的距离较短(通常小于 5m )的应用场合。如果不能满足上述条件,则需要使用差分输入。在差分输入方式下,每个输入可以有不同的参考点,并且有效地消除了共模噪声的影响,所以差分输入方式的采集精度较高。

连接方式 接地信号 浮动信号差分 √ √

参考地单端 √

无参考地单端 √ √

Page 26: LabVIEW 与数据采集

数据采集系统的组成

Page 27: LabVIEW 与数据采集

模拟多路开关

模拟多路开关可以分时选通来自多个输入通道的某一路信号,使得在一个特定的时间范围内,只允许一路模拟信号输入到 A/D转换器。因此,在多路开关后的单元电路,如采样 /保持电路、 A/D 及处理器电路等,只需一套即可,这样可以降低成本,减小设备体积。

多路开关从一个通道切换到另一个通道时会发生瞬变现象,使输出产生短暂的尖峰电压。

模拟多路开关的源负载效应误差和串扰等因素对检测精度有较大的影响,尤其是在信号源内阻较大的时候,因此,信号源的内阻应该尽可能的小。

Page 28: LabVIEW 与数据采集

数据采集卡的功能

功 能 描 述

模拟输入数据采集卡最基本、最常用的功能,将模拟电压信号通过 A/D转换成数字信号。常用于检测温度、压力 、流量等传感器的输出电压信号。

模拟输出 通过 D/A转换将自定义的数字信号转化成模拟信号输出。常用作信号发生器为其他系统提供激励。

数字 I/O处理二值信号,多数采用 TTL电平标准。通常用于获取 / 设置数据采集系统外围设备的状态,可以利用其与外围设备进行通信,还能驱动步进电机等。

计数器实现定时功能,或生成数字脉冲信号,以驱动步进电机一类的执行元器件。也能对脉冲信号计数,如测量数字脉冲信号的频率等。

Page 29: LabVIEW 与数据采集

采集卡基本参数

以 NI 公司的 PCI-6071E多功能采集卡为例,介绍采集卡的一般参数:

模拟输入: 64路单端 /32路双端,输入范围: ±10V 分辨率: 12位 采样频率:最高 1.25MS/s 模拟输出: 2路, 12位, 1MS/s ,输出范围: ±10V 数字 I/O: 8路 计数器: 2路, 24位,基准时钟 20MHz 或 100KHz

Page 30: LabVIEW 与数据采集

第三部分

Page 31: LabVIEW 与数据采集

为什么选择 LabVIEW做数据采集?

LabVIEW 是一种面向工程师的编程语言,采用图形化编程,多线程同步运行,只需要连线就能进行软件的编制。提供了丰富的函数库和控件,搭建软件的界面非常迅速,一个熟练的工程师可能只需要几分钟就能搭建一个数据采集系统。

NI 的数据采集卡提供了对 LabVIEW 丰富且完备的支持,驱动函数都是在底层的基础函数上进行了高度封装,用户不需要对采集卡具体工作有深入的了解,只要掌握这些驱动函数输入 /输出端口的意义,就能进行数据采集开发。

Page 32: LabVIEW 与数据采集

LabVIEW 中的模拟输入

形 式 描 述

单点采集采集设备从一个或多个输入通道分别获取一个信号值,然后 LabVIEW 立即返回这个值,这是一个即时、无缓冲的操作。效率和灵活性低。

波形采集在计算机内存中开辟一段缓冲区,设备将采集的数据存入其中,当指定的数据采集完成后, LabVIEW再将缓冲区中的数据一次读出,此时输出的是一段有限长度的信号波形。

连续采集开辟一段循环缓冲区,设备连续采集数据并将数据向缓冲区中存放的同时, LabVIEW依据设置,将缓存中的数据一段一段地读取出来。最常用的采集方式。

Page 33: LabVIEW 与数据采集

连续模拟输入采到缓冲区中的数据(AI Start)

数据结束端 当前读取标志

LabVIEW从缓冲区中读取的数据(AI Read)

数据结束端

数据结束端数据结束端当前读取标志 当前读取标志

Page 34: LabVIEW 与数据采集

连续模拟输入

需要注意,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下 3 个参数来达到上述要求:

buffer size (缓存的大小) scan rate (采样速率) number of scans to read at a time (每次读取的样本数)

连续采集的程序模型为:

AIConfig

AIStart

AIRead

DataProcess

AIClear

循 环

Page 35: LabVIEW 与数据采集

连续模拟输入程序实例

Page 36: LabVIEW 与数据采集

模拟输入的讨论

对于一些复杂的采集任务,可以采用一些特殊的采集方式,例如采用外部时钟采集、触发采集等;

触发采集种类很多,根据触发信号类型可以分为数字信号触发和模拟信号触发;根据触发形式可以分为边沿触发和窗口触发;根据触发功能可以分为启动触发、暂停触发和参考触发;

不是每个数据采集卡都具有这些特殊采样功能的,使用前要查看采集卡的使用手册;

在模拟输入采集系统中,实现数据采集并不复杂,数据处理与分析才是难点。

Page 37: LabVIEW 与数据采集

LabVIEW 中的模拟输出

形 式 描 述

单点模出将一个数据直接写到模拟输出通道,产生一个模拟直流信号,是一个即时、无缓冲的操作

波形模出在计算机内存中开辟一段缓冲区, LabVIEW将一段数字波形写入缓冲区中,然后设备将缓冲区中的数据通过 DAC输出,就得到一段模拟波形

连续模出开辟一段循环缓冲区, LabVIEW将数字波形写入缓冲区中,设备连续将缓冲区中的数据通过 DAC输出。最常用的采集方式。

Page 38: LabVIEW 与数据采集

连续模拟输出

有两种形式的连续模拟输出,第一种就是在模拟输出之前,将数字信号写入缓冲区中,然后设备连续不断地将缓冲区中的数据通过 DAC 重复输出。这种连续模出执行效率很高,但是需要写入的数字信号必须是整周期的,不然输出模拟信号将会不连续,在使用上不够灵活。

AOConfig

AOStart

AOWrite

AOClear

循 环

AOWrite

DigitalSignal Nothing

Page 39: LabVIEW 与数据采集

连续模拟输出

第二种方式就是在设备将缓冲区中数据输出的同时,不断地将数字信号写入缓冲区中,这种方式在编程上比较复杂,但是灵活性比较高,只要保证这一次写入缓冲区的数字信号和上次是连续的就行,不需要每次写入的信号是整周期的。

AOConfig

AOStart

AOWrite

AOClear

循 环

AOWrite

DigitalSignal

DigitalSignal

长度为其 1/2

Page 40: LabVIEW 与数据采集

LabVIEW 中的数字 I/O

一般情况下,数字 I/O按照 TTL逻辑电平设计,其逻辑低电平在 0 到 0.7V 之间,高电平在 3.4 到 5.0V 之间;

在硬件设备上,多路( Line )数字 I/O 组成一组后被称为端口( Port )。一个端口由多少个数字通路组成是依据其设备而定的,在多数情况下 8 个数字通路组成一个端口;

在 LabVIEW 中对数字 I/O 的操作非常简单,可以对整个端口进行操作,也可以对端口中的一路或多路同时进行操作。

Page 41: LabVIEW 与数据采集

LabVIEW 中的计数器

GATE OUT

SOURCE(CLK)

Count Register

可以设置对 SOURCE输入端口由高到低或由低到高的信号状态进行计数;可以设置内部计数寄存器的计数方式为递增或递减;

GATE端口的输入控制计数器的计数操作,可以设置为以下几种门限工作方式:高电位计数、低电位计数、上升沿触发计数、下降沿触发计数,以及无门限方式;

可以使用 OUT口发生多种类型的波形,或者用于计数器的串级使用中,从而增大计数器的量程。

如左图为计数器的简化模型:一个 SOURCE输入口、一个 GATE输入口、一个 OUT输出口,以及一个计数寄存器

Page 42: LabVIEW 与数据采集

计数器的频率测量

方 法 描 述Low Frequency wit

h 1 Counter

将待测信号输入计数器的 Gate端, Source端引入内部的恒定时基,这样在信号的一段周期内对时基进行计数,从而可得到信号的周期,然后求周期的倒数后就得到了频率值。此方法只用一个计数器,适用于低频信号的测量。

Large Range

with 2 Counters

先将待测信号输入第一个计数器的 source端,进行降频处理,然后再输入到第二个计数器的 Gate端,进行周期测量,求其倒数后得到频率值。此方法适用于频率范围比较大的信号的测量。

High Frequency wit

h 2 Counters

使用两个计数器,首先通过第一个计数器来生成一个由 measurement time指定周期的信号,输入第二个计数器的Gate端,然后将待测信号输入第二个计数器的 Source端,即在一个已知周期内数待测信号的周期数,这样再除一下即可得到频率值。此方法适用于高频信号的测量。

Page 43: LabVIEW 与数据采集

并行安排 多功能 DAQ 设备上的模拟输入、模拟输出、数字 I/O 和计数器等

功能是能够同时运行的,可以在程序中并行安排这些功能,还能实现它们的同步。

如下图,是一个连续采集和连续模拟输出并行安排的程序,利用传递 error 信息的数据线安排并行的执行顺序。

Page 44: LabVIEW 与数据采集

第四部分

Page 45: LabVIEW 与数据采集

对外接口与调用

NI 采集卡

非 NI 采集卡

LabVIEW

其它环境,如 VC 、 VB

传统 DAQ 或 DAQmx驱动

创建

DL

L

调用DAQmx C API

调用 DLL

二次封装

DLL

Page 46: LabVIEW 与数据采集

基于网络的远程数据采集 要实现远程数据采集,可以通过网络使多台计算机(客户机)共享

一台计算机(服务器)上的 DAQ 设备,这样就不必在每台客户机上都安装 DAQ 设备,只需要在服务器上配置 DAQ 设备即可,整个远程数据采集系统的组成如下图所示。

Page 47: LabVIEW 与数据采集

远程采集的实现方法 远程设备访问( RDA )技术

NI 公司专为远程数据采集而提供的一项技术,它可将 DAQ 设备在网络上共享,通过一定的设置后,在客户机上可以控制该远程设备,并且使用起来和本地的 DAQ 设备并无差别。

DataSocket 技术 NI 公司提供的一种新的实时数据传输技术,可用于一个计算机

内或网络中多个应用程序之间的数据交换。它克服了传统 TCP/IP 传输协议需要较为复杂的底层编程、传输速率较慢(特别是对动态数据)等缺点,大大简化了实时数据的传输问题。

其它技术 可以通过 TCP/UDP 网络协议、远程面板( Remote Panels )

等实现远程数据采集,各种方法各有优缺点。

Page 48: LabVIEW 与数据采集

基于声卡的数据采集

声卡作为语音信号与计算机的通用接口,其主要功能就是经过 DSP (数字信号处理)音效芯片的处理,进行模拟音频信号与数字信号的转换,因此,从其功能上来看,声卡也可以作为一块数据采集卡来使用。声卡价格低廉,现在一般的电脑上都已经集成了声卡,用其取代常规的 DAQ 设备是一种很好的选择,而且 LabVIEW中提供了专门用于声卡操作的函数节点,所以用声卡搭建数据采集系统也是非常方便的。

Page 49: LabVIEW 与数据采集

声卡的技术参数 声卡的技术参数主要有两个:采样位数和采样频率。 声卡采样位数的概念和数据采集卡的位数概念是一样的,是指将模

拟信号转化为数字信号的二进制位数,反映了对信号描述的准确程度。位数显然是越高越好,目前市面上几乎所有声卡的主流产品都是 16位,而一般数据采集卡大多只是 12位,所以从这方面来讲,声卡的精度是比较高的。

声卡的采样频率一般不是很高,因为它只是处理音频信号,目前最高采样率为 44.1KHz ,少数能达 48KHz 。对于普通声卡,采样频率一般设为 4挡: 44.1KHz 、 22.05KHz 、 11.025KHz 和 8KHz 。

另外,还要考虑声卡的频率响应,一般声卡只是对 20Hz~ 20KHz的音频信号有比较好的响应,对这范围之外的信号有很强的衰减作用。对于测试,信号频率在 50Hz~ 10KHz范围内比较好。

Page 50: LabVIEW 与数据采集

声卡的硬件接口 对于不同的声卡,其硬件接口有所不同,对于最普通的集成声卡,

一般有 3 个接口,从外观上区分,粉红色的为 Mic In ,草绿色的为 Wave Out ,浅蓝色的为 Line In 。

Mic In 接口只能接受较弱的信号,易受干扰,对于数据采集,一般常用 Line In 接口,它可接受幅值约不超过 1.5V 的信号,这两个输入接口内部都有隔直电容,直流或频率较低的信号不能被声卡接受。

用集成声卡做数据采集时,被测信号应从浅蓝色的 Line In口引入,输出信号应从草绿色Wave Out口输出 。

Line In

Mic In

Wave Out

Page 51: LabVIEW 与数据采集

声卡采集的实例

Page 52: LabVIEW 与数据采集

声卡采集注意事项

声卡具有两个声道,关于采集通道,应该尽量选择立体声双声道采样,因为单声道采样,左右声道都相同,而且每个声道的幅值只有原信号幅值的 1/2 ,而用立体声采样时,左右声道互不干扰,稳定性好,可以采两路不同的信号,而且采样信号的幅值与原幅值相同。

声卡不提供基准电压,不论 A/D还是 D/A ,都需要用户对信号进行标定。

声卡测量频率范围较窄,不能测直流信号,只能测量音频范围内的信号,而且其增益较大,不能直接测量强度较强的信号。

Page 53: LabVIEW 与数据采集

第五部分

Page 54: LabVIEW 与数据采集

虚拟信号发生器

Page 55: LabVIEW 与数据采集

虚拟信号发生器程序框图

Page 56: LabVIEW 与数据采集

虚拟示波器

Page 57: LabVIEW 与数据采集

虚拟示波器部分程序框图

Page 58: LabVIEW 与数据采集

光纤定位单元的驱动电路检测系统

Page 59: LabVIEW 与数据采集

光纤定位单元的驱动电路检测系统

Page 60: LabVIEW 与数据采集