图4-12 属性节点联系VI程序的前面板
(3) 返回前面板并运行该VI程序。这时,由于随即生成的数字被填入到槽中,当随机
图4-13 属性节点联系VI程序的后面板
值大于临界值时填充红色,当随机值小于临界值时填充蓝色。这两个颜色的变化改变槽在面板上的位置。移动这些值并观察槽的运动轨迹。
(4) 可以通过Disable开关来决定是否可以改变数值。当把Disable切换到“真”时, 所有面板上控件的值都不能改变,除非Disable开关和【Stop】按钮变灰。
(5) 完成以上操作后,停止并关闭VI。
五、 实验报告
1. 写出下列各串的显示方式。
a.
45-36
b.
c.
d.
2. 怎样通过一个对话框来访问一个文件 ?
3. 图4-14所示的属性节点以什么样的顺序被执行 ?
图4-14 属性节点
45-37
实验5 数据采集基础
一、 实验目的
学习使用Express VI进行数据采集和与仪器通信的方法。
二、 实验设备
? 安装有LabVIEW 8的计算机。
? 安装有NI-DAQ7的计算机。
? 支持NI-DAQmx的数据采集设备(DAQ)(以NI公司提供的NI6021数据采集卡为例)。 前面已经介绍过,虚拟仪器的硬件平台由计算机和I/O接口设备两部分组成。根据I/O接口设备总线类型的不同,虚拟仪器的构成方式主要有5种,其中PC-DAQ/PCI插卡式虚拟仪器系统是虚拟仪器最基本、最廉价的构成方式。它充分利用了PC的机箱、总线、电源、软件等便利条件,通过插入式DAQ卡来实现数据采集。
三、 实验原理
l. DAQ系统的构成
一个DAQ系统通常包括:插入式DAQ卡,传感器,变换器,信号调节以及一套用于获得、处理数据和分析、显示、存储数据的软件。
基于计算机的测量系统,一般需要先通过传感器(或变送器)将物理信号转换成电信号(如电压或电流)。在大多数情况下,在信号输入DAQ之前,还必须使用信号调节设备对所测量的信号进行放大和滤波,以提高信号增益和消除噪声干扰。 2. DAQ发展简介
20世纪80年代后期,基于PC的数据采集(DAQ)第一次出现时,它彻底改变了工程师和料学家们迸行测量的方式。基于PC的数据采集与体积庞大的单机仪器不同,它可以利用计算机的强大功能帮助人们有效地开发测量与控制应用,而无需将测量数据记录在纸上。最初的软件虽然有一定功能,但是以今天的标准来看是十分粗糙的。
1) 第一代DAQ软件 起初,硬件供应商常常为他们的DAQ设备提供寄存器级编程软件的C语言范例或者一个静态库,这些软件为访问硬件寄存器提供基本的函数。在寄存器级上编程对许多用户来说是十分困难的,即使是一个简单的应用也需要很长的开发时间。此外,这个为第一代基于PC的DAQ设备编写的软件一次只能控制一个简单的硬件操作(如模拟输入),除非该操作完成,否则其他所有试图访问该驱动软件的硬件操作都将被阻止。因此,根本无法执行如同步模拟输入/输出这样的并发DAQ操作。
一旦采集了数据,将要面对的就是一项更加困难的任务。驱动程序返回的常常是二进制格式的原始数据,所以不得不采用编程的方式将其转换成电压。如果使用了传感器,那么也不得不自己编程实现必要的单位转换。例如,一个简单的热电偶测量,不仅要求从其他类型的冷端补偿温度传感器采集数据,而且还要求自己编写程序实现一个n阶的多项式或者一个复杂的查找表,将原始的热电偶电压数据转换成正确的单位。此外,这还要多花费额外的时间和精力,而这些时间与精力本可以用于优化设计,而不是创建用来测试设计系统。
2)第二代DAQ软件
20世纪90年代早期产生了第二代驱动软件,它建立在第一代软件的基础上并做了许多 改进。NI公司也在这时形成了它的测量与控制NI-DAQ软件,该软件在第一代可编程数据采集模型的基础上对功能进行了扩展。
在20世纪90年代后期和21世纪早期,随着第二代NI-DAQ软件的发展,它在很大一个范围内对几乎所有DAQ供应商的硬件平台(PCI,AT,USB,PCMCIA,PXI和FireWire) 增加了支持。不仅如此,通过增加信号调理函数,它还支持各种电压范围、传感器和信号类型,可
45-38
以测量的电压范围最大达1000V,支持应变计、RTD、pH计等许多种传感器。
第二代驱动软件还更新了许多特性,这使得控制基于PC的DAQ硬件,并从它们上面采集数据变得更加容易。NI-DAQ还包括一个实用的配置程序,通过该程序,用户可以在开始编程前配置和测试硬件的每个通道。用户还可以创建“虚拟通道”,虚拟通道不仅为通道提供逻辑名称(如电压通道1),而且可以将普通传感器和信号按一定比例转换为工程单位。
第二代DAQ软件也为高级DAQ应用提供了许多功能。它能够同步多块板卡以便精确定时和触发,这即使是在高通道数应用中也可实现。不过,为了做到这一点,必须要用好几个函数或者VI,这对初学用户会有点困难。
3) 第三代DAQ软件
NI-DAQ7的发行标志着第三代DAQ驱动软件的诞生。它比以前的版本可以更容易、更快地进行测量和获取有意义的信息。这些变化不仅发生在LabVIEW开发环境上,而且在为Visual Studio程序开发人员提供的LabWindows/CVI和Measurement Studio上同样进行了改进。
虽然NI-DAQ7仍需处理各种各样的总线接口、传感器和信号类型,但是这个重新设计的界面使它变得更简单易用,即使是开发复杂的DAQ应用也如此,因为它为各种类型的操作供了同样的函数和VI。例如,以前要用Digital Read函数从数字线读取数据和用Analog Read函数读取模拟数据,而现在可以用同一个函数读取这两种数据。这样的函数称为多态函数,它们根据输入值不同则呈现不同的特性。通过将几个不同的函数整合成一个界面,其结果是为用户,也为设备甚至整个系列的设备,提供了一条令人满意的学习曲线。现在不用学习四种不同的方法来为NI-DAQ设备的四种类型的操作(模拟输入与输出、数字I/O、计数器/定时器)编写程序了,而只需学习一种方法,然后重复使用这个方法来为其他操作编写程序即可。
这种新的界面简化了处理过程,通过它,可以将一个简单应用修改一下即成为一个复杂的应用。
为了进一步简化DAQ编积,NI-DAQ7提供一个新的交互式测量工具——DAQ助手。 DAQ助手以图形化的方式配置DAQ操作,并使其在LabVIEW、LabWindows/CVI和 Measurement Studio中运行。因为DAQ助手是完全以菜单方式驱动的,不需要任何编程,所以很少出错,并且大大减少了进行测量的时间。只需简单的鼠标单击,根据配置就可以自动生成代码,这可以作为在NI应用软件程序中实现复杂操作的一个起点。
在NI-DAQ7之前,DAQ驱动软件都是单线程的。结果,用户发现如果不通过更复杂的程序很难执行像连续的模拟输入和波形输出那样的并发操作。现在这种新型的NI-DAQ软件不需要增加额外的代码就可以实现并发操作,因为它已被设计成以多线程的方式操作了。因此,现在一个模拟输入操作可以在一个线程中发生,并一直处于睡眠状态,直到它已采集了给定数量的样点才被唤醒,而在另一个单独的线程中则可以操作模拟输出部分。这使得并发的DAQ操作编程变得更筒单。
第三代DAQ软件的其他优点还包括软件定时的与硬件定时的单点I/O,它们可在50kHz执行。它们的速度与以前的单点I/O速度相比,分别捉高了20倍和2倍。从温度与位置测量到过程控制与制造,这些测量与控制应用都可以从执行速度的提高中受益。
虽然DAQ驱动软件经过了多年的改进,但是正如在NI-DAQ7中的一样,NI始终保持它的易用性。通过使用DAQ助手配置程序和简化的编程界面,NI-DAQ7帮助用户降低了学习难度。此外,通过采用新型多线程驱动和更快的单点I/O,NI-DAQ7扩大了基于PC的数据采集系统的能力。总之,这些里程碑式的变化最终将大大降低用户的开发时间。
四、 实验内容
完成下面的练习,生成一个NI-DAQmx任务,可以连续采集电压值,并在波形图上绘
45-39
制图形。
在NI-DAQmx中,任务是一个或多个通道、计时、触发和其他应用于该任务属性的集 合。从概念上讲,任务代表想执行的测量或产生的功能。按以下步骤创建并设定一个从DAQ设备中读取电压值的任务。 1. 创建一个NI-DAQmx任务 (1) 打开一个VI。
(2) 在框图程序中选择Functions ? Input ? DAQ Assistant,并将其放置在程序框图中。启动
DAQ助手,系统会出现“Create New”对话框,如图5-1所示。 (3) 单击Analog Input以显示Analog Input选项,如图5-2所示。
(4) 选择Voltage以创建一个电压模拟输入任务。如图5-3所示,列表显示了DAQ设备中所
有已经安装的通道。列出的通道数取决于DAQ设备中的通道个数。
(5) 选中连接信号的物理通道,如ai0,然后单击【Finish】按钮。DAQ助手会打开一个新
窗口(如图5-4所示),显示用于设定通道的选项,进行设定以完成任务。
图5-1 “Create New”对话框(一)
图5-2 “Create New”对话框(二)
45-40