武汉工程大学邮电与信息工程学院
毕业设计(论 文)说明书
论文题目基于Labview的数据采集系统设计
2013年5月25日
.
目 录
摘 要 ........................................................................................................................................ II Abstract .................................................................................................................................... III 第一章 绪论 ........................................................................................................................ - 1 -
1.1背景 .......................................................................................................................... - 1 - 1.2国内外技术现状 ...................................................................................................... - 1 - 1.3数据采集技术的介绍 ............................................................................................. - 2 - 1.4虚拟仪器的介绍 ...................................................................................................... - 9 - 第二章PCI8602的硬件结构与性能 .................................................................................. - 13 -
2.1 功能概述 ............................................................................................................... - 13 - 2.2元件布局图与简要说明 ........................................................................................ - 15 - 2.3信号输入输出连接器 ............................................................................................ - 17 - 2.4 各种信号的连接方法 ........................................................................................... - 18 - 2.5各种功能的使用方法 ............................................................................................ - 21 - 2.6 CNT定时/计数功能 .............................................................................................. - 22 - 第三章 PCI8602的编程函数 ........................................................................................... - 23 -
3.1 编程纲要 ............................................................................................................... - 23 - 3.2 PCI设备操作函数接口 ......................................................................................... - 25 - 第四章 数据采集的程序设计 ............................................................................................ - 33 -
4.1 前面板设计 ........................................................................................................... - 33 - 4.2 程序后面板设计 ................................................................................................... - 33 - 4.3 vi层次结构 ............................................................................................................ - 40 - 第五章 采集实验结果与总结 .......................................................................................... - 41 -
5.1 实验结果 ............................................................................................................... - 41 - 5.2 总结与展望 ........................................................................................................... - 42 - 致谢 ...................................................................................................................................... - 43 - 参考文献 .............................................................................................................................. - 44 -
I
摘 要
本设计介绍了一种基于Labview编程软件的数据采集系统设计方案。Labview是一种图形化的编程语言和开发环境,它广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件。Labview尽可能利用工程技术人员所熟悉的术语、图标和概念,是一种面向最终用户的开发工具,增强了工程人员构建自己的科学和工程系统的能力,为实现仪器编程和数据采集系统提供了方便的途径。该设计系统是以阿尔泰公司的数据采集卡PCI-8602为硬件平台,对数据进行实时的高效保存。实验结果表明,该系统能够有效的完成对信号的实时采集,存储、信号分析和实时图形显示等功能,同时该实验结果也表明,该系统具有程序设计简单、通用性好、可移植性高、界面设计简单大方、易于操作等优点。
关键词:Labview;数据采集;PCI-8062
II
Abstract
This design introduces a design scheme of data acquisition system based on Labview
programming software. Labview is a graphical programming language and development environment, it is widely accepted by the industry, academia and research laboratory, is recognized as the standard of data acquisition and instrument control software. Labview as far as possible using the engineering and technical personnel are familiar with the terms, ICONS and concepts, is a development tool for the end user, enhances the engineering personnel's ability to build your own system of science and engineering, in order to realize instrument programming and data acquisition system provides a convenient way. The design system is based on the altai company's data acquisition card PCI - 8602 for the hardware platform, the data stored in real-time and efficiently. The experimental results show that the system can effectively complete the signal of real-time acquisition, storage, signal analysis and real-time graphic display function, at the same time the experimental results also show that the system has a simple programming, good versatility, high portability, simple interface design generous, easy to operate, etc.
Keywords:Labview;data collection;PCI-8602
III
第一章 绪论
1.1背景
随着计算机技术和智能仪器仪表的深入发展,数据采集处理技术作为数字信号处理的前期工作之一,被广泛应用于军事、工业、通信、消费电子、医疗等测控领域。然而当今的测控领域面临三大挑战:测控成本不断增加;测控系统越来越庞大;对测控投资的保护要求越来越强烈。面对这些挑战,用户最可能的做法是选用标准化硬件平台。硬件的标准化可以部分降低测试成本,但作用是非常有限的,而使用虚拟仪器则可以大大缩短用户软件的开发周期,增加程序的可复用性,从而降低测控成本,而且由于虚拟仪器是基于模块化软件标准的开发系统,用户可以选择最合适于其应用要求的任何测试硬件。
而Labview作为第一个借助于虚拟面板用户界面和方框图建立虚拟仪器的图形程序设计系统,它广泛地被工业界、学术界和研究实验室所接受,被视为一个标准的数据采集仪器和仪器控制软件。
Labview是美国国家一起公司开发的机遇图形编译语言(G语言)的实验室虚拟仪器集成环境,它具有十分强大的功能,包括函数数值运算、数据采集、数据分析、信号生成、信号处理、输入/输出控制,以与图像获取、处理和传输等等。与传统编程编程采取的文本语言相比,Labview使用图形语言G语言,界面友好直观,都是人们熟悉的开关、旋钮、波形图等,是一种直觉式图形程序语言。传统的编程语言如C、Fortran等用于虚拟仪器控制,需要工程人员有相当丰富的编程经验,他们必须将自己有关仪器和应用的知识转化成一行行的程序代码,以形成程序测试。而Labview编程无须太多的编程经验,只要以很直觉的方式建立前面板人机界面和方块图程序,便可完成编程过程,这样就可以使没有丰富编程经验的工程师从繁重的程序文字编码中解脱出来,把更多的精力放在试验和测试上。不像传统的编程语言程序必须逐行地执行,Labview的执行顺序是依方块图间数据的传递来决定的,因此可以设计出可同时执行多个程序的流程图。
数据采集是Labview的核心技术之一。Labview提供了与NI公司的数据采集硬件相配的丰富软件资源,使得它能够方便地将现实世界中各种物理量数据采集到计算机中,从而为计算机在测量领域发挥其强大的功能奠定了基础。
数据采集是所有测试测量的首要工作,实验测试产品的物理信号通过传感器转换为电压或者电流一流的电流号,然后通过数据采集卡将电信号采集传入PC机,借助软件控制数据采集卡进行数据分析、处理,Labview以其简便的程序编写、不同数据采集卡的支持、强大的数据处理、友好的人机界面使其成为控制、开发数据采集卡的最佳软件。
1.2国内外技术现状
虚拟仪器的突出特点之一在于在很大程度上用系统软件的升级替代了仪器设备硬
- 1 -
件的更换,这将节省大量的资金投入,代表了仪器仪表技术的发展方向。目前,虚拟仪器技术在国外已经得到了长足的发展,但是在国内,虚拟仪器技术的开发和应用尚属于起步阶段。如今,虚拟仪器已在超大规模集成电路测试、模拟/数字电路测试、现代家用电器测试、电子元件、电力电子器件测试以与军事、航天、生物医学、工厂测试、电工技术等领域的可移动式现场测试工作中得到应用。
贾佳基于虚拟仪器的PCI8735数据采集系统,利用Labview提供的动态库调用函数完成了数据采集卡的驱动,实现了数据实时显示、通道上限设定、超限报警指示灯和数据存储控制等功能[1]。赵易彬等人利用NI公司的NI PCI-MIO-16E多功能数据采集卡对一种新型高效除雾器进行设置和测试[2]。曾璐等人利用美国LabJack公司研发、生产的产品LabJack U12与仪器开发软件Labview开发出了一套性价比较高的数据采集系统[3]。向科峰利用具有16路单端/8路差分模拟输入,采样率可达200K/V,转换精度为16位,输入范围可从(0.5)~(10)V,具有(5V/TTL)数字I/O线,两个2位定时器的PCI6013完成了数据采集系统的研究与设计[4]。任璐娟等人采用虚拟仪器(Labview)和高速数字化仪NI PCI5124设计了一种可以长时间连续采集、实时存储的数据采集系统[5]。孟武胜等人采用研华推出的一种高性能多功能的数据采集卡PCI818L与Labview的数据处理完成了对信号的采集、处理、显示、存储和回放[6]。张军峰等人采用研华公司推出的具有16位高速ADC采样速率可达100KS/s的高速数据采集卡PCI816以与借助Labview软件实现了对模拟信号的高速数据采集,并将采集结果以图形显示出来[7]。
任何基于虚拟仪器技术的设备仍然需要利用数据采集卡实现数据的采集工作,以供系统进行进一步的分析处理。
1.3数据采集技术的介绍
数据采集,是利用某种设备从系统外部采集数据并输入到系统内部的某接口。该技术被广泛采用于各个领域。如摄像头,麦克风都是一种常用于日常生活的数据采集设备。被采集的数据是已被转换为电信号的各种物理量,如温度,水位,风速,压力等,其形式可以是模拟量,也可以是数字量。
数据采集过程的第一步是将连续变换的模拟线号在时域上离散化,也就是采样。采样过程中,由于对连续信号采样会出现频率混叠的问题,从而会导致得到的信号失真。第二步是将得到的时间离散,幅值连续的信号转变为时间幅度上均为离散的数字信号,即量化。量化,将引入量化噪声,当信/噪比过小时,无法从量化后的信号内恢复
- 2 -
原始信号。
要将数据采集到计算机里,并对其进行合理的组织,需要构建一个完整的数据采集(Data AcQuisition,DAQ)系统。它包括:传感器和变换器、信号调理设备、数据采集卡(或装置)、驱动程序、硬件配置管理软件、应用软件和计算机等。使用不同的传感器和变换器可以测量各种不同的物理量,并将它们转换为电信号;信号调理设备可以对采集到的电信号进行加工,使它们适合数据采集卡等设备的需求;计算机通过数据采集卡等获得测量数据;软件则控制着整个测量系统,它告诉采集设备什么时候从哪个通道获取数据,同时还对原始数据作分析处理,并将最后结果表示成容易理解的方式,例如图表或文件等等。
数据采集系统的构成
数据采集系统的基本构成:数据采集是模拟信号经过低通滤波后,经由多路模拟通道进入程控放大器,后送入A/D转换器进行模数转换。转换后的结果进入FIFO送给EZ_USB FX芯片,最后经过USB接口传输给上位机进行显示处理。
据此,我们可以画出数据采集系统的基本构成图如下图1.1:
图1.1 数据采集系统构成图 ➢ 信号调节
信号调节包括模拟信号的放大,滤波,阻抗变换等,使得输入模拟信号适合于模数变换。一般有如下几部分:
低通滤波:滤去高频噪声,提高信噪比 程控放大器:扩大数据采集系统的动态范围 信号变换:阻抗变换,电流一电压变换等 ➢ 多路切换
多路切换的主要作用是提高模数转换电路的效率。当多路信号同时输入时,模数转换器分时复用,从而实现对多路模拟信号的处理。一般的,对信号变化慢,数据高精度系统,模拟多路切换可用继电器实现,而信号变化快,数据精度又无特殊要求的应用系统,采取模拟电子开关来切换较合适。
- 3 -
➢ 采样/保持
对模拟信号采样并进行转换的过程中,为了保证输入信号在采样时刻暂时稳定,在电路中加入保持电路。现常用的A/D转换芯片,都集成有该电路,无需单独设计。 ➢ 模拟/数字转换
模拟/数字转换器(Analog Digital Converter)简称ADC,是数据采集系统的核心电路,采集速度,转换精度等关键技术指标取决于此。 ➢ 数据采集过程
模拟信号f(t)通过开关K,K只在特定时刻瞬时导通(t=T,2T,3T,……) 这样开关输出端得到的采样信号f1*(t),f2*(t),……。若K按周期闭合,即等周期采样,则采样信号,f(2T),f(3T)……,其中T为采样周期。当开关K导通f*(t)为一脉冲序列f(T)
时间与采样周期相比可以忽略小计时,采样信号f*(t)可看成是模拟信号f(T)对开关K产生的理想脉冲序列进行幅度调制的结果。 ➢ 采样定理
从采样信号f*(t)中,要无失真的恢复原始信号f(t),则采样频率fs必需满足以下条件: 限带为fm的信号f(t),若以fs≥2fm进行均匀抽样,则可与失真的恢复原信号f(t)。这就是奈奎斯定理。理论上,采样频率为被采信号中最高频率的2倍时就不会发生混叠,但是,实际应用中为了更好的还原波形,选用更高的倍数,一般为5—10倍。另外为了提高频谱分析的分辨率,根据频率分辨率ffsN,在确定的采样频率下,增加采样长度N。
高的采样率系统开销大,因此,需根据实际情况选择合适的采样频率fs与采样点数N。
➢ 测量系统
一般的,有两种不同的测量系统:差分测量系统(differential,DIFF)和单端测量系统(signle-ended,SE)。
① 差分测量系统
差分测试系统中,信号的正负极分别接入两个通道,且有各自的参考值。这是一种较为理想的的测试系统,不仅能抑制接地回感应误差,而且能在一定程度上抑制环境噪声。理想的差分测量系统只读取两极信号的势差,不会受共模电压的影响。但是,差分测试系统所要求的端口数是单端测量的两倍。
一般的,当被采样信号电平偏低时或者噪声比较大或者有一个输入信号要求单独的参考点时选择差分测试的方法来对信号进行测量。 ② 单端测量系统
- 4 -
单端测试系统所有信号所有信号都参考一个公共的参考值也即是设备放大器的负极。
.
若信号满足一下条件,则一般选取单端测量系统:信号电平比较高,通常大于lV;环境噪声较小:所有信号可共享一个公共参考值。
数据采集卡简介
数据采集卡是虚拟仪器进行必不可少的核心硬件设备,它将出入进来的标准模拟信号经过一系列的信号调理,数据转换输入到虚拟仪器的采集系统。 (1)数据采集卡的结构原理
数据采集卡作为虚拟仪器的核心硬件设备,其主要功能有三:一是由衰减器和增益可控放大器进行量程自动变换;二是由多路转换(MUX)完成对多点通道信号的分时采样;三是将信号的采样值由A/D转换器转换为幅值离散化的数字量,或由V/F转换器转换为脉冲频率,以适应计算机工作,或者由D/A转换器输出控制信号。
数据采集卡的基本结构框图如图1.2所示。与数据采集系统相对应,数据采集卡本身将模拟输入通道、信号调理电路、采样/保持、A/D转换以与控制逻辑单元的时钟、总线接口和控制器集为一体,从而实现了一个完整测量系统的硬件电路。下面分别介绍这些组成单元的原理和作用。
图1.2 数据采集卡的结构框图
- 5 -
➢ 模拟输入通道:数据采集卡的模拟输入通道也叫多路转换器(MUX),它是由一类
受控制而将模拟信号接通或断开的模拟开关构成的。一般采用的是半导体器件构成的无触电式电子模拟开关。通过模拟开关的控制电路可以来选择任意通道的开合。从而实现多路或单路采集的功能。
➢ 信号调理器:通常数据采集卡自身就带了信号调理电路,其主要包括:增益、偏移
和滤波。传感器输入时提供激励电压,输入的模拟信号通过信号调理器,经过放大、滤波之后变成了标准信号,进入采样/保持和A/D转换器。
➢ 采样/保持和A/D转换:这是数据采集卡的核心电路,是数据采集系统的关键组成单
元。采样/保持电路将输入的连续标准模拟信号变换成时间上离散的采样信号。A/D转换则是将经过了采样/保持后,将幅值仍然在采样时间内是连续的模拟信号转换成数字信号,将采样信号的幅值用二进制代码来表示。
➢ FIFO(先进先出缓冲器):经过A/D转换后,数字值先通过FIFO。FIFO保证了数据
的完整性,有效地减小了在完成了A/D变换后数据丢失的可能性。
➢ 总线接口和控制器:总线接口是各种采集卡与PC相连接的方式,目前数据采集卡的
接口方式有:PCI、PXI、SCXI、PCMCIA以与USB等。控制器是采样/保持、A/D转换器和D/A转换器等电路的核心。它完成采样/保持、A/D转换器和D/A转换器的控制➢ 功能。根据对采样速率的要求,其控制方式为:无条件采样、中断方式、查询方式
和直接存储器存取(DMA)方式。在高速率数据采集卡中,一般都采用DMA控制方式。 ➢ D/A转换器:将A/D转换后的数字信号转换成电压或电流等模拟信号,可将转换后
的模拟信号融送入执行机构进行控制或调节。 (2)数据采集卡的性能指标
由于不同的数据采集卡具有不同的性能指标,在科学实验或工程测量中如何选择数据采集卡就成了测量的首要任务。数据采集卡的选择要考虑的因素很多,所以必须从信号处理的原理和电路原理上来考虑,根据应用经验,总结得出主要的数据采集卡的性能指标有:模拟输入部分;A/D转换和采样/保持部分;D/A转换部分。 模拟信号输入部分:
模拟信号输入部分有五个性能参数:模拟输入通道数、信号输入方式、模拟信号的输入范围(量程)、放大器增益、模拟输入阻抗。
➢ 模拟输入通道数表明了数据采集卡所能采集的最多信号路数。
➢ 信号输入方式则一般可分为:单端输入(信号的其中一个端子接地);差动输入(信
号两端均浮地);单极性(信号幅值范围为[0,A],A为信号最大幅值);双极性(信号幅值范围为[-A,A])。
➢ 模拟信号的输入范围一般根据信号输入极性而定。如单极性输入,典型值为0~10V;
双极性输入,典型值为-5~5V。
➢ 增益放大器则用来增大或减小输入模拟信号,并且能够减小所有不同输入范围模拟
信号的稳定时间,从而保证A/D转换器的分辨率得到最大的利用。 ➢ 模拟输入阻抗是数据采集卡固有参数,一般不能自行设定。
- 6 -
A/D转换和采样/保持部分: ➢ 采样速率
它是指在单位时间内数据采集卡对模拟信号的采集次数,是数据采集卡的重要技术指标。为了使采样后输出的离散时间序列信号能无失真地复现原输入信号,由采样定理可知采样频率fmax的2倍,否则会出现频率混淆误差。实际系统为了保证数据采样精度,
一般有下列关系:
fs=(7~10)fmax×N
式中,N为多通道采集系统的通道数。 ➢ 分辨率与位数n
分辨率是指A/D转换器所能分辨模拟输入信号的最小变化量。设A/D转换器的位数n,满量程电压为FSR,则A/D转换器的分辨率定义为
FSR 分辨率=1LSB=n
2式中1LSB即为量化单位,可以看出A/D转换器分辨率的高低取决于位数的多少。 D/A模数转换部分
➢ 分辨率:当输入数字发生单位数码变化,即1LSB时,所对应输出模拟量的变化量,
通常也是用D/A转换数n表示。
➢ 标称满量程:指相当于数字量标称值2n的模拟输出量。
➢ 响应时间;指数字量变化后,输出模拟量稳定到相应数值范围内(12LSB)S所经历
的时间。
数据采集卡的选择与使用
(1)数据采集卡的选择
现在市场上数据采集卡的种类繁多,如何选择一个适合测量要求的数据采集卡则成了首要的步骤,也是得到满意的测量结果的重要一步。
首先,选择数据采集卡接口方式。从数据传输可靠性和速度角度考虑,首选PCI总线接口方式。在工业领域,为了达到99.9999999%的数据可靠性,需要选择CompactPCI总线接口方式,常有3U和5U两种物理形式。如果需要测量系统具有即插即用或者追求便携性,则可以考虑USB总线的接口类型。
其次,确定输入和输出指标。这些指标包括:输入和输出的模拟量精度和速率;输入和输出的数字量电平和要求;输入和输出的数字传输协议方式。模拟量采样有高精度和高速率两个方向,如果对测量系统的要求很高,可以将二者结合起来,选择高速率和高精度数据采集卡。然而高精度和高速率在一块数据采集卡上往往不能兼顾其两者的性能,所以选择时要折中考虑。
- 7 -
这里还要讨论下选择时对数据采集卡精度的理解。精度是反映一个实际n位A/D转换器与一个理想n位A/D转换器差距的重要指标之一。为分绝对精度和相对精度两种。通常以误差的形式来给出精度。但是精度和分辨率是两个不太那个的概念。精度是指转换后所得结果相对于实际值的准确度;分辨率是指转换器所能分辨的模拟信号的最小变化值。
如果对于同一n位分辨率的不同数据采集卡,其精度是不同的,这就是精度和分辨率概念不同的所在。例如,一块具有12位A/D转换的数据采集卡,它的最佳分辨率就是1212=14096,也就是说,当输入电压范围为10V(即VPP=20V)时,它能分辨的最小电压就是20V4096=4.88mV。理论上,分辨率越高,分割信号的点就越密,从而还原出来的信号也就越真事、越平滑。而绝对精度的概念是指测量值和“真实”值之间的最大偏差的绝对值,在待测信号进入模数转换器之前,它还必须经过数据采集板上的多路转换器(MUX),可编程增益放大器等其他的器件。在这个过程中都可能引入随即噪声,并且随着时间、温度变化参考源所发生的漂移,以与增益前后引入的非线性误差等,都会对测量结果产生影响,综合以上各种误差就是我们所说的绝对精度。
因此对于用户而言,选择时,除了A/D转换器的位数,更重要的是了解自己所选数据采集卡的绝对精度指标。以免所选的具有高分辨率的数据采集卡的精度不如一块具有低分辨率的数据采集卡的精度。
最后,选择驱动软件和数据采集处理软件的编程语言。目前市场上的数据采集卡都有专门配套的驱动程序,甚至有的驱动程序可以在不同的高级语言中被调用,就可以实现数据采集卡的知识与数据传输。这就在使用上大大减少了使用的难度以与复杂性。而测量系统界面的开发可以使用VB、VC、LabVIEW、C/C++、Bordland C++ Builder、Java等来编写数据控制处理软件。 (2)数据采集卡的使用
数据采集卡使用是否得当,也是造成其使用寿命长短以与影响测量系统精度的一个重要方面。
数据采集卡的售价较高,所以使用中对其保护也是应该考虑的。在高电压测量中,脉冲电流会将数据采集卡打坏。虽然数据采集卡本身带有一些保护电路,但从安全与保护方面考虑,还是应该采取一些保护措施。可以在模拟信号的输入部分采用电压跟随器,以起到缓冲和隔离。在数字信号的输出部分采用光电隔离,以免高电压串入,导致数据采集卡的损坏。
在测量时,各种内、外部因素都会影响到测量的精度。测量误差的来源是很多方面的,内部因素除了数据采集卡A/D转换器本身的各种误差外,前端的信号调理和整个板卡的布局都会影响到总的测量精度。此外,还有大量的外部因素,如:环境的噪声、工作温度、电磁干扰、数据采集卡进行多路采集时各通道间信号的耦合等。
所以,在数据采集卡使用中,要做好系统的冷却和散热。一些专业的测量总线标准,如PXI总线,在冷却和散热方面作了严格的规范。另外,选择高质量的电缆,如屏蔽电
- 8 -
缆或同轴电缆,和合适的连接方式,可以有效地去除电线源噪声、电磁干扰噪声以与可以减小因数据采集卡多路测量通道耦合所带来的信号失真。
数据采集卡的连接方式以与各种不同连接方式之间的差异。当数据采集卡采用单端输入时,是判断信号与GND的电压差;采用差分输入时,是判断两个信号线的电压差。信号受干扰时,差分输入的两线会同时受影响,但是电压差变化不大,即抗干扰性较好。而单端输入时,只有一条接线变化,而GND不变,所以电压变化较大,则抗干扰性差。
1.4虚拟仪器的介绍
虚拟仪器的概念与特点
虚拟仪器(Virtual Instruments),简称VI,是通用计算机平台上,根据用户需求定义和设计仪器的测试功能,使用户在操作这台仪器室。
随着计算机技术的飞速发展,计算机与传统的仪器仪表结合成为一种趋势,其强大的功能是传统仪器所无法比拟的;虚拟仪器是在通用计算机平台上,用户根据自己的需求来定义和设计测试功能的仪器系统。也就是说虚拟仪器是由用户利用一些基本硬件与软件编程技术组成的各种各样的仪器系统。概括的说,它主要有一下特点:
1、软件是虚拟仪器的核心。虚拟仪器的硬件确立后,它的功能,如抗混淆滤波、小波分析等软件就是仪器。
2、虚拟仪器的性价比高。一方面,虚拟仪器能同时对多个参数进行实时高效的测量,同时,由于信号的传送和数据的处理几乎都是靠数字信号或软件来实现的,所以还大大降低了环境干扰和系统误差的影响。此外,用户也可以随时根据需要调整虚拟仪器的功能,大大缩短了仪器在改变测量对象时的更新周期;另一方面,采用虚拟仪器还可以减少测试系统的硬件环节,从而降低系统的开发成本和维护成本,一次,应用虚拟仪器比传统仪器经济。
3、虚拟仪器具有良好的人机界面。
4、虚拟仪器具有和其它设备互联的能力。如和VXI总线或现场总线等的接口能力,此外,还可以将虚拟仪器接入网络,如IN-TRANET等,以实现对现场生产的监控和管理。作为新型仪器,它有许多传统仪器无法比拟的地方。这使得虚拟仪器的应用领域非常广泛。
虚拟仪器的优势
虚拟仪器相比于传统能够一起具有明显的优势,如下表1-1:
- 9 -
表1-1 传统仪器和虚拟仪器的对比 传统仪器 功能由仪器厂商定义 与其它仪器设备的连接十分有限 图形界面小,人工读取数据信息量小 数据无法编辑 硬件是关键部分 价格昂贵 系统封闭、功能固定、可扩展性差 技术更新慢 开发和维护费用高
虚拟仪器 功能由用户自己定义 仪器连接 界面图形化,计算机直接读取数据并分析处理 数据可编辑、存储、打印 软件是关键部分 价格低廉,是串通一气的五至十分之一 甚至计算机技术开放的功能模块可构成多种仪器 技术更新快 甚至软件体系的结构可大大节省开发费用 可方便地与网络外设与各种虚拟仪器的组成原理
虚拟仪器充分利用了当代先进的科技产品和技术,如计算机、模块化的数据采集调理电路与总线技术等。虚拟仪器主要由硬件和软件两大部分组成。从下图1.3可以看出它主要由硬件和软件两大部分组成。
图1.3
- 10 -
(1)虚拟仪器的硬件
硬件是虚拟仪器工作的基础,它主要功能是完成对被测信号的采集、传输和显示测量的结果。
虚拟仪器的硬件主要由计算机和信号采集调理部件组成的,其中计算机包括微处理器、存储器和显示器等,它主要用来提供实时高效的数据处理性能。而信号采集调理部件可以是GPIB仪器模块、VXI仪器模块、PXI仪器模块或数据采集卡,它主要用来采集、传输信号。目前用得比较多的是数据采集卡和VXI仪器模块,尤其是数据采集卡特别为广大科技人员所钟爱。 (2)虚拟仪器的软件
虚拟仪器软件组成有两部分:应用程序和I/O接口仪器驱动程序。其中应用程序包含两方面内容:一部分是实现虚拟面板功能和定义测试功能流程图软件程序。另一部分是I/O接口仪器驱动程序实现特定外部硬件设备的扩展,驱动和通信。 虚拟仪器软件开发工具有如下两类:
文本式编程语言:如Visual C++,Visual Basic,LabWindows/CVI等 图形化编程语言:如用NI公司的labview(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工作平台)或HP公司的VEE等这些软件开发工具为用户设计虚拟仪器应用软件提供了方便的条件和良好的开发环境。本论文中采用LabVIEW设计虚拟仪器。采用图形化编程的优势是软件开发周期短、编程容易,特别适合不具有专业编程水平的工程技术人员使用。
作为一种流行的G语言,使用LabVlEW时,基本上不用编写程序代码,而是通过画程序流程图来实现具体功能。它有如下特点: 丰富的数据采集,分析以与存储库函数
继承并发展了传统程序调试手段。提供设置断点,单步运行等调试方法。同时提 供动画式程序运行,便于观察运行时的细节。
提供支持PCI,GPIB,PXI,VXI,RS,232/485,USB等多种总线标准的功能函数, 使得驱动不同总线标准的设备接口更为简便。 ④32位编译器编译生成32位编译程序,保证用户程序执行速度。 ⑤提供与外部代码或软件的机制,如DLL,DDE等。 ⑥支持常用网络协议,便于远程测控仪器的开发。 ⑦有运行于Windows,UNIX和Linux的多种版本。
LabVIEW的开发环境
LabVIEW设计的程序称为虚拟仪器程序(Vietual Instrument,简称VI),主要由三部分组成:前面板(Panel),框图程序(Diagram Programme)和图标/连接端口(Icon/Terminal)。
- 11 -
(1)前面板设计窗口
前面板设计窗口是与用户直接接触的图形用户界面,即是VI的虚拟仪器面板。界面上有用户输入控制,输出显示两大类对象,用于模拟真实仪表的外观。这些对象被称为控件(Contr01),指示器(Indicator)和装饰(Decoration)。
控件:控件是用户设置和修改VI程序输入量的接口,用于设置输入数据。在某种意义上可被类比于C语言中的输入语句。用户可以通过使用滑动条,开关,按钮等。可通过鼠标和键盘更改控件中的数值,就像操作真实仪器一样。
指示器:指示器用于显示由VI程序运行产生的数据,类似于C语言的输出语句。 装饰:装饰没有实质性作用,只是让前面板更美观。在装饰子模板中,有各种装饰图形。也可以直接将外部图片(JPEG或者BMP)粘贴到前面板中作为装饰。 (2)框图程序编辑窗口
每一个前面板都是有一个框图程序与之对应的。框图程序用图形化编辑语言(G语言)进行编写。可以理解成传统编程语言中的源代码。 框图程序由端口,节点,框图和连线构成。
端口:节点与节点之间,节点与前面板对象之间是通过数据端口和数据连线来进行数据传递的。端口是数据在前面板对象与框图程序之间交换数据的接口,是数据在框图程序内节点之间传输的接口,LabVIEW有三种类型的端口:前面板对象端口,全局变量与局部变量端口以与常量端口。前面板对象端口用于与前面板上控件和显示器传递数据,是前面板对像与程序框图之间交换数据的接口。在程序框图中,每一个前面板对象又有一个唯一的端口且名称与前面板对象的名称相同。当前面板对象被创建或者删除时,框图程序自动创建或删除与之相对应的端口。
节点:节点是VI程序中执行命令的实体,类似于传统编程语言的函数或子程序。 节点之间通过逻辑关系相互连接。一共有四种类型的节点:
功能函数:提供具体的数据,对象操作。如逻辑运算,数值运算等。 结构:控制程序执行顺序以与方式。包括顺序结构,循环结构,选择结构,事件结构等。 .
外部代码接口节点:LabVIEW与外部程序的接口,包括调用函数节点,代码接口节点,动态数据交换节点等。
子VI-相当于传统编程语言中的子程序调用,将一个以编写好的VI程序以子程序的方式进行调用。
其中前两种节点是由LabVIEW提供的,不可以对其进行修改,而后两种节点可由用户根据实际的需求进行修改。 (3)图标/连接端口
图标/连接端口的作用是把VI变成一个对象,也即一个字VI。这样该程序能被其他VI程序所调用。再次被调用时,图标代表被调用子程序的所有框图程序,而连接口表示与主调用程序之间进行数据交换的接口。
- 12 -
第二章PCI8602的硬件结构与性能
2.1 功能概述
PCI8602数据采集卡是阿尔泰科技发展XX研制的,该公司推出的PCI8602数据采集卡综合了国内外同类产品的优点,以其使用的便捷、稳定的性能、极高的性价比,获得多家试用客户的一致好评,是一款真正有可比性的产品。PCI8602是一种基于PCI总线的数据采集卡,可直接插在IBM-PC/AT或与之兼容的计算机内的任一PCI插槽中,构成实验室、产品质量检测中心等各种领域的数据采集、波形分析和处理系统。也可构成工业生产过程监控系统。它的主要应用场合为: ➢ 电子产品质量检测 ➢ 信号采集 ➢ 过程控制 ➢ 伺服控制
AD模拟量输入功能 ➢ 转换器类型:AD7663
➢ 输入量程(InputRange):10V、5V、2.5V、0~10V、0~5V ➢ 转换精度:16位(Bit)
➢ 采样速率(Frequency):1Hz~250KHz
说明:各通道实际采样速率=采样频率/采样通道数
分频公式:采样频率=主频/分频数,其中主频=40MHz,32位分频,分频数的取值范围:最低为160,最高为40000000
➢ 模拟输入通道总数:32路单端,16路双端
➢ 采样通道数:软件可选择,通过设置首通道(FistChannel)和末通道(LastChannel)
来实现的
说明:采样通道数=LastChannel—FistChannel+1 ➢ 通道切换方式:首末通道顺序切换
➢ 数据读取方式:非空和半满查询方式、DMA方式 ➢ 存储深度:8K字(点)FIFO存储器 ➢ 存储器标志:满、非空、半满
➢ 异步与同步(ADMode):可实现连续(异步)与分组(伪同步)采集
➢ 组间间隔(Grouplnterval):软件可设置,最小为采样周期(1Frequency),最大为
419430us
➢ 组循环次数(LoopsGroup):软件可设置,最小为1次,最大为255次 ➢ 时钟源选项(ClockSource)板内时钟和板外时钟软件可选
- 13 -
➢ 板内时钟输出频率:单签AD实际采样频率
➢ 触发模式(TriggerMode):软件内部触发和硬件后触发(简称外触发) ➢ 触发类型(TriggerType):数字边沿触发和脉冲电平触发 ➢ 触发方向(TriggerDir):负向、正向、正负向触发
➢ 触电源(TriggerSource):ATR(模拟触发信号)和DTR(数字触发信号) ➢ 触发源ATR输入范围:低于低触发电平(AO0),高于高触发电平(AO1)(AO1>AO0) ➢ 触发源DTR输入范围:标准TTL电平 ➢ AD转换时间:<10us
➢ 程控放大器类型:默认为AD8251,兼容AD8250、AD8253
➢ 程控增益:1、2、4、8倍(AD8251)或1、2、5、10倍(AD8250)或1、10、100、
1000倍(AD8253) ➢ 模拟输入阻抗:10M
➢ 放大器建立时间:785nS(0.001%)(max) ➢ 非线性误差:3LSB(最大) ➢ 系统测量精度:0.01% ➢ 工作温度范围:0℃~+50℃ ➢ 存储温度范围:-20℃~+70℃
DA模拟量输出功能 ➢ 转换器类型:DAC7613
➢ 输出量程:10V、5V、0~10V、0~5V ➢ 转换精度:12位(Bit) ➢ 建立时间:10uS(0.01%精度) ➢ 通道数:4路
➢ 非线性误差:1LSB(最大) ➢ 工作温度范围:0~50℃ ➢ 存储温度范围:-20~70℃
DI数字量输入功能 ➢ 通道数:8路 ➢ 电气标准:TTL兼容 ➢ 高电平的最低电压:2V ➢ 低电平的最高电压:0.8V
DO数字量输出功能 ➢ 通道数:8路 ➢ 电气标准:TTL兼容 ➢ 高电平的最低电压:3.8V
- 14 -
➢ 低电平的最高电压:0.44V ➢ 上电输出:低电平
CNT定时/计数功能
➢ 最高时基为20MHz的16位计数器/定时器
➢ 功能模式(FunctionMode):计数器(包括单计数和缓冲计数)和脉冲发生器 ➢ 时钟源(CLK):本地时钟(620Hz~20MHz)和外部时钟(最高频率为20MHz) ➢ 门控:(GATE):上升沿、下降沿、高电平和低电平 ➢ 计数器输出(OUT):高电平、低电平
➢ 脉冲发生器输出(OUT):脉冲方式和占空比设定波形方式
其他指标
➢ 板裁时钟振荡器:40MHz
板卡尺寸
➢ 板卡尺寸:136.5mm(长)×108.2mm(宽)×16mm(高)
产品安装核对表
打开PCI8602板卡包装后,你将会发现如下物品: 1、PCI8602板卡一个
2、ART软件光盘一张,该光盘包括如下内容:
(a)本公司所有产品驱动程序,用户可在PCI目录下找到PCI8602驱动程序: (b)用户手册(pdf格式电子文档) 安装指导 一、软件安装指导
在不同操作系统下安装PCI8602板卡的方法一致,阿尔泰科技发展XX提供的光盘中含有安装程序Setup.exe,用户双击此安装程序按界面提示即可完成安装。
二、硬件安装指导
在硬件安装前首先关闭系统电源,待板卡固定后开机,开机后系统会自动弹出硬件安装向导,用户可选择系统自动安装或手动安装。
注意:不可带电插拔板卡。
2.2元件布局图与简要说明
主要元器件布局如下图2.1:
- 15 -
图2.1
信号输入输出连接器: CN1:信号输入输出连接器 电位器:
RP1:AD模拟量输入零点调整 RP2:AD模拟量输入满度调整
RP3:DA模拟量输出-2.5V基准电压调整 RP4:AOo模拟量信号输出满度调整 RP5:AO1模拟量信号输出满度调整 RP6:AO2模拟量信号输出满度调整 RP7:AO3模拟量信号输出满度调整 物理ID拨码开关:
DID1:设置物理ID号,当PC机中安装的多块PCI8602时,可以用此拨码开关设置每一块的物理ID号,这样使得用户很方便的在硬件配置和软件编程过程中区分和访问每块板卡。 状态灯:
- 16 -
+5VD:5V数字电源指示灯。指示灯为亮状态表示板卡供电正常 ADRead:读FIFO指示灯。指示灯闪烁状态表示正在读FIFO OVR:FIFO溢出指示灯。指示灯为亮状态表示FIFO溢出
2.3信号输入输出连接器
关于62芯D型CN1的管脚定义如图2.2:
图2.2
管脚说明:CLKIN/CLK/CLKOUT/OUT和DTR/GATE三个管脚为复用管脚。当使用AD功能时,上述管脚功能分别作为CLKIN、CLKOUT和DTR使用;当使用定时/计数器功能时,上述管脚功能分别作为CLK、OUT和GATE使用,各管脚功能定义见下表2-1和表2-2:
- 17 -
表2-1 AD部分相关管脚定义:
管脚信号名称 AI0~AI31 AO0~AO3 DI0~DI7 DO0~DO7 AGND DGND CLKIN CLKOUT 管脚特性 Input Output Input Output Input Output 管脚定义 AD模拟量输入,分别对应于32个模拟单端通道,参考地为AGND DA模拟量输出管脚,对应4个模拟量输出通道 8个数字量输入管脚 8个数字输出管脚 模拟信号地,当输入输出模拟信号时最好用它作为参考地 数字信号地,当输入输出数字信号时最好用它作为参考地 板外时钟输入,参考地请使用DGND 板内时钟输出,只有允许时钟输出时为板内时钟输出,否则作为CNT计数器的OUT输出。参考地请使用AGND ATR DTR +5V
表2-2 CNT定时/计数部分相关管脚定义:
管脚信号名称 CLK 管脚特性 Input 管脚功能定义 定时/计数时钟源输入,参考地请使用DGND。当计数时钟使用外部时钟时,计数时钟的频率范围为不超过20MHz。默认情况计数时钟为板内时钟LOCAL-CLK,频率范围为620Hz~20MHz OUT Output 定时/计数器输出,只有禁止时钟输出时为计数器OUT输出,否则AD的时钟输出CLKOUT。默认下为计数器OUT输出,参考地请使用DGND GATE DGND
Input 定时/计数器门控输入,参考地请使用DGND 数字地,使用定时/计数器时建议应用数字地 Input Input Output 模拟外触发信号输入,参考地为AGND 数字触发信号输入,参考地请使用DGND 输出5V电源 2.4 各种信号的连接方法
(1)AD模拟量输入的信号连接方法
- 18 -
AD单端输入连接方式:指使用单个通道实现某个信号的输入,同时多个信号的参考地共用一个接地点。此种方式主要应用在干扰不大,通道数相对较多的场合。可按下图连接成模拟电压单端输入方式,32路模拟输入信号连接到AI0-AI31端,其公共地连接到AGND端。如下图2.3:
图2.3
AD双端输入连接方式:指使用正负两个通路实现某个信号的输入,该方式也叫差分输入方式。此方式主要应用在干扰较大,通道数相对较少的场合。单、双端方式的实现由软件设置。
(2)DA模拟量输出的信号连接方法如图2.4
图2.4
(3)DI数字量输入的信号连接方法如下图2.5
- 19 -
图2.5
(4)DO数字量输出的信号连接方法如下图2.6
图2.6
(5)时钟输入输出和触发信号连接方法如下图2.7
- 20 -
图2.7
2.5各种功能的使用方法
(1)AD触发功能的使用方法 AD内触发功能: 在初始化AD时,若AD硬件参数ADPara.TriggerMode=PCI8602-TRIGMODE-SOFT时,则可实现内触发采集。在内触发采集功能下,调用StartDeviceProAD函数启动AD时,AD即刻进入转换过程,不等待其他任何外部硬件条件。也可以理解为软件触发。 AD外触发功能: 在初始化AD时,若AD硬件参数ADPara.TriggerMode=PCI8602-TRIGMODE-POST时,则可以实现外触发采集。在外触发采集功能下,调用StartDeivceProAD函数启动AD时,AD并不立即进入转换过程,而是要等待外部硬件触发源信号符号符合指定条件后才开始转换AD数据,也可以理解为硬件触发。关于在何条件下触发AD,由用户选择的触发模式(TriggerMode)、触发类型(TriggerType)、触发方向(TriggerDir)和触发源(TriggerSource)共同决定。触发源分为ATR模式触发和DTR数字触发。 ATR模拟触发功能:
触发信号为模拟信号时使用ATR触发,这种方式需要设置触发电平,触发电平由2路DA(AO0和AO1)输出的电压共同决定,且需要设置两路电压的大小关系AO1>AO0。触发类型分为边沿触发和脉冲触发,边沿触发就是捕获触发源信号相对于触发电平的信号变化特征来触发AD转换;脉冲电平触发就是捕获触发源信号大于或者小于触发电平作为条件来触发AD转换。 DTR数字触发功能:
触发信号为数字信号时使用DTR触发。触发类型为边沿触发和脉冲触发。 (2)AD内时钟与外时钟功能的使用方法
AD内始终功能是指使用板裁时钟振荡器经板裁逻辑控制电平根据用户的分频后产生的时钟信号去触发AD定时转换。AD外时钟功能是指使用板外的时钟信号来定时触发AD进行转换。
(3)AD连续与分组采集功能的使用方法
- 21 -
AD连续采集功能是指AD在采样过程中两个通道间的采样时间相等,采集过程中不停顿,连续不间断的采集数据。AD分组采集功能是指AD在采样过程中,组内各通道以内时钟的采样频率进行转换,每两组之间有一定的等待时间,这段时间称为组间间隔。组循环次数是指在同一组内每个通道循环采集的次数。在内时钟和固定频率的外时钟模式下,组与组之间的时间称为组周期。
2.6 CNT定时/计数功能
(1)功能概述
PCI8602的定时/计数器专为满足测量应用的计数和定时要求而设计,具有通用、现成的定时/计数元件所无法达到的功能。PCI8602的定时/计数是16位计数器,通常用作复杂测量系统中执行关键定时和同步功能的组件。按工作模式可以分为定时脉冲发生器和计数器方式,计数器方式包括简单计数和缓冲计数。在计数器模式下,选择禁止缓冲计数时为简单计数,选择允许缓冲计数时为缓冲计数。每种模式都有多种门控方式选择,适应于以下方面: ➢ 频率测量
➢ 边缘或事件计数(累加) ➢ 条件计数 ➢ 脉冲宽度测量 ➢ 事件的时间标注 ➢ 频率生成
➢ 脉冲序列生成和脉冲宽度调制(PWM) 计数器的OUT输出在上电时保持为低电平。 (2)计数器方式
在计数器功能模式下OUT输出在工作方式具有相同的规律:均作加“1”操作,当计数值达到65535时溢出,溢出标志为“1”,用户可以选择溢出后“停止计数”或“继续计数”,选择“停止计数”时,溢出后计数值保持65535,计数器OUT输出保持电平;选择“继续计数”时,溢出后计数器才从初值开始加“1”计数,OUT输出高电平,第二次溢出时,OUT输出低电平,以此类推。默认情况下为“停止计数”。 (3)脉冲发生器方式
脉冲发生器方式下OUT输出类型分为占空比方波和脉冲,需要设置两个数值,即计数初值和脉冲宽度,计数初值设置的是输出低电平的持续时间:脉冲宽度设置的是输出高电平的持续时间。每个计数时间基准由CLK的脉冲周期决定。这两个参数是由软件上函数SetDeviceCNT设置,脉冲发生器输出分为单次触发脉冲输出、重复触发脉冲输出和连续脉冲串输出。
- 22 -
第三章 PCI8602的编程函数
3.1 编程纲要
PCI8602是采用阿尔泰科技发展XX的产品,本函数的命名规则如下表3-1:
表3-1
缩写 Dev Pro Int Dam AD 全称 Deviece Program Interrupt Direct Access Digital Npt Para SRC TRIG CLK GND Lgc Phys
该板卡编程使用上层用户函数,具有相当的灵活性、可靠性和高效性。例如InitDeviceProAD、InitDeviceDmaAD、ReadDeviceProAD Npt、SetDeviceDO等。
该板卡的驱动程序是采用面向对象编程,首先用CreateDevice函数创建一个设备对象句柄hDevice,再用InitDeviceProAD函数初始化AD部件,关于采样通道、频率等参数的设置是由这个函数的pADPara参数结构体系决定的,我们只需要对这个pADPara参数结构体的各个成员简单赋值即可实现所有硬件参数和设备状态的初始化,然后用StartDeviceProAD即可启动AD部件,开始进行采样,可以用ReadDeviceProAD Npt反复读取AD数据以实现连续性不间断采样。当需要暂停设备时,执行StopDeviceAD,当需要关闭AD设备时,ReleaseDeviceProAD便可帮您实现,最后将此句柄作为参数传递给相应的驱动函数最后可以通过ReleaseDevice将hDevice释放掉。本设计采用非空查
- 23 -
汉语意思 设备 程序 中断 取 缩写 DI DO CNT 全称 Digital Input Digital Output Counter to Analog 汉语意思 数字量输入 数字量输出 计数器 Memory 直接内存存DA DI Digital convert 书模转换 Differential (双端或差分)注:在常量选项中 Analog convert to 模数转换 Not Empty Parameter Source Source Clock Ground Logical Physical 非空 参数 源 源 时钟 地 逻辑的 物理的 SE DIR ATR DTR Cur OPT ID Single end Direction Analog Trigger Current Operate Identifier 单端 方向 模拟量触发 当前的 操作 标识 Digital Trigger 数字量触发 询方式取得AD,具体执行流程图如下图3.1:
开始 创建设备对象 重新初始化AD 初始化设备对象AD 启动AD设备 StarDeviceProAD() 以非空查询方式读取AD数据 用户对采集到的AD数据进行处理其代码应由用户根据需要缩写 接着上次再读AD数据 CreateDevice()
需要再紧接着读取AD数据以实现连续采集吗? 否 释放AD设备 ReleaseDeviceProAD() 需要 需要改变通道或频率或清FIFO后再采集吗? 不需要 释放设备对象 ReleaseDevice() 结束 图 3.1非空查询方式AD采集过程
是 - 24 -
3.2 PCI设备操作函数接口
Labview内嵌式驱动接口的获取如下图3.2所示:
图3.2 Labview内嵌式驱动接口的获取方法
设备驱动接口函数总列表(每个函数省略了前缀“PCI8602-” )如下表3-2:
表3-2
函数名 设备对象操作函数 CreateDevice CreateDeviceEx GetDveiceCount GetDveiceCurrentID ListDeviceDlg ReleaseDevice 程序方式AD读取函数 InitDeviceProAD SetDevFrequencyAD GetDevTriggerPos
函数功能 备注 创建PCI设备对象(用设备逻辑号) 创建PCI设备对象(用设备物理号) 取得同一种PCI设备的总台数 取得指定设备的逻辑ID和物理ID 列表所有同一中PCI设备的各种配置 关闭设备,且释放PCI总线设备对象 上层与底层用户 上层与底层用户 上层与底层用户 上层与底层用户 上层与底层用户 上层与底层用户 初始化AD部件准备输出 可动态改变AD采样频率 取得触发位置 - 25 -
上层用户 上层用户 StarDeviceProAD ReadDeviceProAD-Npt GetDevStatusProAD ReadDeivceProAD-Half StopDeviceProAD ReleaseDeviceProAD 启动AD设备,开始转换 连续读取当前PCI设备上的AD转换 取得当前PCI设备FIFO半满状态 连续批量读取PCI设备上的AD数据 暂停AD设备 释放设备上的AD部件 上层用户 上层用户 上层用户 上层用户 上层用户 上层用户 AD硬件参数系统保存、读取函数 LoadParaAD SaveParaAD ResetParaAD DA数据输出操作函数 InitDevProDA WriteDevProDA CNT计数定时器操作函数 InitDeviceCNT SetLCKFreqCNT SetDeviceCNT GetDeviceCNT GetDevStatusCNT ClrDeStatusCNT ReleaseDeviceCNT 开关量简易操作函数 GetDeviceDI SetDeviceDO RetDeviceDO
开关输入函数 开关输出函数 回读数字量输出状态 上层用户 上层用户 上层用户 初始化计数器 设置本地时钟频率 设置计数器的初值 取得各种计数器的当前计数值 获得计数器状态 清楚计数器状态 释放和停止计数/定时器 设置DA指定通道的输出量程 写DA数据 上层用户 上层用户 从Windows系统中读入硬件参数 往Windows系统写入设备硬件参数 将注册表中的AD参数恢复至出厂默认值 上层用户 上层用户 上层用户 Labview是美国国家仪器公司推出的一种基于图形开发、调试和运行程序的集成化环境,是目前国际上唯一的编译型的图形化编程语言。Labview开发环境具有一系列优点,从其流程图式的编程、不需预先编译就存在的语法检查、调试过程使用的数据探针,到其丰富的函数功能、数值分析、信号处理和设备驱动等功能都令人称道。其驱动程序接口单元模块的使用方法如下:
在Labview中打开PCI8602.VI文件,用鼠标单击接口单元图标,然后按Ctrl+C或选择Labview菜单Edit中的Copy命令,接着进入用户的应用程序Labview中,按Ctrl +V或选择Labview菜单Edit中的Paste命令,即可将接口单元加入到用户工程中,然后按以下函数原型说明或演示程序的说明连接接口模块即可顺利利用。
根据Labview语言本身的规定,接口单元图标以黑色的较粗的中间线为中心,以左边
- 26 -
的方格为数据输入端,右边的方格为数据的输出端。如ReadDeviceProAD Npt接口单元,设备对象句柄、用户分配的数据缓冲区、要求采集的数据长度等信息从接口单元左边输入端进入单元,待单元接口被执行后,需要返回给用户的数据从接口单元的输出端输出,其他接口完全同理。
在单元接口图标中,凡标有“132”为有符号长整型32位数据类型,“U16”为无符号短整型16位数据类型,“[U16]”为无符号16位短整型数组或缓冲区或指针,“[U32]”与“[U16]”同理,只是位数不一样。
设备对象管理函数原型说明
➢ 创建设备对象函数(逻辑号) Labview:
取hDevice,才能实现对该设备所有功能的访问。
功能:该函数使用逻辑号创建设备对象,并返回其设备对象句柄hDevice。只有成功获参数:DeviceLgclD逻辑设备ID(Logic Device Identifier)标识号。当向同一个Windows中加入若干相同类型的PCI设备时,其驱动程序将以设备的“基本名称”与DeviceLolD标识为后缀的标识符来确认和管理该设备。
返回值:如果执行成功,则返回设备对象句柄;如果没有成功,则返回错误INVALID-HANDLE-VALUE。 ➢ 创建设备对象函数(物理号)
功能:该函数使用物理ID号创建设备对象,并返回其设备对象句柄hDevice。只有成功获取hDevice才能实现对该设备所有功能的访问。
返回值:如果执行成功,则返回设备对象句柄;如果没有成功,则返回错误INVALID-HANDLE-VALUE。
➢ 取得本计算机系统中PCI8602S设备的总数量 Labview:
功能:取得PCI8602设备的数量。
参数:hDevice设备对象句柄,它应由GreateDevice或GreateDeviceEx创建。 返回值:返回系统中PCI8602的数量。 ➢ 取得该设备当前逻辑ID和物理ID
- 27 -
功能:取得指定设备逻辑和物理ID号。
参数:hDevice设备对象句柄,它指向要取得逻辑和物理号的设备,它应由GreateDevice或GreateDevice创建。DeviceLgclD返回设备的逻辑ID,它的取值范围为[0,15]。DevicePhyslD返回设备的物理ID,它的取值范围为[0,15],它的具体值由拨码器DID决定。
返回值:如果初始化设备对象成功,则返回TRUE,否则返回FALSE。 ➢ 用对话框控件列表计算机系统中所有PCI8602设备各种配置信息 功能:列表系统中PCI8602的硬件配置信息。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:若成功,则弹出对话框控件列表所有PCI8602设备的配置情况。 ➢ 释放设备对象所占的系统资源与设备对象 Labview:
功能:释放设备对象所占有的系统资源与设备对象本身。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:若成功,则返回TURE,否则返回FALSE。
3.2.2 AD程序查询方式采样操作函数原型说明
➢ 初始化AD设备
功能:负责初始化设备对象中的AD部件,为设备的操作就绪做有关工作。 参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:如果初始化设备对象成功,则返回TURE,否则返回FALSE。 ➢ 动态改变采样频率
功能:在AD采样过程中,可以动态改变采样频率。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。nADFrequency指定AD的当前采样频率。该设备的频率取值范围为[1,250KHz]。 返回值:如果调用成功,则返回TURE,否则返回FALSE。 ➢ 取得触发位置
功能:在AD内触发采样过程中,在外触发加一个触发信号,此函数可取得触发位置。 参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。nTriggerPros触发位置值。
返回值:如果调用成功,则返回TURE,否则返回FALSE。 ➢ 启动AD设备
功能:启动AD设备,调用InitDeviceProAD后才能调用此函数。该函数除了启动AD
- 28 -
设备开始转换以外,不改变设备的其他状态。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:如果调用成功,则返回TURE,且AD立刻开始转换,否则返回FALSE。 ➢ 读取PCI设备上的AD数据
功能:使用StartDeivceProAD后,就使用函数读取设备上的AD数据。此函数使用FIFO的非空标志进行读取AD数据。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。pADBuffer接受AD数据的用户缓冲区,它可以是一个用户定义的数组。nReadSizeWoeds指定一次ReadDeviceProAD Npt操作读取多少字数据到用户缓冲区。nRetSizeWords返回实际读取的点数(或数字)。
返回值:通常返回值应与ReadSizeWords参数指定量的数据长度相等。 ➢ 取得FIFO的状态标志
功能:使用StartDeivceProAD后,就用此函数查询FIFO存储器的状态。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。pADStatus获得AD的各种当前状态。
返回值:如果调用成功,则返回TURE,否则返回FALSE。 ➢ 当FIFO半满信号有效时,批量读取AD数据
功能:使用GetDevSatusProAD后取得的FIFO状态bHalf等于TURE(即半满状态有效)时,应立即用此函数读取设备上FIFO中的半满AD数据。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。pADBuffer接受AD数据的用户缓冲区,通常可以是一个用户定义的数组。nReadSizeWoeds指定一次ReadDeviceProAD Half操作读取多少字数据到用户缓冲区。nRetSizeWords返回实际读取的点数(或数字)。
返回值:如果成功的读取由nReadSizeWoeds参数指定量的AD数据到用户缓冲区,则返回TURE,否则返回FALSE。 ➢ 暂停AD设备
功能:暂停AD设备,要调用StarDeviceProAD后才能调用此函数。 参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:如果调用成功,则返回TURE,且AD立刻停止转换,否则返回FALSE。 ➢ 释放设备上的AD部件 Labview:
功能:释放设备上的AD部件。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:如果调用成功,则返回TURE,否则返回FALSE。
- 29 -
➢ 程序查询方式采样函数一般调用顺序 非空查询方式:
① CreateDevice ② InitDeviceProAD ③ StartDeviceProAD ④ ReadDeviceProAD-Npt ⑤ StopDeviceProAD ⑥ ReleaseDeviceProAD ⑦ ReleaseDevice
3.2.3 AD硬件参数保存与读取函数原型说明
➢ 从Windows系统中读入硬件参数函数
功能:把设置的硬件参数保存到Windows系统中。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:如果成功,则返回TURE,否则返回FALSE。 ➢ AD采样参数恢复至出厂默认值函数
功能:将系统中原来的AD参数值恢复至出厂时的默认值。以防不小心设置错误的参数而造成不好的结果。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。pADPara设备硬件参数在参数被复位后返回其复位后的值。 返回值:如果成功,则返回TURE,否则返回FALSE。
DA模拟量输出操作函数原型说明
➢ 初始化DA,如设置模拟量输出量程范围 功能:设置指定通道的模拟量输出量程范围。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。OuputRange指定通道的输出量程范围。nDAChannel需要指定的模拟量通道号,其范围为[0,3]。 返回值:如果成功,则返回TURE,由nDAChannel指定的通道被设置成由OuputRange指定的量程范围;否则返回FALSE。 ➢ 输出模拟信号到指定通道
功能:设置指定通道的模拟量输出量程范围
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。nDAData指输出的DA 原始码数据,其取值范围为[0,4095]。
返回值:如果成功,则返回TURE,由nDAChannel指定的通道被设置成由OuputRange指定的量程范围;否则返回FALSE。
- 30 -
➢ 以上函数调用一般顺序
① GreateDevice ② InitDeviceProDA ③ WriteDeviceDA ④ ReleaseDevice
CNT计数与定时器操作函数原型说明
➢ 初始化计数与定时器
功能:初始化设备对象中的CNT部件,为设备的操作就绪做好相关准备工作,初始化各路计数器/定时器。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。pCNTPara设备对象参数结构,决定了设备对象的各种状态与工作方式,如功能模式、时钟源等。 返回值:若成功,返回TURE,否则返回FALSE。 ➢ 设置时钟频率
功能:设置本地时钟频率,返回实际的分频数。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。Frequency时钟频率值。
返回值:返回实际的分频数。 ➢ 设置计数器的初值 功能:设置计数器的初值
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。CNTVal计数初值,在计数器模式下为计数初值,每当SOURCE管脚上有指定边沿产生时,则从该初始值做加1动作。在脉冲定时器发生器模式下为延时初始脉冲宽带(16位)。WidthVal宽度初值,COUNTER:无效,TIMER:输出脉冲宽度(16位)。 返回值:若成功,返回TURE,否则返回FALSE。 ➢ 获得计数器状态 功能:获得计数器状态
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。bOverflow获得的计数器溢出标志,=TURE:表示计数器已溢出,=FALSE:表示未溢出。bBufferRefresh获得的计数器缓冲更新标志,=TURE:表示缓冲已被更新,=FALSE:表示未更新。bBufferLost获得计数器缓冲丢失标志,=TURE:表示缓冲已被丢失,=FALSE:表示未被丢失。
返回值:若成功,返回TURE,否则返回FALSE。 ➢ 清除计数器状态
功能:清除计数器状态,如溢出标志、计数器缓冲更新标志、计数器缓冲丢失标志。 参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。bClrOverflow
- 31 -
是否清除计数器溢出标志,=TURE:表示清除,=FALSE:表示不清除。bClrBufferRefresh是否清除计数器缓冲更新标志,=TURE:表示清除,=FALSE:表示不清除。bClrBufferLost是否计数器缓冲丢失标志,=TURE:表示清除,=FALSE:表示不清除。 返回值:若成功,返回TURE,否则返回FALSE。 ➢ 释放和停止计数/定时器 功能:释放和停止计数/定时器
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。 返回值:若成功,返回TURE,否则返回FALSE。
DIO数字量输入输出开关量操作函数原型说明
➢ 开关量输入
负责将PCI设备上的输入开关量状态读入到bDISts[x]数组参数中。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。bDISts是十六路开关量输入状态的参数结构,有8个元素,分别为DI0-DI17路开关量输入状态位。 返回值:若成功,返回TURE,其bDISts[x]中的值有效;否则返回FALSE,其bDISts[x]中的值无效。 ➢ 开关量输出
功能:将PCI设备上的输出开关量置成由bDOSts[x]指定的相应状态、
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。bDOSts是十六路开关量输出状态的参数结构,有8个元素,分别为DO0-DO17路开关量输出状态位。 返回值:若成功,返回TURE,否则返回FALSE。 ➢ 回读数字量输出状态
功能:将PCI设备上的输出开关量置成由bDOSts[x]指定的相应状态。
参数:hDevice设备对象句柄,它由GreateDevice或GreateDeviceEx创建。bDOSts获得开关输出状态。
返回值:若成功,返回TURE,否则返回FALSE。
- 32 -
第四章 数据采集的程序设计
4.1 前面板设计
图4.1 前面板
前面板由2个部分组成:
(1)AD采样曲线。在前面板为采样曲线,横轴为时间轴,纵轴为100A/mV的分割线。
(2)AD采样参数设置。包括采样频率、量程选择、增益选择,其余参数为固定值,在本系统运行时无需再次设定,故已经在程序中固化,没有在前面板加设置选项。最后为停止按钮,控制采集的停止。
4.2 程序后面板设计
- 33 -
程序结构主要由一个堆叠结构构成,第一步为创建PCI8602采集设备的ID号(为int32 型,用逻辑号创建设备对象),即选通硬件采集通道;第二步在对设备进行初始化启动,即采样参数的设置,各个硬件参数分别为: AD模式选择(连续/分组方式) 首通道,取值范围为[0,31] 末通道,取值范围[0,31]
采集频率,单位为Hz,[1,100000]
分组时的组间间隔(单位:微妙)[1,419430] 组内循环次数[1,255] 增益设置,为int32 型
模拟量输入量程范围,为int32 型 触发模式(内/外触发选择) 触发源选择
触发类型选择(边沿触发/脉冲触发) 触发方向选择(正向/负向触发) 触发灵敏窗[1,65535],单位25秒 时钟源选择(内/外时钟源) BClockOutput GroundingModel
第三步为一个循环结构,即循环读取AD通道数据,并不断在虚拟示波器上显示;第四步为释放AD采集通道,即当按下停止键时,停止采集,释放AD通道;第五步为释放PCI8602设备,即硬件停止工作。
- 34 -
(1)创建设备对象
- 35 -
(2)初始化启动AD模块
- 36 -
(3)以非空查询读取AD数据
- 37 -
(4)释放AD设备
- 38 -
(5)释放设备
- 39 -
4.3 vi层次结构
通过在主菜单选项中选择“查看—vi层次结构”可以调出程序的vi层次结构图如图4.3:
图4.3 层次结构图
vi层次图中以vi图标代表各个vi,能够清楚地展现出分层式的金字塔结构。在此层次图中,当鼠标移动到某一个vi图标上后,会自动显示出vi的名称。用鼠标双击任何一个vi,就能打开vi的前面板进行编辑,也能通过鼠标右键菜单进行一些简单的操作,如显示或者隐藏所有子vi、编辑vi图标、设置vi属性等。
如果一个vi存在直接调用的子vi或子节点,其图标下方会出现指向下方的小三角箭头,在所有直接调用的子vi已经显示时,该箭头为黑色,单击箭头可以隐藏这些子vi,并使箭头变为向上的红色小三角箭头,再单击箭头可以重新显示这些子vi,这在vi层次比较复杂时可以用来隐藏某些暂时不需要浏览的枝节关系。
- 40 -
第五章 采集实验结果与总结
5.1 实验结果
采集系统前面板运行情况如下图5.1:
图5.1 前面板
- 41 -
5.2 总结与展望
本次数据采集系统应用了阿尔泰公司的PCI8602数据采集卡以与NI公司的Labview软件,完成了对信号的采集与处理;与传统的数据采集系统相比,该采集系统交价格低廉、使用性强、开发周期短、数据处理简单方便,框图程序更加直观。并且可以重复性地开发、利用,不断对本系统的硬件和软件进行升级,获得强大的数据采集功能。
正在迅速发展的虚拟仪器能够取代测量技术领域的传统仪器。虚拟仪器在组成和改变仪器的功能和技术性能方面具有灵活性和经济性,因而特别适用于当代科学技术迅速发展和测量的需求。
- 42 -
致谢
毕业设计(论文)暂告收尾,这也意味着我大学四年的学习生活即将结束,回首大学四年,自己真的学到了很多,不仅有书本上的知识,还有做人的道理,而这些都要感谢各位老师、同学和朋友的关心、支持和鼓励。
感谢学校的各位领导悉心栽培和各位老师不辞辛苦的教导,特别感谢卓旭升老师对毕业设计(论文)的细心耐心的指导和教育。从最初的定题,到资料收集,到写作、修改,到论文定稿,卓老师这种无私奉献的敬业精神令人佩服,在此我向他表示我最诚挚的谢意。同时在毕业设计期间,特别的感谢同组同学们的帮助。
最后我要感谢我的家人以与我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义。
- 43 -
参考文献
[1]贾佳.基于LabVIEW的PCI数据采集系统设计[J].工业仪表与自动化装置.2012/06 [2]赵易彬; 周以琳.基于LabVIEW的数据采集系统[J].青岛科技大学学报(自然科学版). 2005-10-30
[3]曾璐; 陆荣双.基于LabVIEW的数据采集系统设计[J].电子技术.2004-12-12 [4]向科峰.基于LabVIEW的数据采集系统设计与实现[J].机械管理开发.2011-08-15 [5]任璐娟; 韩焱.基于LabVIEW和PCI-5124的数据采集系统设计[J].电子设计工程. 2010-02-05
[6]孟武胜; 朱剑波; 黄鸿; 赵晨光.基于LabVIEW数据采集系统的设计[J].电子测量技术.2008-11-15
[7]张军峰; 王燕燕.基于PCL-816和LabVIEW的高速数据采集系统设计[J].机械设计与制造 .2007-07-08
[8]冯雪.数据采集卡性能指标与应用[J].工业控制计算机.2008-05-25 [9]马明建,周长城.数据采集与处理技术[M].西安交通大学.1998
[10]刘君华.虚拟仪器图形化编程语言LabVIEW教程[M].西安电子科技大学. 2001 [11]张正茂,左维.PCI总线数据采集卡设计[J].光电技术应用.2004(04) [12]邓焱,王磊等.LabVIEW7.1测试技术与仪器应用[M].机械工业.2004
[13].虚拟仪器技术在我国的应用前景[J].XX大学学报(理工版).2001(01) [14]H.Q. Liao , Z.R. Qiu , G.H. Feng; The Design of LDF Data Acquisition System Based on LabVIEW[J]; Procedia Environmental Sciences; 2012-8
[15]Gilbert-Rainer Gillich , Doina Frunzaverde , Nicoleta Gillich , Daniel Amariei.The use of virtual instruments in engineering education[J].Procedia - Social and Behavioral Sciences. 2010-2
[16]Liu Daming , Luo Jiarong , Zhao Yanping , Qin Chengming.Development of Data Acquisition Card Driver for ICRH System on EAST[J].Plasma Science and Technology. 2008-2
[17]Ernest O.Doebelin.Measurement Systems Application and Design.China machine press
- 44 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务