基于LABVIEW平台的数据采集卡软件设计

基于LABVIEW平台的数据采集卡软件设计
基于LABVIEW平台的数据采集卡软件设计

基于LABVIEW平台的数据采集卡软件设计

引言

作为专业测控领域的软件开发平台,LABVIEW内含丰富的数据采集、数据信号分析以及功能强大的DAQ 助手,搭建数据采集系统更为轻松,便于硬件设计人员直接对硬件的操控展开设计。此外,它可通过DLL、CIN节点、ActiveX、.NET或MATLAB脚本节点等技术,实现与其它编程语言混合编程,通过调用外部驱动代码使它与设备的连接变得非常容易。由于采用数据流模型,LABVIEW可以自动规划多线程任务,可充分利用PC系统处理器的处理能力,从而提高模块的采集效率。本文基于LABVIEW开发环境,以库函数节点的调用方式及结构,实现了一种中频数据采集与处理卡软件的设计。

数据采集卡软件结构

采集卡软件是基于PC的数据采集系统重要组成部分,它与硬件形成一个完整的数据采集、分析和显示系统,软件分为上层应用程序和驱动程序。上层应用程序用以完成数据的分析、存储和显示等。驱动程序则可直接对数据采集硬件的寄存器编程,管理数据采集硬件的操作并把它和处理器中断、DMA和内存这些计算机资源结合在一起。

驱动程序隐藏了复杂的硬件底层编程细节,为用户提供容易理解的接口。NI公司为基于NI数据采集设备的数据采集系统提供了相应的接口驱动及VI函数 (VI,Virtual Instrument)。对于一些不常见的硬件设备或用户研发的硬件设备,NI没有提供合适的驱动。但是,如前所述,LABVIEW还提供了很多其它的通信接口,包括调用库函数节点(Call Library Function Node, CLF)、代码接口节点(Code Interface Node, CIN)、TCP/IP、Data Socket、OPC、共享变量、DDE和.NET等。通过这些通信接口,LABVIEW能够实现与任何设备的通信。值得留意的是LABVIEW具有调用库函数节点和代码接口节点两种方法,可以结合C语言的编程灵活性和LABVIEW G语言的直观便捷特点,大幅提高LABVIEW对用户数据采集卡的软件设计支持。可进一步利用LABVIEW丰富的数据分析资源,节约系统开发成本。

LABVIEW提供的数据采集卡的常用驱动方式有两种,调用C语言源代码方式(CIN方式),以及调用动态链接库方式(CLF方式)。

CIN方式是实现LABVIEW与C语言混合编程的一种媒介,CIN通过输入、输出端口实现两种语言之间的数据传递。输入、输出端口的个数可由设计者根据实际需要确定,当LABVIEW的程序运行到CIN节点时,数据由CIN的输入端口传递给C源代码图标,程序转去执行C源代码,代码执行完后,执行的数据结果由CIN输出端口返回至LABVIEW。

CLF是一种动态链接库(DLL)的调用方式。DLL是一种应用程序在运行时与库文件连接起来的技术,在WINDOWS的管理下,应用程序与对应DLL之间建立链接关系,根据链接产生的重定位信息,转去执行DLL 中相应的代码。LABVIEW中,可通过CLF(调用路径为Function>>Advanced>>Call Library Function)功能模块实现调用。

调用CIN节点需要有C语言编程的支持,它能够将代码集成在VI中作为单独的一个VI发布,CIN 支持的参数类型比DLL 函数多,可使用LABVIEW 定义的任何参数类型,但制作CIN的过程复杂得多。使用这种方法的缺点是在数据采集过程中不能实时地进行数据的显示,只能在数据全部采集结束后再一起显示所采集的全部数据,这样在需要较高执行效率的场合就不适用。其次由于CIN节点在制作数据采集卡的驱动

时,需要提供采集卡的硬件参数,需编制对硬件设备进行底层操作的库函数,对于不清楚函数内核的程序员不适用。相比CIN方式,CLF方式更加简单易学,开发者只需要熟悉DLL中的各个函数功能以及函数的参数及类型,在本文设计中,拟采用CLF方式实现驱动程序的调用。

基于CLF方式的采集卡软件设计

本文所涉及的软件控制对象是一款中频数据采集与处理卡,具有14位A/D精度,最高采样频率为105MHz,4路模拟量输入,提供高精度中频信号数字化、多通道、多模式数字下变频(DDC)等数字处理,软件结构详见图1。

图1 采集卡的软件结构

图2 VI的层级结构

LABVIEW应用程序分为用户界面和图标代码,通过搭建和调用子VI编写主体程序,各VI利用LABVIEW 的CLF技术调用动态链接库中的驱动函数,实现与硬件设备的数据交换。子VI将基本的驱动函数进行功能封装。一个完整的LABVIEW应用程序通常由若干个子VI及其外部编程连线构成,VI的层级结构设计是设计虚拟仪器驱动程序的核心,各VI分别为组成驱动程序的模块化子程序。设计中,动态链接库由VC编写,调用底层的驱动函数与设备通信。软件包括两类子VI函数集合,一类是低层组件VI集合,分为若干个独立的软件功能模块,每个模块负责控制仪器的某项特殊功能,这类VI是仪器驱动程序的基础;另一类为高层应用VI集合,应用VI通过调用合适的组件VI以实现最通常的仪器设置和测量任务。显然,就驱动程序开发而言,能否根据硬件特性成功构建组件VI集合是关键所在。VI层次结构如图2所示。

如图所示,按功能有两个高层应用子VI集合:Config.vi,Config DDC.vi,这两个子VI又分别调用低层组件子VI来完成特定的设置、配置任务。Config.vi完成采集卡的常规配置,例如对采集卡单次采集数量、FIFO满深度、寄存器(硬件通道、时钟、触发、采集方式、采集模式等的控制)设置、采集卡的状态查询等;Config DDC.vi完成DDC的所有配置工作,包括对DDC的模式、抽取率、输出格式、本振频率、本振相位、增益、CFIR滤波参数、PFIR滤波参数等的设置,从而实现DDC的数字IQ分离、抽取、数字滤波、重采样、多级增益调节、多种调制方式的解调等功能。其余低层组件VI实现设备的打开关闭、数据从数据采集卡到主机内存的传送、数据保存等。无论应用子VI或组件子VI均为独立可执行程序,实现特定功能,各VI函数作为提供给用户进行系统应用开发所需的各类操作。采用该结构,能够使用户在运行时修改虚拟仪器系统的运行逻辑与人机界面,可立即执行,因此在用户需要改变需求的情况下能迅速适配,数据采集卡具有可重构的特点,用户也不必去关心硬件的实现细节。

DLL的调用

在LABVIEW 中调用DLL时,把编写好的DLL放在当前目录或特定目录下,然后根据应用程序的需要,确定参数个数和参数类型及调用规则,在LABVIEW中正确地配置DLL 。首先从函数模板Function 中调用CLF 节点,双击弹出设置对话框,如图2所示。对话框中,第一个参数Library Name Path 填入需要调用的动态链接库文件的名字和路径。第二个参数Function Name 是链接库中要调用的函数名称。第三个参数为线程调用方式,在DLL只被一个线程调用的情况下,两种调用方式都可选择,但在多线程调用情况下,需注意选择。Run in UI Thread 表示在用户接口线路中调用,DLL 的执行期将等到用户接口线程(即LABVIEW 环境下的VI 应用程序) 执行DLL 的导出函数调用时才开始;Run in any Thread 表示允许多个线程同时调用这个DLL。在编制DLL 过程中,充分考虑了线程保护的同步机制,如使用临界区、互斥、信号量等,线程安全较为确定,那么可以选用Run in any Thread方式,这将有助于提高DLL调用的性能;反之,可选Run in UI Thread。第四个参数是对DLL的调用规则,可选择C或stdcall,在此选择stdcall。LABVIEW 调用库函数设置界面如图3所示,其中Parameters项是对参数选项的设置,根据调用的函数,添加和设置相应的参数,参数名称、类型和数据类型,且要与被调用函数中的参数名相同。需要注意的是,当调用多个函数时要分别填写参数的个数和对应的类型,而且在调用过程中应保持数据位的一致。由于LABVIEW中的数据类型和不同编程语言对应的数据类型在形式上有些不一致,因此需要知道它们是如何对应的。如:LABVIEW中I16表示有符号16位整型,对应C语言中的short型。

设置后,LABVIEW将自动生成各参数的入口及出口状态,完成调用库函数节点的配置。对于外部的编程和连线,如Trigger.vi,如图4所示。

图3 LABVIEW调用库函数设置界面

图4 Trigger子VI程序框图

DLL调用中的参数类型匹配

在LABVIEW中调用动态链接库,难点在于参数类型匹配。最常用的三种数据类型是:数值类型、字符串、数值型数组。设计中,将采集数据传送到内存块过程涉及到带数组参数的函数调用,值得注意的是,LABVIEW 只支持 C 数据类型中的数值型数组,调用含有数组参数函数时,传递数组类型“Array Format”要选择“Array Data Pointer”。这个设置中还有其他两个选项(Array Handle,Array Handle Pointer),这种带有“Handle”的参数类型都是表示LABVIEW定义的特殊类型的,在第三方的DLL中不会使用到。按前述步骤设置好CLF节点,连接外部输入(采集数量size)和输出(存放采集数据的数组)后,输出没有反应,检查分析得知,数组参数作为输出值时,要为输出的数组数据开辟空间,将输入数据的指针复制给输出数组数据指针并传给驱动函数。在LABVIEW中开辟数据空间的方法有两种:

1.创建一个长度满足要求的数组,作为初始值传递给输入参数,输出数据就会被放置在输入数组所在的内存空间内。

2.直接在参数配置面板上进行设置。在 Minimum size 中写入一个固定的数值或选择函数的其它数据参数,LABVIEW 就会按此大小为输出数组开辟空间。

详细设置如表1所示。字符串的使用与数组非常类似,实际上在C语言中字符串就是一个I8数组。

表1 调用含有数组参数函数举例

图5 采集波形显示图

此外,布尔类型在DLL函数和LABVIEW VI之间传递没有专有的数据类型,需利用数值类型来传递。输入时先把布尔值转变为数值,传递给DLL函数;输出时把数值转为布尔值。对于所调用的DLL 库函数的参数类型,如果在配置框中找不到匹配的类型,可以在Type 框中选Adapt to Type,表示编程时指定的LABVIEW 数据类型与DLL中参数类型进行自动匹配。LABVIEW也定义了一些特有的数据类型,例如复数类型、LV布尔类型。为了在动态链接库中能对这些类型的数据进行操作,在LABVIEW目录中的extcode.h文件对LABVIEW 的各种数据类型进行了定义。在编写动态链接库时,通过引用该文件就可以在C代码中对LABVIEW的这些独有数据类型进行操作。

实验与结论

程序设计采用循环顺序执行结构,主要设置三个调用动态链接库节点。循环顺序执行结构中包括三帧,第一帧调用Config函数进行数据采集卡的初始化;第二帧循环调用datatrans函数采集数据至内存,并用波形图显示出来;第三帧调用deviceshut函数释放采集卡所占资源,程序结束。图5是设计完成的采集卡软件工作界面,图中显示了对系统采集参数、处理参数配置以及采集波形的显示等,波形显示了对正弦信号采集4096个有效数据点。

结果表明,数据卡的接口工作稳定,数据正确无误,达到了设计的目标。上述方法成功实现了LABVIEW 与采集卡驱动程序的数据交换,进而利用LABVIEW丰富的函数库,能方便地实现采集卡的所有功能,搭建了以LABVIEW为应用程序的数字采集处理系统。很明显这种集成了VC++和LABVIEW图形化编程语言各自优势的采集处理系统不仅性价比高、通用性强、易于开发、数据处理简单,且可以大大缩短开发时间。采用CLF 技术,充分利用已有的动态链接程序库,可大大增强LABVIEW 和底层硬件的通信能力。来源:xinxin

利用LabVIEW软件进行控制设计和仿真入门

利用LabVIEW软件进行控制设计和仿真入门 这个章节将集中介绍LabVIEW软件中的控制系统设计的基本特性。我们在这里假定读者们已经熟悉了LabVIEW软件的其它部分。(如果你对LabVIEW软件的其它部分不熟悉,请参考Robert H. Bishop的‘Learning with LabVIEW’)。 每一章的专用信息会包含在那一章的简介中 在我们开始之前,请确保你的计算机上已经安装了可使用的控制设计和仿真工具包。它们不是LabVIEW 基本软件的一部分,而是需要单独购买的。 LabVIEW软件的控制设计工具包 控制设计工具包可以在结构框图的All Functions选板中找到。 下面将简要介绍控制设计选板中每个单独工具的用法。我们将介绍在子选板中出现的函数。如需进一步的描述,请查看LabVIEW软件的帮助文档。 当帮助菜单中的文字帮助窗口被打开时,你可以在相应的文字帮助窗口中看到关于每个函数的描述。 模型创建选板:

这节中的函数用于创建各种类型的模型,例如状态空间模型、传递函数模型和零点/极点/增益模型等。下面将讨论创建状态空间模型和创建传递函数模型函数。 控制设计工具包中的创建状态空间模型 函数的端子如上图所示。如果采样间隔端子没有连接,那么系统被默认为是连续采样。将一个值连到采样间隔端子上会使系统变为离散系统,它使用给定的时间作为采样间隔。状态空间模型的A、B、C、D 矩阵都有对应的端子。一旦LabVIEW软件创建了状态空间模型(其输出端子可用),该模型就可以用于其它函数并且可以转化成其它的形式,在这一节里我们将进行更加深入的讨论。 下面就是创建状态空间模型的一个例子。它的输出端可以连接到控制设计工具包中很多其它函数上,作为它们的输入端。

(整理)基于LabVIEW和DAQmx的温度采集与控制系统1.

基于LabVIEW和DAQmx的温度采集与控制系统 学院:工程学院 专业:电子信息工程 姓名: 学号: 指导教师:

摘要 虚拟仪器的技术基础是计算机技术,核心是计算机软件技术。随着现代测试技术的不断发展,以LABVIEW为软件平台虚拟仪器测量技术正在现代测控领域占据越来越重要的位置。本次设计报告首先给出了虚拟温度测量系统总体方案的设计,然后对数据采集模块和LABVIEW的软件模块进行了设计。基LabVIEW为软件平台,通过热电偶冷端补偿的方法进行温度测量。有效地运用了LabVIEW虚拟仪器技术,将诸多重要步骤都在配备硬件的普通PC电脑上完成,与传统的温度测量仪表相比,该系统具有结构简单、成本低、构建方便、工作可靠等特点.具有较高应用价值,是虚拟仪器技术应用于温度测量领域的一个典型范例。 关键词:温度测量;LabVIEW虚拟仪器;热电偶;冷端补偿

目录 一、设计任务 (4) 二、设计所需设备 (5) 三、设计要求: (5) 四、设计步骤 (6) 五、总体方案的设计................................................................................... 错误!未定义书签。 六、LABVIEW软件模块的设计 (7) 6.1 温度信号处理的设计 (7) 6.1.1 前面板设计 (7) 6.1.2 框图程序设计(这里要根据我们的图描述) (7) 七、系统调试及结果分析 (10) 结论及尚存在的问题..................................................................................... 错误!未定义书签。课程设计感想 (12)

基于LABVIEW的数字电压表的设计

学号 XX 虚拟仪器 学生姓名XX 专业班级XX

基于LABVIEW的数字电压表的设计 一、设计目的 1.掌握数字电压表的基本原理和方法。 2.基于LabView设计数字电压表并实现。 二、设计原理 电压是电路中常用的电信号,通过电压测量,利用基本公式可以导出其他的参数。因此,电压测量是其他许多电参数和非电参数量的基础。测量电压相当普及的一种测量仪表就是电压表,但常用的是模拟电压表。模拟电压表根据检波方式的不同。分为峰值电压表、均值电压表和平均值电压表,它们都各自做成独立的仪表。这样,使用模拟电压表进行交流电压测量时,必须根据测量要求选择仪表。另外,多数电压表的表头是按正弦交流有效值刻度的,而测量非正弦波时,必须经过换算才能得到正确的测量结果,从而给实际工作带来不便。 采用虚拟电压表,可将表征交流电压特征的峰值、平均值和有效值集中显示在一块面板上,测量时可根据波形在面板上选择仪表,用户仅通过面板指示值就能对测量结果进行分析比较,大大简化了测量步骤。 三、设计思路 LabVIEw 8.5版本的工程技术比以往任何一个版本都丰富.它采用了英文界面,各个控件的功能一目了然。利用它全新的用户界面对象和功能,能开发出专业化、可完全自定义的前面板。LabVIEW 8.2对数学、信号处理和分析也进行了重大的补充和完善,信号处理分析和数学具有更为全面和强大的库,其中包括500多个函数。所以在LabVIEW 8.5版本下能够更方便地实现虚拟电压表的设计。 该电压表主要用于电路分析和模拟电子技术等实验课的教学和测量仪器,能够让使用者了解和掌握电压的测量和电压表对各种波形的不同响应。因此,虚拟电压表应具备电源开关控制、波形选择,以及显示峰值、有效值和平均值三种结果,且输入信号的大小可调节等功能。所以,用软件虚拟了一个信号发生器。该信号发生器可产生正弦波、方波和三角波,还可以输入公式,产生任意波形。根据需要,可调节面板上的控件来改变信号的频率和幅度等可调参数,然后检测电压表的运行情况。因此,在LabVIEW图形语言环境下设计的虚拟电压表主要分为

基于labview温度数据采集文献综述

基于LabVIEW温度数据采集文献综述 摘要:本课题介绍了虚拟仪器概况及其发展背景;通过对虚拟仪器的学习和研究,运用软件工具,实现温度显示系统的模拟。实现系统软件设计思路是:利用LabVIEW中的各种控件,实现温度数据采集显示。利用虚拟仪器的优越性实现了基于操作系统下的交通终端服务系统的展示部分。 关键字:labVIEW,温度,数据采集 引言 美国国家仪器公司推出的LabVIEW不仅是一个图形化编程语言,而且是一个广泛应用于虚拟测控系统的虚拟仪器平台,它与数据采集卡一起构成虚拟测试仪器,其测试系统的构建可以通过图形化的语言描述,组态容易,设计简单,广泛应用于测量与控制[2] 。 LabVIEW是虚拟仪器领域中最具有代表性的图形化编程开发平台[1] ,是目前国际上首推并应用最广的数据采集和控制开发环境之一,主要应用于仪器控制、数据采集、数据分析、数据显示等领域,并适用于多种不同的操作系统平台。与传统程序语言不同,LabVIEW采用强大的图形化语言(G 语言)编程,面向测试工程师而非专业程序员,编程非常方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力等特点。使用LabVIEW 开发环境,用户可以创建32位的编译程序,从而为常规的数据采集、测试、测量等任务提供了更快的运行速度。LabVIEW是真正的编译器,用户可以创建独立的可执行文件,且该文件能够脱离开发环境而单独运行[4] 。 1.1虚拟仪器的优势 1.经济实惠 2.方便适用 3.提高测试效果 4.开放且灵活 远程虚拟仪器的优势在于不受地域限制,功能可由用户自己定义,且构建容易,所以使用面极为广泛,是科研、开发、测量、检测、计量、测控等领域不可多得的好工具,更值得一提的是它可应用在高危险的区域进行在线的数据采集和检测[5]。使测量人员的工作不但摆脱了地理位置和条件的限制,还可以通过Intcrnet把所采集到的数据自动地转送到另一台计算机进行评估[8]。 1.2 VI及相关知识 使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。VI包括三个部分:程序前面板、框图程序和图标/ 连接器。程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。控制和显示是以各种图标形

基于LABVIEW的用户登录界面设计

基于LABVIEW的用户登录界面设计 Labview具有功能强大的数学工具,用在传感器设计上可大大降低软件的设计负担。对于一个实际的传感器使用,其用户数量有限,其登陆界面设计可以完全借助其数组函数与数据记录文件完成,而不就是数据库,这样既减轻了系统的重量,也减轻了系统的负荷。没有牵涉第三方的软件,系统的稳定性也大大提高。本文设计了一个简单的用户登录系统的2个模块,希望能对读者有所启发。 1)用户初始文件的建立 Labview的数据记录文件具有较强的功能,并且不能用写字本打开,因此作为一般的保密级别可以用来存储初程序运行环境数据,本文用来存储登陆系统的用户数据。 本程序采用两个套嵌while循环,用于批量产生用户名单,内While

采用三个文本输入框,分别输入用户姓名、用户初始密码、用户权限等内容,并用系统时间空间获取用户建立时间,通过数组创建函数创建成一维数组,点击确定键完成一个用户的建立,可以继续进行下一个用户的建立(当然您也可以只建立一个超级用户,在超级用户登陆后继续建立用户名单),用户建立完毕点击停止按钮完成用户名单建立,形成一个二维数组,由于点击停止键时,最后一个用户名单会重复建立,故采用数组删除函数去掉最后一行,然后创建一个文件,用数据记录函数将该名单存储在您希望的文件夹内(本例放在桌面上,面板上的数组就是为验证程序而建立的,可以去掉)。 2)登陆界面 登陆面板实际上只有两个文本输入控件:用户名与密码。程序首先将记录文件读入内存,让后将第一列(索引0列)的所有用户列出来,用一维数组搜索函数搜索该用户密码所在的行号,再用该行号将该用户的信息从记录文件索引出来。由于密码放在第二列(1列),直接从用户的记录信息索引第第二列(索引1列)取出该用户密码),直接用文本比较“等于”函数进行比较用户输入的密码就是否与其预设的密码一致。 至于修改用户名单、用户权限等内容可用“数组的删除、插入”

基于Labview的数据采集系统设计

武汉工程大学邮电与信息工程学院 毕业设计(论文)说明书 论文题目基于Labview的数据采集系统设计 2013年5月25日

目录 摘要........................................................................................................................................ I I 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 -

中大型LABVIEW软件三层设计架构

通常一个VI若包含三、四十个以上的subVI(不包含LabVIEW本身在Functions中提供的VI)时,就可算是一个中大型的软件计划(software project)了。虽然比起软件工程中的一些作业环境软件(如Windows系列)或大型应用软件(如Word、Excel)等仍算是小工程,但其复杂性亦在一定程度之上,若没有事先想好在撰写程序时的一些规划与方法,想要完成这类中大型的软件绝对不是一件简单的事。尤其这类软件通常不是由一个人,而是由一个团队所共同完成的,因此整个软件的结构,就要能让团队中的每一成员都能清楚的了解,而且要够简单,才算是好的软件结构。以下将参考由Rick Bitter等人所着”LabVIEW Advanced Programming Techniques”,中之第4章的部分内容,介绍所谓软件计划中的三层式结构(the Three-Tiered Structure)的概念及其优点。 需要软件结构的主要原因,是当软件人员发展软件到某一阶段时,若没有计划或无意的创造了许多subVI,但各subVI之间有许多部分其实是重复撰写的;或各VI相互间呼叫时没有一定的纪律,使得在VI Hierarchy中所看到的各VI间的联机是错综复杂,像个盘丝洞一般,这将可能会使多人发展的软件计划增加所耗费的时间和可能出错的机会、减低程序的效率,以及增加debugging时的困难。为了改善上述的情形,所以要提倡三层式结构的概念。 三层式结构由上而下依次为:Main Level、Test Level和Driver Level,这种结构是由经验中得来的,在多人发展的软件计划中显得简单明了,当大家都能遵照这个结构来写程序时,这种结构就可以充分显现出它的优点。那这三个阶层到底如何区别呢?以通俗的比喻来说,假设我们如果要组织一个篮球队参加全国比赛,每个球员要练习基本动作及体能,如何跑、如何跳、手脚该如何放置才是正确位置等,这就相当于系统中Driver Level所做的事情;接下来,将各球员组合练习某一套防守或进攻的战术,如二三区域联防、人盯人防守,每个人该在什么位置才能正确接应等,则像是T est Level中一项项的test了;而最后比赛时,场上的战略运用,包括何时要用什么战术组合、如何更换球员、何时喊暂停、终场前是不是要故意犯规或采拖延战术等等,对照过来,就像是在Main Level中,如何将T est Level中各test 做最有效能的整合与排列组合等的工作。 简单来说,Driver Level包含了程序与所有仪器、组件、马达或其它应用软件的沟通、控制等较低阶的事情,使其可完成某一项基本的动作,例如初始化、马达走到home位置、雷射以设定的能量及频率发射光束???等。可注意到我们在这边所说的driver,并不像一般在别处所称驱动程序的那种driver那么低阶,真正最低阶的工作还是要有现成的VI来帮忙才行;在Test Level中,则是如何连接各个Driver VI的基本动作,使可做完出一套连续、有意义的流程,来执行某项测试,例如让手臂由A点走到B点,下降夹取一个螺丝,再走至C点装到某面板上,然后回到A点等待,类似这样控制一个流程的进行,便是Test VI的工作内容;Main Level则包含了使用者接口(User Interface)或称人机接口(Man-Machine Interface) ,目的是整合各项测试和例外处理(Exception Handling)等,将它们以适当的顺序及流程组合,很容易地让使用者操作。 当一个软件计划严格的遵照上述的三层结构来撰写时,最大的优点是可使程序代码的再使用(code reuse)达到最大化,在不同的T est VI中,可重复使用相同的Driver VI;而在不同程序的Main Level中,又可重复使用相同的T est VI,这将使得程序维护或修改的时间与精力大幅减少;同时当我们已有一个程序的样板(template)后,可增加软件版本更新的速度。另一个很重要的好处是,当我们在撰写某一个level中的程序时,并不需要关心在另一个level中有什么其它的程序是如何执行的,而只要专注在自己的这个level的程序上就可以了,这使得由团队来共同完成一个大型计划的工作变得容易许多。 以下将依Driver Level、Test Level、Main Level的顺序,来介绍在各level写程序时的原

在LabVIEW中利用DLL实现数据采集

在LabVIEW中利用DLL实现数据采集Realization of Data Acquis ition with DLL in LabVIEW 班级学号:0704114-23 姓名:杨鹏

摘要: 随着计算机技术及虚拟仪器技术的迅速发展, 虚拟仪器正逐渐成为测试领域的发展方向。本文介绍了在LabVIEW 环境下驱动普通数据采集卡的重要方法- - 动态链接库机制(DLL), 并结合具体实例介绍了一种利用LabVIEW 提供的Call LibraryFunction (CLF)节点实现对动态链接库(DLL)调用的关键技术及步骤, 实现LabV IEW 与普通数据采集卡的结合, 丰富LabVIEW 对硬件的控制能力。并将数据库技术应用于虚拟测试系统中, 建立了Access 数据库, 实现数据的存储和自动管理,从而拓展了虚拟测试系统的功能。 关键词:动态链接库(DLL); 数据采集; 1 绪论

目前, 电子测试仪器的发展方向正在从简单功能组合向以个人计算机(PC)为核心的通用虚拟测试平台过渡, 从硬件模块向软件包形式过渡。建立在PC 机和数据采集设备上的虚拟仪器系统, 由于其特有的灵活和强大的功能, 也越来越广泛的应用于实验室研究和工业控制中的测试及测量领域。从简单的仪器控制, 数据采集到尖端的测试和工业自动化, 从大学实验室到工厂, 从探索研究到技术集成, 人们都可以发现LabVIEW 应用的成果和开发的产品。LabVIEW采用基于流程图的图形化编程方式, 也被成为G 语言(graphical language)。 G 语言编程和虚拟仪器技术已经成为工业界和学术界关注的热点技术之一。数据采集是LabVIEW 的核心技术之一, 也是LabVIEW 与其他编程语言相比的优势所在。使用LabVIEW 的DAQ 技术,可以编写出强大的DAQ 应用软件。NI 公司生产的系列数据采集卡借助LabVIEW 内部的DAQ 库的驱动,可以在LabVIEW环境下运行。但由于NI 公司的采集卡价格比较昂贵,但是选择第三方的数据采集卡, 就需要解决LabVIEW 与非NI 数据采集卡的兼容和驱动的问题。 2 LabVIEW 调用外部程序代码的途径之一———动态链接库机制 LabVIEW 具有强大的外部接口能力, 可以实现LabVIEW与外部的应用软件, C 语言, Windows API 以及HiQ 等编程语言之间的通信, 在LabVIEW 中可用的外部接口包括:DDE,CIN,DLL,MATLAB Script 以及HiQ Script 等。合理地使用这些接口,充分利用其他软件的功能, 弥补LabVIEW 自身的不足, 可以编 写出功能更加强大的LabVIEW应用软件。 动态链接库(Dynamic Link Libraries,简称DLL)是一个可执行模块, 但不接受任何消息, 所以并不可以直接运行, 只是提供一群函数供Windows 应用程序或其他的动态链接函数库调用。动态链接库只有在别的模块中调用了它的某个函数以后才发生作用。由于动态链接库在应用程序运行期间被连接起来的,故称为动态链接库。动态链接库(DLL)一直是基于Windows 程序设计的一个非常重要的组成部分。DLL 是一种基于Windows的程序模块, 它可以在运行时刻被装入和连接。为了实现LabVIEW对普通数据采集卡的支持, 用户可以使用LabVIEW 提供的调用库函数节点CLF (Call Library Function)和代码接口节点CIN(Code Interface)将编程灵活的C 语言和直观方便的LabVIEW程序结合起来。但是比较调用库函数节点CLF 和代码接口节点CIN 这两种方法, 使用CLF 节点访问动态链接库DLL 更具优势:首先, DLL 是外部模块, 自行开发一个DLL 比使用CIN 节点易于实现且便于维护。其次, CIN

基于LabVIEW的温度采集系统实验报告

南通大学计算机科学与技术学院 《虚拟仪器技术》课程作业 报告书 课题名:基于LabVIEW的温度采集系统 班级:软件工程 姓名: 学号: 2014年6月 18 日

1 设计目标 随着工业的不断发展,对温度测量的要求越来越高,而且测量范围也越来越广。本设计用LabView软件在PC机上编程实现了多点温度采集、动态图形显示、数据存储、报警、数据分析等功能。 2 设计内容 本温度采集系统的设计采用软件代替了数据采集卡,在数据采集过程中,实时地显示数据。当采集的温度值大于设定的高限报警数值时,就会点亮高报警红色灯,同时触发条件结构里的事件发生,使系统发出蜂呜声。当采集过程结束后,在图表上画出数据波形,并算出最大值、最小值,并自动产生数据文件,以供查询。 3 前面板设计

4 程序框图 温度采集总程序框图 实现步骤: 1、从结构工具模板选择条件循环结构“while循环”放入框图程序窗口,调整该条件循环框的大小,把节点放入循环框内。 2、使用随机数产生功能,用于产生随机温度值。添加温度控件,并将实时温度显示出来。

3、在前面板内再放置一个趋势图,标注为“温度历史趋势”,该图表将实时地显示温度值。 4、使用定时子模板中的等待下一个整数倍毫秒函数,再加上时间常数,把它设置为500。

5、该程序使用了条件结构,右边的TRUE Case与图中的FALSE Case同属于一个Case结构。根据输入端上的数值,来决定执行哪一个Case程序。如果产生的随机温度值大于高限数值,将执行True Case程序,反之则执行False Case 程序。 6.该程序框图还使用了写入电子表格文件函数(在文件 I/O子模块)。该模块把一个二维或者一维单精度数组转换成字符串,并把字符串写入一个新文件或者附回在一个已存在的文件后面。在本系统中,它将由温度采集数据和上限值组成的二维数组附加在一个默认路径为d:testdata.xls数据文件后面

基于labview跑马灯设计

选题分析: 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。 跑马灯是一种生活中比较常见的装饰,本文主要通过labview来设计了一个相对简单的对跑马灯的控制,实现了其有规律的亮灭,带来一定的观赏效果。 本文主要是实现了跑马灯的单个流水闪烁、双路同步流水闪烁、四路同步流水闪烁、全体同步闪烁,以此循环。本程序并控制闪烁的间隔时间,使其运行更具可观性。 方案设计: 本文主要设计了12个显示灯,并让其方形围成一圈。 运行效果: 单个流水闪烁:单个灯依次轮流闪烁 双路流水同步闪烁: 相对两灯同时依次轮流闪烁 四路同步流水闪烁:等间距四灯依次轮流闪烁 全体同步闪烁:全体灯同时闪烁 运行步骤: 单个流水闪烁→全体同步闪烁→双路流水同步闪烁 ↑↓ 全体同步闪烁←四路同步流水闪烁←全体同步闪烁 以此循环。

运行控制: 直接点击labview运行按钮进行跑马灯演示。 开关:用于结束当前操作,控制其关断。当开始运行程序时也可通过关断开关了结束程序的运行。 水平指针滑动杆:用于调节彩灯间的延时时间。通过其可调整灯闪烁的快慢。前面板的设计: 前面板主要由12个指示灯、一个开关及水平指针滑动杆构成。 水平指针滑动杆——用于调节彩灯间的延时时间。 指示灯——用以显示程序运行结果。 开关——用于结束当前操作。 对于前面板的设计相对简单,通过开关来控制其关断,水平指针滑动杆来控制其延时时间,指示灯显示程序运行的结果,观看到跑马灯的演示情况。 图1. 前面板

程序框图的设计: 设计思路: 本程序主要用到平铺式顺序结构和层叠式顺序结构顺序执行。 本程序用真假常量来控制灯亮与不亮。 本程序还用到了while循环和for循环,循环是用于达到闪烁和同步递进循环。整个程序几乎每一帧都用到了延时,单位是毫秒,延时的目地是使本程序更具有可观性。

Labview设计报告

实训报告 实训名称基于Labview的音乐彩灯设计系别电子与电气工程学院 专业、班级,,,,,,,,,,,,,,,,,,,,,,,,,,, 学生姓名、学号,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 指导教师,,,,,,,,,,,,,,,,, 2013年1月10日

一、引言 Labview是一款程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是Labview与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而Labview使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 同C语言和BASIC语言一样,Labview也是通用的编程系统,有一个完成任何编程任务的庞大函数库。Labview的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。Labview也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序的结果、单步执行等等,便于程序的调试。 Labview是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而Labview采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI 指虚拟仪器,是Labview的程序模块。 Labview提供很多外观与传统仪器类似的控件,可用来方便地创建用户界面。用户界面在Labview中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。Labview的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。 而本学期通过对于Labview的学习对于Labview有了一定的认识,在此基础上,我们根据老师的要求,制作了基于Labview的声音和彩灯的小装置,通过Labview与PCI6221 DAQ数据采集卡的结合运用达到采集声音信号从而控制彩灯的闪烁的效果。 二、项目方案 1、设计项目方案: 在Labview开发环境下,应用DAQ助手以及采集卡来采集声音,并将此所检测到的声音文件,输出为不同的数字信号来控制彩灯的闪烁,从而达到随着声音的强弱和节奏彩灯有规律的闪烁的效果。 2、人员分配情况: 郑广强:方案制定、编写程序、软件调试 刘进向:方案制定、硬件电路的搭建、论文报告

LabView数据采集

第一节概述 LabVIEW的数据采集(Data Acquisition)程序库包括了许多NI公司数据采集(DAQ)卡的驱动控制程序。通常,一块卡可以完成多种功能 - 模/数转换,数/模转换,数字量输入/输出,以及计数器/定时器操作等。用户在使用之前必须DAQ卡的硬件进行配置。这些控制程序用到了许多低层的DAQ驱动程序。本课程需要一块安装好的DAQ卡以及LabVIEW开发系统。 数据采集系统的组成: DAQ系统的基本任务是物理信号的产生或测量。但是要使计算机系统能够测量物理信号,必须要使用传感器把物理信号转换成电信号(电压或者电流信号)。有时不能把被测信号直接连接到DAQ卡,而必须使用信号调理辅助电路,先将信号进行一定的处理。总之,数据采集是借助软件来控制整个DAQ系统–包括采集原始数据、分析数据、给出结果等。

上图中描述了插入式DAQ卡。另一种方式是外接式DAQ系统。这样,就不需要在计算机内部插槽中插入板卡,这时,计算机与DAQ系统之间的通讯可以采用各种不同的总线,如USB,并行口或者PCMCIA等完成。这种结构适用于远程数据采集和控制系统。 模拟输入: 当采用DAQ卡测量模拟信号时,必须考虑下列因素:输入模式(单端输入或者差分输入)、分辨率、输入范围、采样速率,精度和噪声等。单端输入以一个共同接地点为参考点。这种方式适用于输入信号为高电平(大于一伏),信号源与采集端之间的距离较短(小于15英尺),并且所有输入信号有一个公共接地端。如果不能满足上述条件,则需要

使用差分输入。差分输入方式下,每个输入可以有不同的接地参考点。并且,由于消除了共模噪声的误差,所以差分输入的精度较高。 输入范围是指ADC能够量化处理的最大、最小输入电压值。DAQ卡提供了可选择的输入范围,它与分辨率、增益等配合,以获得最佳的测量精度。 分辨率是模/数转换所使用的数字位数。分辩率越高,输入信号的细分程度就越高,能够识别的信号变化量就越小。下图表示的是一个正弦波信号,以及用三位模/数转换所获得的数字结果。三位模/数转换把输入范围细分为23或者就8份。二进制数从000到111分别代表每一份。显然,此时数字信号不能很好地表示原始信号,因为分辩率不够高,许多变化在模/数转换过程中丢失了。然而,如果把分辩率增加为16位,模/数转换的细分数值就可以从8增加到216即65536,它就可以相当准确地表示原始信号。

基于LabVIEW的数据采集系统的设计与实现

基于LabVIEW的数据采集系统的设计与实现 李延 (陕理工物理系电信专业072班,陕西汉中 723001) 指导教师:卢进军 [摘要]:利用图形化编程工具LabVIEW和EDA工具Proteus设计了一个温度数据采集仿真系统。该系统中上位机与下位机通过虚拟串口进行通信,下位机将采集到的现场数据传送到上位机后,上位机即可显示并判断是否超限报警。设计表明,基于该两种软件建立一个仿真系统可以有效验证项目设计的正确性,从而缩短项目开发时间,降低项目开发成本。 [关键词]:LabVIEW;Proteus;单片机;数据采集;仿真 The Design and Realization of Data Acquisition System Based on LabVIEW Liyan (Grade07,Class02,MajorElectronic Information Science and Technology,PhysicsDept.,Shaanxi University of Technology,Hanzhong 723001 Shaanxi) Tutor:LuJinju n Abstract:Use of LabVIEW graphical programming tools and EDA tools Proteus designed a data acquisition simulation system. The system of upper computer and lower computer through a virtual serial communication, the next crew will be collected on-site data to the host computer, the host computer to display and to determine whether the limit alarm. Design showed that the two software based on a simulation system can verify the correctness of the project design to reduce project development time, reduce project development costs. Key words:LabVIEW; Proteus; MCU; data collection; Simulation

LabVIEW程序设计步骤

LabVIEW 程序设计步骤 下面通过一个设计实例来详细介绍虚拟仪器软件 LabVIEW 的程序设计步骤。 设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时, 需通 过指示灯颜色变化发出警告。 1 建立新VI 启动LabVIEW 程序,单击VI 按钮,建立一个新 VI 程序。 这时将同时打开 LabVIEW 的前面板和后面板(框图程序面板) 。在前面板中显示控件 选板,在后面板中显示函数选板。在两个面板中都显示工具选板。 如果选板没有被显示出来,可以通过菜单查看( View )/工具选板(Tools Palette )来 显示工具选板,通过查看( View )/控件选板(Controls Palette )显示控件选板,通过查 看(View )/函数选板(Functions Palette )显示函数选板。 也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。 2前面板设计 输入控制和输出显示可以从控件选板的各个子选板中选取。 本例中,程序前面板中应有 1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4 个控件。 1) 往前面板添加 1个旋钮控件:控件(Controls )宀 新式(Modern )宀数值 (Numeric )宀旋钮(Knob ),如图2-14所示,标签改为"调压旋钮”; 2) 往前面板添加 1个仪表控件:控件(Controls )宀 新式(Modern )宀数值 (Numeric )宀 仪表(Meter ),如图2-14所示,标签改为"电压表”。 3) 往前面板添加 1个指示灯控件:控件( Controls )宀 新式(Modern )宀 布尔 (Boolean ) 宀圆形指示灯(Round LED ),如图2-15所示,将标签改为"上限灯”。 4)往前面板添加1个停止按钮控件:控件(Controls )宀 新式(Modern )宀布尔 图2-14添加旋钮、仪表控件 图2-15添加指示灯、按钮控件

labview声音采集系统

虚拟仪器技术 姓名:史昌波 学号:2131391 指导教师:孙来军 院系(部所):电子工程学院专业:控制工程

目录 1、前言 (2) 2、声卡的硬件结构和特性 (3) 2.1声卡的作用和特点 (3) 2.2声卡的构造 (4) 3、LABVIEW中与声卡相关的函数节点 (5) 4、LABVIEW程序设计 (6) 4.1程序原理 (6) 4.2程序结构 (6) 4.3结果分析 (8) 5、结束语 (10) 6、参考文献 (10)

基于声卡的数据采集与分析 1、前言 虚拟仪器技术是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。在虚拟仪器系统中,硬件解决信号的输入和输出,软件可以方便地修改仪器系统的功能,以适应不同使用者的需要。其中硬件的核心是数据采集卡。目前市售的数据采集卡价格与性能基本成正比,一般比较昂贵1。 随着DSP(数字信号处理)技术走向成熟,计算机声卡可以成为一个优秀的数据采集系统,它同时具有A/D和D/A转换功能,不仅价格低廉,而且兼容性好、性能稳定、灵活通用,驱动程序升级方便,在实验室中,如果测量对象的频率在音频范围,而且对指标没有太高的要求,就可以考虑使用声卡取代常规的DAQ设备。而且LABVIEW中提供了专门用于声卡操作的函数节点,所以用声卡搭建数据采集系统是非常方便的2。 2、声卡的硬件结构和特性 2.1声卡的作用和特点 声卡的主要功能就是经过DSP(数字信号处理)音效芯片的处理,进行模拟音频信号的与数字信号的转换,在实际中,除了音频信号以外,很多信号都在音频范围内,比如机械量信号,某些载波信号等,当我们对这些信号进行采集时,使用声卡作为采集卡是一种很好的解决方案。 声卡的功能主要是录制与播放,编辑与合成处理,MIDI接口三个部分3。(1)录制与播放

数据采集之LabVIEW温度采集与分析案例

数据采集之温度采集与分析案例 可以照着图学习制作 文章后面有整体程序框图,可以完全据图画出 系统功能: 1.虚拟温度产生A 通过产量产生两组基础虚拟正弦温度值并且添加不同的杂信温度信号到虚拟的温度数据中 A B D C E

2.虚拟温度时时显示B 将两组温度波形数据组合成数组并接入波形图表显示 3.虚拟温度数据范围的时时判断与报警显示C 根据产生的虚拟温度设定上下限并通过比较函数并通过布尔控件显示 4.虚拟温度数据时时滤波D 通过EXPRESS的滤波函数滤波虚拟的温度数据 5.虚拟温度实时计算温度相关值E 通过波形函数库获得均方根值以及两组波形的相位差 6.虚拟温度间断采集显示 另外建立一个循环固定间隔时间采集G与显示H G H A

通过间隔时间选择采集的数据并添加到数据数组并显示到波形 7.虚拟温度间断采集数据的保存 判断是否保存数据通过写入execl函数写入文件 8.对采集的温度数据回放 清除波形数据再读数据并更新数据到波形

编写的步骤 1.设计主要的前面板 采用选项板设计两个界面一个实时采集温度另一个间隔时间采集温度 2.编辑主程序框图 先构件主循环停止循环按钮 其次虚拟数据然后增加杂信的函数最后添加各种函数工具依次连线

3.编辑间隔时间采集温度程序设置间隔时间波形属性结点 保存数据函数等 列出所用的控件以及函数:1.波形图表 2.选项面板 3.数据常量 4.波形属性结点 5.While 循环 6.FOR 循环 7.条件结构 8.杂信函数 9.数据显示控件 10.数据分析函数 11.等等其他各种

程序整体图 虚拟温度测试.vi 虚拟数据产生 快捷函数信号滤波设置

相关文档
最新文档