《虚拟仪器与智能测量》实验指导书2016修订

更新时间:2024-01-22 22:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

虚拟仪器与智能测量

实验指导书

董介春

青岛大学电子信息学院

2016.9

虚拟仪器与智能测量实验指导书

说明

1、注意:在实验之前,首先在计算机的F盘下面创建一个以班级+姓名+实验几命名的目录,如电子1班张三实验一,所有的实验程序都保存到该目录中。

2、实验箱底板功能说明

(1)本系统所用NI PCI-6221数据采集卡,含有24路双向数字I/O,16路模拟输入、2路模拟输出,2路定时计数器,底板上68针插座接口为采集卡68-pin VHDCI母头接口。采集卡用法详见NI-DAQmx帮助。

(2)《压力测量》与《步进电机控制与霍尔元件位置检测》两个实验模块集成在实验箱板底上。使用NI PCI-6221数据采集卡实验时,需拔下XT1全部跳线帽,然后通过IO1和IO2将采集卡相应端子与XT2连接起来。

虚拟仪器与智能测量实验指导书

目 录

第一篇 LabVIEW基础单元 ································································ 1

实验一 LabVIEW编程环境与基本操作 ................................................................................ 1 实验二 LabVIEW程序结构——循环结构 ............................................................................ 7 实验三 LabVIEW程序结构——顺序结构与条件结构 ...................................................... 11 实验四 LabVIEW程序结构——事件结构与状态机 .......................................................... 14 实验五 LabVIEW编程的数组与簇 ...................................................................................... 18 实验六 LabVIEW编程的图形显示 ...................................................................................... 21 实验七 LabVIEW字符串和文件I/O编程 .......................................................................... 24 实验八 LabVIEW信号分析与处理 ...................................................................................... 26

第二篇 LabVIEW数据采集单元 ························································ 28

实验九 模拟信号的采集与输出 ........................................................................................... 28 实验十 温度采集与控制系统设计 ....................................................................................... 31 实验十一 红外数据传输系统设计 ....................................................................................... 33 实验十二 湿度测量计设计 ................................................................................................... 35 实验十三 电子秤设计 ........................................................................................................... 37 实验十四 光强检测与控制系统设计 ................................................................................... 39 实验十五 自动控制窗帘系统设计 ....................................................................................... 40 实验十六 模拟电梯超重报警系统设计 ............................................................................... 43 实验十七 遥控电风扇系统设计 ........................................................................................... 45

第三篇 LabVIEW信号处理单元 ························································ 46

实验十八 典型信号频谱分析 ............................................................................................... 46 实验十九 数字FIR滤波器 ................................................................................................... 48 实验二十 数字IIR滤波器 .................................................................................................... 49

第四篇 LabVIEW虚拟仪器单元 ························································ 50

实验二十一 虚拟信号发生器 ............................................................................................... 50

0

虚拟仪器与智能测量实验指导书

第一篇 LabVIEW基础单元

实验一 LabVIEW编程环境与基本操作

一、实验目的

1.了解LabVIEW的编程与运行环境。

2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.掌握使用调试工具调试VI程序。 4.掌握VI子程序的建立和调用过程。 二、实验原理

虚拟仪器系统的概念不仅推进了以仪器为基础的测控系统的改造,同时也影响了以数据采集为主的测控系统的传统构造方法。过去独立分散、互不相干的许多传统仪器,在虚拟仪器系统的概念之下,正在逐渐靠拢、相互影响,并形成新的技术方法和技术规范。

虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据,对采集来的数据进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器由用户自己定义,这意味着用户可以自由地组合计算机平台、硬件、软件以及各种完成应用系统所需要的附件。而这种灵活性在由制造商定义、功能固定、独立的传统仪器上是达不到的。常用的数字万用表、示波器、信号发生器、数据记录仪以及温度和压力监控器就是传统仪器的代表。

基于计算机的虚拟仪器得益于PC技术的发展。由于直接将仪器模块插入到计算机中,我们就可以直接享用到台式或便携式计算机上出众的处理能力、显示、数据存储以及连接性能等方面的优势,使测量以最有效的方式从使用传统的仪器过渡到使用通用计算机。基于计算机的仪器不仅继承了传统仪器的标准测量能力,更增加了扩展仪器概念的灵活性,使我们能够更加直接、更加有效地面对当今测量应用的挑战。更有意义的是,利用诸如LabVIEW、LabWindows/CVI等应用开发环境,可以方便地使多台仪器的测量能力结合并同步工作,以建立功能强大的仪器系统。更进一步,我们也可以开发自己的分析程序,实现那些有别于其它仪器或系统的功能。

虚拟仪器系统技术的基础是计算机系统,核心是软件技术。因此,美国国家仪器公司(NI)提出其著名的口号:The Software is the Instrument。为了使―软件就是仪器‖这句口号成为现实,NI公司在软件体系结构的各个层次上,形成了完整的设备驱动程序、系统开发平台、实用支持软件、应用软件包相互支撑的格局,使虚拟仪器系统的概念不再―虚拟‖。其中,LabVIEW就是美国NI公司推出的一套著名的虚拟仪器开发软件平台。

1.LabVIEW与虚拟仪器(VI)程序

LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一个高效的图形化程序设计环境,也是一个功能强大的仪器和分析软件应用开发工具。它结合了简单易用的图形式开发环境与灵活强大的G语言,提供了一个直觉式的环境,与测量紧密结合,能迅速开发出有关数据采集、测量控制、数据分析、存储及显示的解决方案。

像C一样,LabVIEW也是通用的编程系统,有一个庞大的函数库,包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序(子VI)的结果、单步执行等,便于程序的调试。

1

虚拟仪器与智能测量实验指导书

使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。VI包括三个部分:程序前面板、框图程序和图标/连接器。如图1-1和图1-2所示。

图1-1 LabVIEW程序前面板 图1-2 与前面板对应的框图程序

程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板,其大小、外观、功能布局均可以由用户根据自己的需要进行定制。在程序前面板上,输入量被称为控制(Controls),输出量被称为显示(Indicators)。控制和显示是以各种图标形式出现在前面板上,如旋钮、开关、按钮、图表等,这使得前面板直观易懂。

2.LabVIEW的操作模板

LabVIEW具有多个图形化的操作模板,用于创建和运行程序。该模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板有三类:工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。

1)工具模板(Tools Palette)

工具模板提供了用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可在Windows菜单下选择Show Tools Palette命令以显示。

操作工具:使用该工具来操作前面板的控制和显示。

选择工具:用于选择、移动或改变对象的大小。

标签工具:用于输入标签文本或创建自由标签。创建自由标

签时它会变成相应形状。

连线工具:用于在框图程序上连接对象。

对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜

单。

漫游工具:可以不需要使用滚动条而在窗口中漫游。 断点工具:使用该工具在VI的框图对象上设置断点。 探针工具:在框图程序内的数据流线上设置探针,来观察

该线上的数据变化状况。

颜色提取工具:用来提取颜色用于编辑其他的对象。 颜色工具:用来给对象定义颜色。显示前景色和背景色。 2)控制模板(Controls Palette)

用控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板,如图1-4所示。

注:只有当打开前面板窗口时才能调用控制模板。

2

图1-4 控制模板

图1-3 工具模板 图1-5 功能模板

虚拟仪器与智能测量实验指导书

3)函数模板(Functions Palette,又称功能模板) 功能模板是创建框图程序的工具,其每一个顶层图标都表示一个子模板。若功能模板不出现,则可用Show Functions Palette打开。如图1-5所示。

注:只有激活了框图程序窗口,才能出现功能模板。 3.虚拟仪器程序的创建

VI程序具有三个要素:前面板、框图程序和图标/连接器。 1)前面板

使用输入控制和输出显示来构建前面板。控制是用户输入数据到程序的接口,显示是输出程序产生的数据接口。

两种最常用的前面板对象是数字控制和数字显示。若想在数字控制中输入或修改数值,可使用操作工具点击控制部件和增减按钮,或用操作工具或标签工具双击数值栏进行数值修改。

2)框图程序

框图程序是由节点、端点、图框和连线四种元素构成的。 节点类似于文本语言的语句、函数或子程序。LabVIEW有两种节点:函数和子VI节点。区别:函数节点是LabVIEW以编译好的机器代码供用户使用的,而子VI节点是以图形语言形式提供给用户的。用户可访问和修改任一子VI节点的代码,但无法对函数节点进行修改。

端点是只有一路输入/输出,且方向固定的节点。LabVIEW有三类端点:前面板对象端点、全局与局部变量端点和常量端点。对象端点是数据在框图程序部分和前面板之间传输的接口。一般来说,一个VI前面板上的对象都在框图中有一个对象端点与之一一对应。控制对象对应的端点在框图中是用粗框框住的,如图1-6中的A和B端点,它们只能作为数据流源点。显示对象对应的端点是用细框框住的。如A+B和A-B端点。它们只能作为数据流终点。常量端点永远只能作为数据流源点。

图框是LabVIEW实现程序结构控制命令的图形表示。如循环控制、条件分支控制和顺序控制等,编程人员可以使用它们控制VI程序的执行方式。代码接口节点(CIN)是框图程序与用户提供的C语言文本程序的接口。

图1-6 简单的程序框图和前面板

连线是端口间的数据通道。类似于普通程序中的变量。数据是单向流动的,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型,并以不同的颜色予以强调。

整 型 蓝色 浮点数 橙色 逻辑量 绿色 字符串 粉色 文件路径 青色

3

虚拟仪器与智能测量实验指导书

当需要连接两个端点时,在第一个端点上点击连线工具,再点击第二个端点。

当把连线工具放在端点上时,该端点将会闪烁,表示连线将会接通。当连线工具从一个端口接到另一个端口时,不需要按鼠标键。当连线转弯时,按空格键可以改变转角的方向。

3)从框图程序窗口创建前面板对象

用选择和连线工具,可以用鼠标右键点击任一节点和端点,然后从弹出菜单中选择―创建常数‖,―创建控制‖,或―创建显示‖等命令。

4)数据流编程

控制VI程序的运行方式叫做―数据流‖。对一个节点而言,只有当它的所有输入端口上的数据都成为有效数据时,它才能被执行。当节点程序运行完毕后,它把结果数据送给所有的输出端口,使之成为有效数据。并且数据很快从源送到目的端口。

如图1-7所示,这个VI程序把两个输入相乘,再减去50.0。这个程序中,框图程序从左往右执行,这个执行次序不是由于对象的摆放位置,而是由于相减运算函数的一个输入量是相乘函数的运算结果,它只有当相乘运算完成并把结果送到减运算的输入口后才能继续下去。

图1-7 数据流举例 图1-8数据流举例

如图1-8所示,你认为哪一个节点函数将先执行?是乘法还是除法?在这个例子中,我们无法知道哪一个节点函数首先执行,因为所有输入量几乎同时到达。

4.程序调试技术

程序调试是进行任何程序设计过程中所必须的过程。在程序设计中不可避免地会有各种逻辑上和语法上的错误,这些都需要通过程序调试找出来加以改正。

1)找出语法错误

如果一个VI程序存在语法错误,则运行按钮将会变成一个折断的箭头,表示程序不能被执行。这个按钮被称作错误列表。点击,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用Find功能,则出错的对象或端口就会变成高亮。

2)设置执行程序高亮

点击―高亮执行‖按钮使其变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,我们就可以在根据数据的流动状态跟踪程序的执行。

3)断点与单步执行

使用断点工具可以在程序的某一地点中止执行,用探针或者单步方式查看数据。使用断点工具时,点击设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。

4)探针

可以用探针工具来查看当框图程序流经某一根连接线时的数据值。探针显示窗口总是被显示在前面板窗口或框图窗口的上面。

4

虚拟仪器与智能测量实验指导书

三、实验内容

1.创建我的第一个VI。编写程序,实现将一华氏温度(F)转换成摄氏温度(C)的功能。已知摄氏温度与华氏温度的关系C=5(F-32)/9。

(1)前面板设计

如图1-9,华氏温度为数值输入控件,摄氏温度作为显示控件,按要求设置标签和显示范围,同时配数字显示。

图1-9 Temp前面板 图1-10 Temp程序框图

(2)程序框图

如图1-10所示设计程序框图,建议数值常数使用在连接端子处点击右键创建(Create)常量(Constant)的方法更好些。

(3)把该VI命名为Temp.vi,保存为 F:\\Yourname\\的文件夹中。 2.自己创建一个VI,完成以下功能: 将两个输入的数字相加并显示结果;将同样两个输入数字相乘并显示结果;比较两个输入数字,如果数字相等,则LED指示灯亮。最后,保存为Simple Math.vi文件。

如图1-11:A和B为数字控件输入,两个数字指示器分别显示输出结果A+B和A×B,当输入数字A和B相同时,将点亮LED。

图1-11 实验2的前面板

3.子VI的创建与调用

1)打开练习1中Temp.vi。

2)设计图标编辑器,如图1-12所示,绘制一个温度计,创建一个TEMP的文本。注意只能在前面板中编辑图标和联接器。

图1-12 编辑后的图标编辑器窗口

5

虚拟仪器与智能测量实验指导书

3)设置联接器端子。

4)调用创建的子Temp,使其实现实验1的功能。 4.设计一个VI程序,计算一元二次方程的两根。

四、思考题

1. 写一个VI比较两个数的大小,如图所示:当A>B时,指示灯亮。

2. 写一个温度监测器,如图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随机数发生器产生。

五、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.理解基于数据流编程的基本编程思路。 3.总结VI基本编程的快捷操作。

4.简述VI程序有什么构成,其各部分的功能是什么。

5.思考:在前面板和框图程序中,如何区分控制器和指示器。 6.心得体会及其它。

6

虚拟仪器与智能测量实验指导书

实验二 LabVIEW程序结构——循环结构

一、实验目的

1.学习并掌握For循环和While循环以及它们的不同点。

2.学习使用移位寄存器(Shift Register)和反馈节点(Feedback Node)。 二、实验原理

While循环和For循环在函数的结构(Structures)选项板中可以找到。创建循环的具体方法是,选择该循环后,先在欲放入循环内执行的对象左上方单击,然后按下鼠标,拖曳出一个矩形框包围执行对象。释放鼠标时就创建了一个指定大小和位置的循环。

While循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的Do循环和Repeat-Until循环。While循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为FALSE。

1.For循环和While循环 当程序有确定的循环次数时,使用For循环。在程序框图中添加For循环,如图2-1所示。 (循环次数输入端):For循环必须给定循环次数N(N>0,否则循环不执行),此项一般都要有输入。当For循环的输入数据是一个数组时,如果不给定循环次数,则数组的大小将决定For循环的循环次数。如果同时输入两个数组,循环次数以数组个数最少的决定。(循环计数):计数范围0~N-1。

当具体的循环次数不可知时,我们使用While循环,如图2-2所示。 While循环也有一个循环计数,第一次循环时的值为0。另外,While循环有一个循环条件判断端子。请特别注意,无论如何,都要给While循环结构一个有效的停止条件,否则可能就会使循环陷入死循环的状态。While循环还提供了一个快捷方式:Functions-Express-执行过程控制-While Loop,程序框图如图2-3所示,与图2-2不同的时自动加了一个停止按钮。

图2-1 For循环 图2-2 While循环 图2-3 快捷While

2. 移位寄存器和反馈节点

使用循环结构时,经常会遇到下一次循环要用到上一次循环运行结果的情况,这时就需要不断的将每次循环的结果存储下来,以传递给下一次循环。移位寄存器和反馈节点就是用来实现这样的操作的。

在For循环和While循环中都可以添加移位寄存器和反馈节点,添加方法如下: 1)移位寄存器(Shift Register)

移位寄存器可以将数据从一个循环周期传递到另外一个周期。创建移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register,如图2-4所示。

移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据――数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。

7

虚拟仪器与智能测量实验指导书

(a)为For循环设置移位寄存器 (b)为While循环设置移位寄存器

图2-4 设置移位寄存器

2)反馈节点(Feedback Node)

反馈节点完成的功能同移位寄存器类似。在For循环或者While循环中,只要将其中的子VI、函数的输入/输出相连接,就会自动出现反馈节点。当然,也可以通过Functions-Execution-Control-Feedback Node来添加。在反馈节点上单击鼠标右键,从弹出的快捷菜单中选择Replace with Shift Register,反馈节点将变成移位寄存器,如图2-5所示。

下面通过一个例子来看一下移位寄存器和反馈节点是如何工作的。如图2-6所示。

图2-5 将反馈节点变为移位寄存器 图2-6 反馈节点和移位寄存器

在此如果不给移位寄存器和反馈节点赋初值(本例中For循环框左边的两个常数0),下次程序运行时,移位寄存器和反馈节点中的值将以上次运行完的值开始。 三、实验内容

1.While循环的基本结构

分别创建两个关于While循环的VI,如图2-7所示,其中一个带延时,一个不带延时,都在前面板显示循环计数和停止按钮,比较这两个循环的不同。(注意:是两个VI)

(a) 不带延时 (b)有延时

图2-7 While循环前面板与程序框图

8

虚拟仪器与智能测量实验指导书

2.While循环中实现累加的两种方法

(1)利用移位寄存器实现累加1-100,并将结果显示在前面板上; (2)利用反馈节点实现累加1-100,并将结果显示在前面板上。

3.For循环的基本结构

创建三个关于For循环的VI,分别设定For循环的循环次数为100、循环次数设定、输入数据为一个数组等,并在前面板上设定第二个循环的次数及显示For循环的实时次数,观察显示结果。

*4.统计满足条件随机数的个数

统计100个随机数中大于0.5的个数,要求在前面板显示统计结果。

*5.设计一个VI,实现使用循环和移位寄存器计算随机数序列的移动平均值。要求该VI产生一个随机序列Ri,序列长度N由前面板滑动条控件输入,该随机数序列的移动平均值v(i)由下列公式可计算:v(i)?i?v(i?1)?Ri

i?1这里i?0,1,...,N?1,v(i)表示在第i次计算的平均值,Ri是来自随机数函数的当前随机数。前面板要求显示当前用于计算移动平均值的随机数个数i+1,当前的移动平均值,前面板设计如图2.10所示,最后将该VI保存为Random Number Average.vi文件。在Highlight Execution加亮执行的状态下观察数据流。

9

虚拟仪器与智能测量实验指导书

图 2.10 Random Number Average

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.说明For循环与While循环的区别。

3.理解移位寄存器的作用以及它的初始化。

4.分析一下,当VI执行结束,结果显示控件的值是多少?如果将内循环隧道替换为移位寄存器呢?

10

虚拟仪器与智能测量实验指导书

实验三 LabVIEW程序结构——顺序结构与条件结构

一、实验目的

1.掌握顺序结构(Sequence Structure)、条件结构(Case Structure)编程。 2.了解时间估计和控制函数。

3.了解公式节点(Formula Node)的使用。 二、实验原理

1.顺序结构(Sequence Structure)

VI程序的运行是―数据流‖驱动的,有时我们必须对这种数据流进行控制,这样就用到了顺序结构。在LabVIEW中有两种循序结构:平铺式和层叠式顺序结构。

使用平铺式顺序结构可以看到整个程序框图,当程序框图所占空间的大小允许时,可以使用这种顺序结构。在程序框上单击鼠标右键,在弹出的快捷菜单中选择Add Frame after或Add Frame Before,就可以在本帧后或者前添加一帧,如图3-1所示。

使用层叠式顺序结构比较省空间,但是数据在各帧中的传递必须通过Sequence Local来实现,并且每次只能显示一帧。可以用类似的方法来添加前一帧或者后一帧,在弹出的快捷菜单中选择Add Sequence Local,则在顺序结构中添加Sequence Local,如图3-2所示。

图3-1 添加帧图 图3-2 添加Sequence Local

顺序结构顺序地执行子框图,它看上去像是电影胶片。它可以按一定顺序执行多个子程序。首先执行0帧中的程序,然后执行1帧中的程序,逐个执行下去。

2. 时间估计和控制函数

―等待‖:控制VI定时执行,每次执行单元(比如循环)内部,在执行代码运行结束后,开始计时。保持此状态直到毫秒计数器的值等于预先设定的值。

―等待下一个整数倍毫秒‖:每次执行单元内部,在执行代码开始运行时,就开始计时,保持此状态直到毫秒计数器的值等于预先设定数的整数倍。用于同步各单元操作。 ―Tick Count (ms) 函数‖:用与Express VI完成定时任务。 3.条件结构(Case Structure)

条件结构的输入端可以连接布尔型和数字型变量。当连接的是布尔型变量时,只有True和False两种。当连接的是数字型变量时,Case框上的标识将变为0,1,…根据输入量的不同,Case结构选择运行不同的程序。程序框图如图3-3所示。

在默认状态下,Case结构只有0和1两项,用右键单击Case结构的边框,从弹出的快捷菜单中选择Add Case After来添加一个Case。

11

虚拟仪器与智能测量实验指导书

图3-3 Case结构举例框图程序

前面板如图3-4所示。是用来选择操作是加法、减法还是乘法。选择Memu Ring,

然后通过工具模板改变大小,鼠标右键选择Properties,在弹出的对话框中改变其属性,同时添加如图3-5所示的内容。

图3-4 Case结构举例前面板

条件端子 按钮 子程序标识

图3-6 Case结构

图3-5 属性设置 Case结构含有两个或者更多的子程序(Case),执行哪一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构如图3-6所示。

4.公式节点(Formula Node)

公式节点是一个大小可变的方框,可直接在流程图中输入公式。从函数/结构中选择公式节点就可以把它放到流程图中。当某个等式有很多变量或者非常复杂时,这个功能就非常有用。

图3-7 公式节点

三、实验内容

1.设计一个VI,计算产生一个与指定的数字相等的随机数所需花费的时间。

12

虚拟仪器与智能测量实验指导书

2.使用Case结构,创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。如图3-9所示,最后将该VI保存为Case Structure.vi。

提示:可以使用以下函数:

One Button Dialog函数:它可以用于显示一个对

话框,内容可由字符串常量输入提供。 例如:

图3-9 Case Structure 3.设计一个VI,用公式节点来计算下列方程:y1=x3-x2+5,y2=5x+3,其中x的取值为0-20,以上两个方程只许使用一个Formula Node。

4.设计一个VI能够像计算器一样进行运算。前面板上有两个数字控制器,用来输入两个数字,另有一个指示器,用来显示VI对输入数字进行运算(Add、Subtract、Divide或Multiply)的结果。用一个滑动条控制器来选择加、减、乘、除运算。

*5.分别用Case结构和公式节点语句两种方法,实现下列条件分支语句:

考虑计算两数比率x/y的下列代码段:

if (y?0) z=x/y; else z=+?;

两VI保存为Case Division.vi和Formula Division.vi。

*6.利用case结构的多分支,进行下列简单程序设计。 要求:星期一显示:新的一周开始了,好好学习! 星期二显示:今天是星期二,继续努力! 星期三显示:今天是星期三,生活愉快! 星期四显示:周四了,加油呀!

星期五显示:今天是星期五,站好最后一班岗! 星期六显示:周末愉快!

星期日显示:好好休息,迎接新的一周!

四、思考题

1.数据流编程有何优点?

2. LabVIEW有哪两种顺序结构?各有何特点? 3. 掌握Case结构的组成及设计方法。 五、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样? 3.心得体会及其它。

13

虚拟仪器与智能测量实验指导书

实验四 LabVIEW程序结构——事件结构与状态机

一、实验目的

1.掌握事件结构(Event Structure)编程。 2.了解状态机的工作原理和设计方法。 二、实验原理

1.事件结构(Event Node)

编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是―事件结构‖。事件结构内容丰富,基本上大的程序结构都需要用到事件结构。

事件结构在程序不能够单独响应各种事件,必须与循环结构一同使用。

以图形化方式响应和处理用户的操作;与Windows操作系统的事件处理方式相似。如图4-1所示。

事件超时事件数据节点选择器标签选择器标签对应事件的子框图 图4-1 事件结构

事件结构的组成:

(1)上边框中间是事件选择标签,用于标识当前显示的子框图(第0个)所处理的事件源。其增减与层叠式顺序结构和选择结构中的增减类似。

(2)事件数据节点为子框图提供所处理事件的相关数据。事件数据节点由若干个事件数据端子组成。

(3)事件超时端子,隶属于整个事件结构,用于为超时事件提供超时时间参数,以ms为单位。当值为-1时,事件结构处于永远等待状态,直到指定的事件发生为止。通常情况下,应当为事件结构指定一个超时时间,否则事件结构将一直处于等待状态。

LabVIEW事件编程的黄金原则:

(1)不要将事件结构放置在While循环之外。 (2)不要在事件结构中直接使用循环处理事件。 (3)在事件结构中添加“停止”按钮的处理分支。 提示:为防止前面板“死锁”,在编辑事件结构分支时,请将“锁定前面板直至事件分支完成”复选框去掉。

2.状态机

顺序模式是我们最先接触,也是最基本的一种编程模式,程序按照固定的顺序依次执行,结束。

14

虚拟仪器与智能测量实验指导书

但在很多情况下,静态的顺序模式并不能满足我们编程的要求,我们需要更有效地动态结构来实时改变程序的执行顺序。比如,一个自动的可乐贩售机,当然它可以实现简单的投币,取可乐,结束这样的顺序模式,但更多的情况下,需要经过多次投币,更或者是取消购买来结束一次操作。在这种情况下,状态机的引入就成了必然的结果。

那么什么是状态机呢?简单的说,状态机是对系统的一种描述,该类系统包含了有限的状态,并且在各个状态之间可以通过一定的条件进行转换。一般可以用状态图来对一个状态机进行精确地描述。

在LabVIEW中,任何一个状态机都是由三个基本部分构成的,首先外层是一个while 循环(用于维持状态机的运行),同时在while循环中包含有一个条件结构(用以对各个不同的状态进行判断),第三个基本部分是移位寄存器(用以将下一个状态传递到下一次循环状态判断中)。另外在一个完整的状态机中,我们一般还会提供初始状态,每一个状态的执行步骤以及下一个状态切换代码等等。

除了前面提到的三个基本部分以外,状态机的构建还有一个技巧,就是使用枚举型常量来作为状态变量,相对于其它数据类型来说,枚举常量表示了两组成对的数据,一组是字符串,一组是数值,两者一一对应,在前面板上,能直观地看到字符串,在程序面板上则简单地表示为数值型数据,整个枚举型数据的值可以是预定义的多个数据中的任何一个值。

为什么要使用枚举型数据来作为状态变量呢?

因为枚举型数据和条件结构配合使用时相当方便。第一,在条件结构的条件判断框中,看到的将不是单纯的数值,而是定义好的字符串,这样直观的表现形式给不同状态的管理带来了方便,另外,在条件结构上通过右键单击,选择为每个值添加分支,就能够自动地将条件结构根据枚举数据进行展开,从而保证每个状态的完整性。

此外,考虑到以后对状态机修改及维护的方便,通常将该枚举常量保存为一个自定义控件,将其作为枚举常量引入状态机中,当需要对状态变量进行修改时,只需要对该自定义控件进行一次修改、更新,就能对该状态机中任何位置的状态变量进行统一的管理了。 三、实验内容

1. 在前面板中显示一个按钮和一个数值输入控件,当在按钮上按下鼠标或数值输入控件值发生变化时,产生事件。当该事件发生时,弹出对话框,询问是否继续,点击Yes,While循环继续执行;若点击No则退出While循环;此外,设置一个超时处理子图形代码框,若5秒钟没有在前面板操作,则退出While循环。

15

虚拟仪器与智能测量实验指导书

2. 数据采集与处理状态机设计。该状态机主要完成数据采集与数据分析功能。

(1)状态变量枚举类型定义为:初始化、停止、检查VI事件、数据采集、数据分析等五项,将其设定为自定义类型。系统状态转换图如图4-5所示。

数据采集 “数据采集”:值改变 数据分析 “数据分析”:值改变 “停止”:值改变 初始化 检查VI事件 图4-5 状态图转换图 (2)在“初始化”分支中,将向波形图、信号测量局部变量写入初始数据代码。注意数

组常亮为一个空数组。

(3)在“检查VI事件”分支中,设置一个VI事件结构,事件结构包含以下事件分支: ? “数据采集”:值改变; ? “数据分析”:值改变; ? “停止”:值改变。

并将每个按钮设置为“释放时触发”。

(4)输出隧道设置为“取消未连线时使用默认”。 (5)Case结构中不要包含默认帧。 (6)前面板及部分程序框图如下:

停止

16

虚拟仪器与智能测量实验指导书

*3. 在前面板放置四个控件:门——布尔控件,表示一扇门(鼠标点击表示敲门);敲门次数——控件用来记录时间的次数;停止按钮——布尔控件,用来表示随时停止程序的运行;门把手——指示灯控件,要开门时门把手变绿,不开门时门把手为红色。

要求用事件结构设计,运行程序后,就一直等待事件的发生,此时,如果用鼠标点击“门”一次,则会弹出对话框,显示“您找谁呀?”,如果让其进入,选择“确定”按钮,门把手变“绿”,程序终止;如果不让其进入,选择“取消”,敲门次数显示为1,程序继续等待。

如果再敲门,则显示“对不起,您敲错了!”,确定后,敲门次数显示为2。如果再敲,则显示“错了,请不要再敲了!”,敲门次数显示为3。如果再敲,则显示“如果再敲,我就要报警了!”,敲门次数显示为4。如果还敲,则显示“这里是110,我们正赶往您那儿!”,确定后,程序自行终止。

如果在整个过程中,点击“停止”按钮,程序随时终止。

四、思考题

1.什么是事件?事件结构有哪几部分组成?使用事件结构有何优点? 2.什么是状态机?状态机有哪几部分组成?为什么要使用状态机? 五、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.使用公式节点时,如果输入变量的名称同输出变量的名称相同时,会怎样? 3.心得体会及其它。

17

虚拟仪器与智能测量实验指导书

实验五 LabVIEW编程的数组与簇

一、实验目的

1.掌握如何创建、使用数组;数组函数的功能和应用,掌握它们的区别以及相应操作。 2.掌握如何创建、使用簇;簇函数的功能和应用,掌握它们的区别以及相应操作。 二、实验原理

1.数组是一些具有相同类型的元素组成的集合。数组包含两方面的内容:元素和维数。数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型。一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。可以通过数组索引访问其中的每个元素。数组元素不能是数组、图表或者图形。

LabVIEW提供了很多用于操作数组的功能函数,位于函数Functions?数组Array中。其中包括创建数组、初始化数组、数组大小、数组子集、索引数组等。

? 创建数组:用于根据标量值或者其他的数组创建一个数组。 ? 初始化数组:创建所有元素值都相等的数组。 ? 数组大小:返回输入数组中的元素个数。 ? 数组子集:选取数组或者矩阵的某个部分。 ? 索引数组:用于访问数组中的某个元素。 建立数组的步骤如下:

1)从数组和类子模板(Controls-All Controls-Array & Cluster)上选中数组,放置在前面板中,此时为数组空壳,可以向里边添加(用拖拽的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。此时可以看到数组上有两个显示窗口:

? 标号显示窗:标号从0开始,每单击一次―增加‖键,标号显示值顺序递增。这个标号

就是数组元素的序号;对于一个含n个元素的数组,其标号为0~n-1。

? 元素显示窗:用来显示元素的数值。数组中的元素按序号排列。数组元素的查找按行/列标号进行。

2)右键单击标号窗口,弹出一个快捷菜单,选择Add Dimension来增加数组的维数。 2.簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。它类似于C语言中的structure。使用簇可以把分布在框图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度,减少子VI的连接端子的数量。

簇相当于一个容器,容器中的元素可以是各种不同的数据类型。也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中。因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图。它有多个输入,一个输出。

要建立簇,可以选择控制模板中数组和类子模板上的Cluster,将其调入前面板。向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素―捆绑‖在一起。

? 捆绑(Bundle)数据

Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的簇中的元素。可以用位置工具拖曳其图标的右下角以增加输入端子的个数。最终簇的序是取决于被捆绑的输入的顺序。右图中Bundle图标中部的Cluster端子用于用新元

18

虚拟仪器与智能测量实验指导书

素重置原簇中的元素。

? 分解(Unbundle)簇 Unbundle是Bundle的逆过程,它将一个簇分解为若干分离的元素。如果要对一个簇分解,就必须知道它的元素个数。LabVIEW还提供一种可以根据元素的名字来捆绑或分解簇的方法。

右键单击簇控件的边缘,弹出快捷菜单,如图5-1。其中: Reorder Controls In Cluster:用于设置类控件中各元素的排列顺序,这个排列顺序是输出信号顺序,如图5-2所示。在Cluster输出1和输出2两个簇控件中,元素输出的排列顺序不一样。

AutoSizing:右键单击该选项后,出现如图5-3所示的菜单,选择相应的选项,可自动调节类控制的边框大小及排列方式。

图5-1 簇控件快捷菜单

Properties:用来定义类控件的一些属性,如―AutoSizing‖,改变标签的名称,是否显示标签等内容及填入描述信息。属性页将前面板的属性特征集中到了一些简单的配置对话框中。

数组和簇的区别如下:

? 簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型; ? 簇具有固定的大小。 三、实验内容

1.练习数组的基本创建。利用循环的自动索引功能创建一个装有10个随机数的一维数组,并计算数组元素的平方和,同时求出该数组索引为3、长度为2的子数组。要求前面板显示该一维数组及平方和结果、输出的子数组。

图5-2 Reorder Controls In Cluster设置

图5-3 AutoSizing设置

2.编辑下列VI,理解一维数组和二维数组的产生,存为Two Dimensional Array Demo.vi。

5-4 Two Dimensional Array

19

虚拟仪器与智能测量实验指导书

3.循环与数组函数的综合运用。当VI执行结束后,数组输出显示控件的值是什么? 最后将该VI保存为Practice with Arrays .vi文件。

图5-5 程序框图

4.创建由一个控件簇和一个显示簇所组成的VI。要求输入控件数值加一,开关二反相,显示簇同时进行相应的显示。前面板组成如图5-6,最后将该VI保存为Cluster.vi文件。

图5-6 Cluster前面板和程序框图

四、思考题

1.讨论数组和簇的相同点和不同点。 2.用户可以创建一个包含数组的数组。( a. 真 b. 假)

3.将两个输入数组和一个For循环相连。自动索引在两个通道中都有效。一个数组有10个元素,另一个数组有5个元素。如图所示,计数接线端与一个值7相连。这个VI运行完之后,循环显示控件的值是多少呢?

五、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

20

虚拟仪器与智能测量实验指导书

实验六 LabVIEW编程的图形显示

一、实验目的

1.学习并掌握Chart和Graph的使用,理解它们的区别。 2.掌握Chart的三种显示模式。 3.了解其它二维图形的绘制。 二、实验原理

图形显示是虚拟仪器面板设计的重要内容。图形是以曲线来显示数组中的数据,常用的二维图形控件有Chart、Graph和XY Graph,可显示多条曲线。并可以改变曲线显示的格式。 在LabVIEW的图形显示中Graph和Chart是两个基本的概念。一般说来Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记录仪就是这样。而Graph则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它的表现形式要丰富得多。例如采集了一个波形后,经处理可以显示出其频谱图。如数字示波器。

LabVIEW的Graph子模板中有许多可供选用的控件,其中常用的见下表:

Waveform(波形) XY Intensity(强度图) Digital(数字图) 3D Curve(三维曲线) Chart * * Graph * * * * * 由表中可以看出,Chart方式尽管能实时、直接地显示结果,但其表现形式有限,而Graph方式表现形式要远为丰富,但这是以牺牲实时为代价的。

1.Graph控件(波形图)

曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、颜色以及数据点的形状等。

图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等。

光标图例用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。 刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以及刻度栅格的颜色等。

2.Chart(波形图表)的独有控件

Chart的数据并没有事先存在一个数组中,它是实时显示的,为了能够看到先前的数据,Chart控件内部含有一个显示缓冲器,其中保留了一些历史数据。这个缓冲器按照先进先出的原则管理,其最大容量是1024个数据点。

? 滚动条:它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。 ? 数据显示:可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前最新的一个数据值。

Chart提供了三种画面的刷新模式,分别是:

21

虚拟仪器与智能测量实验指导书

?

Strip Chart Mode(条状图):它与纸带式图表记录仪类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,先前的数据点逐次左移。 ? Scope Chart Mode(示波器模式):它与示波器类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,清屏刷新,从左边开始新的绘制。它的速度较快。 ? Sweep Chart Mode(扫描模式):与示波器模式的不同在于当新的数据点到达右部边

界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲线逐点向右推,同时在左边画出新的数据点。如此循环下去。 ? 堆叠式图区(Stack Plots)

在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。 三、实验内容

1.Chart(波形图表)和Graph(波形图)的比较

创建一个VI,用Chart和Graph分别显示40个随机数产生的曲线,比较程序的差别。

2.设计一个VI来测量温度,每隔250ms测一次,共测定10秒。在数据采集过程中,VI将在波形Chart上实时地显示测量结果。在采集过程结束后,在Graph上一次性画出数据波形曲线,并算出温度的最大值、最小值和平均值。

3.利用XY Graph构成李萨育图形

波形图(Waveform Graph)有一个特征,其X是测量点序号、时间间隔等,Y是测量数据值。但是它并不适合描述一般的Y值随X值变化曲线,适合于这种情况的控件是XY Graph。我们通过一个构成李萨育图形的例子来看一下它的使用。如果控制XY方向的两个数组分别按正弦规律变化(假设其幅值、频率都相同),如果它们的相位相同,则李萨育图形是一条45度的斜线,当它们之间相位差90度时为圆,其他相位差是椭圆。

22

虚拟仪器与智能测量实验指导书

4.设计一个VI,用独立的XY数组形成一个圆环。

*5.设计一个简单的虚拟信号发生器。

*6.尝试设计一个奥运五环。

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.总结Chart和Graph的使用区别。 3.Chart的三种工作模式是什么? 4.心得体会及其它。

23

虚拟仪器与智能测量实验指导书

实验七 LabVIEW字符串和文件I/O编程

一、实验目的

1.熟悉并掌握字符串函数的使用。 2.熟悉并掌握文件I/O操作。

3.了解属性节点如何作为前面板转换的方法。 二、实验原理

1.字符串是ASCII字符的集合,LabVIEW有很多函数来处理各种类型的字符串。

String Length函数返回字符串中字符的个数;Concatenate String函数把所有的输入字符和字符串连接成一个输出字符串;Match Pattern函数返回匹配的子串,如果没查找到匹配字符串则返回字符串为空;字符串格式化函数Format Into String把数值型数据转换成ASCII字符串格式;字符串格式化函数Scan From String把ASCII字符串数据转换成数字格式。

2.文件的I/O操作是指向文件中写入数据以及从文件中读取数的操作,所有的文件I/O函数都在Functions模板的File I/O子模板中。Open/Create/Replace File函数用来打开、更换一个已存在的文件,或者创建一个新文件;Read File函数从指定的文件读取指定字节的数据;Write File函数往指定的文件中写入数据;Close File函数关闭指定的文件。 三、实验内容

1.设计一个将数字转换为字符串的VI。要求将这个字符串连接到其他字符串上并组成一个输出字符串,然后显示输出字符串长度,如图7-1所示。调试该程序,在此程序基础上,建立一个VI子程序,命名为string.vi。

2.字符串1为―ABCD‖四个大写字母,字符串2为―1234‖四个数字;字符串常量1为―efgh‖四个小写字母,字符串常量2为―3.14‖。把以上字符串依照次序合并为一个字符串,字母全部变为大写字母,把字母D换为w,计算其长度,找到字符串中小数点的位置。

3. 设计一个温度采集监测系统。如图7-3所示,采集的温度采用随机数乘以100得到,每1秒采集一次。能够通过温度计实时显示当前采集温度。当未开启报警复选框时,报警信息显示“温度监测正在运行中”。当开启报警复选框后,如果采集温度未达到报警上限,则显示“温度监测正在运行中”;当达到报警上限,报警指示灯亮,并在报警信息中显示“温度超限!当前温度:?℃”,程序自行终止。

24

虚拟仪器与智能测量实验指导书

4. 有一个测量程序,采集A、B两路信号(幅度范围均为0~100),每1s采集一次,要求每采集一次,就将采集结果写入文本文件尾部,即使重新运行程序,仍能保证数据添加到文件尾部,而不会覆盖原有数据。格式为a、b保留2位小数。编写该测量程序的数据存储部分。采集的两路信号可分别用随机数生成程序进行模拟。

*5. 设计一个VI来测量温度(温度是用一个20到40的随机整数来代替,保留两位小数),每隔1秒测一次,共测定20秒。在数据采集过程中,实时写入电子表格文件,其中第一列为采集点数;第二列为日期时间(真实的采样时间);第三列为实时测量结果。并在第一行包含每列的描述信息。如下图所示。采集过程结束后,在Graph上画出温度数据曲线。 点数 1 2 3 时间(s) 2014-3-18 11:08:44 2014-3-18 11:08:45 2014-3-18 11:08:46 温度值(度) 37.11 34.44 25.32

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

25

虚拟仪器与智能测量实验指导书

实验八 LabVIEW信号分析与处理

一、实验目的

1.进一步掌握LabVIEW的编程方法。 2.掌握主要信号分析与处理函数的使用。 二、实验原理与内容

LabVIEW的Advanced Analysis软件库包括数值分析、信号处理、曲线拟合以及其他软件分析功能。该软件库是建立虚拟仪器系统的重要工具,除了具有数学处理功能外,还具有专为仪器工业设计的独特的信号处理与测量功能。 三、实验内容

设计一个信号发生器,可在其添加噪声,然后对其滤波,观察滤波后的波形及频谱图。 1.创建一个基本函数发生器

要求能产生正弦波、三角波、方波、锯齿波等信号,前面板上有信号类型、信号频率、幅度、采样频率、采样点数等输入控件,观察各种信号波形图。

2.添加噪声

要求在基本函数发生器上添加噪声,在前面板上有是否添加噪声按钮,观察添加噪声以后的波形。

3.数字滤波

在此基础上设计一个数字滤波器,包括滤波器类型的选择、截止频率、阶数等,观察滤波前后的波形。先介绍一下Butterworth 滤波器:

Filter type :按下列值指定滤波器类型 0:Lowpass 低通 1:Highpass 高通 2:Bandpass带通 3:Bandstop 带阻 X:需要滤波的信号序列

Sampling freq fs:产生X序列时的采样频率,必须大于0。缺省值是1.0。如果它小于等于0则输出序列Filtered X为空并返回一个错误。

High cutoff freq fh:高端截止频率。当滤波器类型为0(lowpass)或1(highpass)时忽略该参数。

Low cutoff freq fl:低端截止频率。它必须满足Nyquist准则,即:0≦fi<0.5fs

如果该条件不满足则输出序列Filtered X为空并返回一个错误。fi的缺省值是 0.125。 Order:大于0,缺省值是2。

init/cont:内部状态的初始化控制。当其为FALSE (default), 初态为0,当init/cont 为 TRUE,滤波器初态为上一次调用该VI的最后状态。为了对一个大数据量的序列进行滤波,可以将其分割为较小的块,设置这个状态为FALSE处理第一块数据,然后改设置为TRUE继续对其余的数据块滤波。

Filtered X:滤波样本的输出数组。 4.频谱分析

要求对产生的信号进行频谱分析,观察其频谱图。

26

虚拟仪器与智能测量实验指导书

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

27

虚拟仪器与智能测量实验指导书

第二篇 LabVIEW数据采集单元

实验九 模拟信号的采集与输出

一、实验目的

1.了解数据采集的基本理论、数据采集卡及其DAQ技术的应用。 2.了解数据采集卡的测试与配置。

3.熟练掌握采集卡AD采集功能与DA输出功能。 二、实验原理

1. 模拟信号输入

采集模拟信号是虚拟测试系统中最常见、最典型的任务。按采集数据的多少,模拟信号采集通常分为单点直流信号采集、有限波形采集和连续波形采集;按使用通道的多少,可分为单通道采集、多通道采集。

单通道采集适合于对直流电压信号的采集,每次采集只需要一个采样点,因此在编程时只需要使用“DAQmx创建通道”、“DAQmx读取”“DAQmx清除任务”几个基本的数据采集函数即可实现采集任务。

有限波形采集是从一个或多个通道分别采集多个点组成一段波形。由于是多点采集,就需要确定两点间采集的时间间隔(即采样频率)、采样点数等参数。

要实现一个连续的波形采集,只需将读取数据及必要的数据处理程序放入循环即可,而不是将整个数据采集程序放入循环。这是因为如果这样,每次循环都将进行开始任务、采集数据、结束任务的操作。这一来没有必要,二来会降低程序执行效率和性能。把“DAQmx开始任务” 和 “DAQmx 结束任务”置于循环之外,使“开始任务”和“结束任务”的操作只进行一次,无疑可改善程序的运行性能。

对于连续采集,缓冲是必须注意的。对于一些简单的采集,用户不需设置,LabVIEW会自动分配缓冲区。对于DAQmx定时的“每通道采样‖端,当采样模式为有限采样时,表示每通道需要读取或写入数据的长度;当采样模式为连续采样时,表示缓冲的大小,可以通过该端子实现缓冲区的大小。

NI-DAQmx对于不同的“采样率”有一个参考的缓冲区大小,如果通过“每通道采样”所设的值小于参考值的话,系统会自动选择参考值作为缓冲区的大小。

采样率 未设置 0-100S/s 100—10,000S/s 缓冲区大小 10kS 1kS 10kS 采样率 10,000–1,000,000 S/s >1,000,000 S/s 缓冲区大小 100kS 1MS 连续采样中,若DAQmx从缓存中读取数据的速度小于向缓存存放数据的速度,则会出现向缓冲区写入数据覆盖掉还没有被读取的数据而产生数据丢失,通过设置合适的“每通道采样数‖可避免该错误的发生,通常设置为缓存大小的1/2~1/4。

通常在使用循环中调用DAQmx Read.vi的时候,一般是选择多态VI中的多采样而不是单采样,同时,将它的每通道采样数设置为-1,表示每次调用DAQmx Read.vi的时候都是将内存中的所有数据读取进来,不会出现等待的情况,有就读,没有就返回。

28

虚拟仪器与智能测量实验指导书

数据采集中时间相关的问题主要是两方面,一个是每一个数据点的时间,在NI的数据采集中是通过t0和dt来确定的,t0就是开始数据采集的初始时间,是任务开始时数据采集卡读取的计算机时间,dt是两个数据点之间间隔的时间,是采样率的倒数,比如1K采样率,dt就是1/1000=0.001秒=1毫秒。在使用DAQmx Read.vi的时候要选择波形输出而不是选择DBL输出,波形输出带有时间信息,而DBL就只是有数据而没有时间信息了。

2. 模拟信号输出

数据采集设备输出模拟信号,包括稳定的直流信号、有限波形信号和连续波形信号。模拟信号输出与模拟信号输入所使用函数大部分是相同的,最大的区别在于模拟信号输入采用“DAQmx读取‖ ,而模拟信号输出要采用“DAQmx写入‖。

注意:模拟输出时,产生信号的是硬件,即使停止而且清除了任务,采集卡输出端口将维持任务结束时最后一个数据样本的状态,直到新任务开始或设备断电。如果采集卡在不需要输出信号时长期保持非零电平状态,容易造成损坏,因此在模拟输出任务完成不需要输出信号后,需运行一段单点输出代码,将前面通道的输出置为0。 三、实验步骤

1. 数据采集卡的安装与配置。

2. 设计一个连续模拟输出信号。假设信号频率为10Hz,运行程序,用示波器观察结果。

3. 设计一个连续的模拟信号波形采集系统。接通电源,运行程序,在相应的物理通道输入一个信号,用波形图观察。

29

虚拟仪器与智能测量实验指导书

4. 设计一个连续的模拟信号采集与输出系统。并将模拟信号的输出连接到模拟信号的输入端,观察运行结果。

四、实验报告要求

1.了解数据采集原理。

2.熟悉基本模拟输入通道、模拟输出通道的设计方法。

3.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

4.心得体会及其它。

30

虚拟仪器与智能测量实验指导书

实验十 温度采集与控制系统设计

一、实验目的

1.进一步熟练掌握采集卡AD采集功能与DA功能。 2.掌握温度传感器工作原理及其信号调理电路设计。 二、实验原理

温度是自然界中和人类打交道最多的物理参数之一,无论是在生产实验场所,还是在居住休闲场所,温度的采集或控制都十分频繁和重要,而且网络化远程采集温度并报警是现代科技发展的一个必然趋势,所以温度传感器就应运而生。

热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。

热敏电阻是开发早、种类多、发展较成熟的敏感元器件。热敏电阻由半导体陶瓷材料组成,大多为负温度系数,即阻值随温度增加而降低。温度变化会造成大的阻值改变,因此它是最灵敏的温度传感器。但热敏电阻的线性度极差,并且与生产工艺有很大关系。制造商给不出标准化的热敏电阻曲线。热敏电阻体积非常小,对温度变化的响应也快。

本实验模块中使用的热敏电阻温度与电压的关系近似为:

T?p*(u?u0)?89.89*(u?0.53)

其中u为数据采集卡采集的热敏电阻经过信号调理后的电压;T为当前温度。

通过热敏电阻将温度信号转化为电压信号,再将电压信号通过电路处理成NI PCI-6221采集卡准确采集范围内的电压,然后利用NI PCI-6221采集卡采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。当当前温度过高,通过程序输出控制信号给采集卡,采集卡DA输出信号使三极管Q1导通,电风扇转动开始降温;当温度过低,采集卡输出信号使Q2导通,给电阻加热,从而达到调节控制温度的目的。

其中温度信号由Rt温度传感器进行采集,经过信号调理后,由CH0输出端送至数据采集卡AI输入端,经过编写算法处理后,由DO端输出两路信号分别控制D01(电风扇)和DA3(发热电阻)。 三、实验步骤

1. 将采集卡连接计算机与实验箱;将温度测量与控制电路模块装上实验箱。

2. 将模块上CH0端(或TP3)用导线连接至采集卡AI10端,DA3端或连接至采集卡AO0,

31

虚拟仪器与智能测量实验指导书

D01端或连接至采集卡AO1,GND端连接至采集卡AI GND端。

3. 编写温度测量与控制系统程序。要求建立1通道1采样模拟输入通道,输入通道采用ai10,每秒采集一次信号,将采集到的电压换算成温度,并显示在波形图中,然后与温度上限、温度下限进行比较,分别控制报警指示灯和显示报警信息。如当前温度超过报警上限,则报警指示灯亮并显示“温度过高,需要降温!”;当未超过报警上限,则报警指示灯不亮,并显示“温度正常!”。同样,当温度过低,报警指示灯亮和显示报警信息。

4. 设计两通道模拟输出。采用N通道1采样,正常情况下,两个输出端ao0、ao1都输出0;当温度过高报警时,A01输出+5V,控制三极管Q1导通,用电风扇给传感器降温;当温度过低时,则控制使Q2导通,电阻R0加热,使传感器温度升高。

5. 分别改变温度上限、温度下限控件值,观察结果。

四、实验报告要求

1.了解温度传感器的工作原理。了解数据采集的基本原理,掌握直流信号模拟输入、模拟输出通道的设计方法。编写程序完成系统设计。

2.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

3.心得体会及其它。

32

虚拟仪器与智能测量实验指导书

实验十一 红外数据传输系统设计

一、实验目的

1.掌握数据采集卡的数字IO功能。 2.了解红外传输原理及工作过程。 二、实验原理

红外遥控有发送和接收两部分组成。发送端采用 CD4060和晶振电路,产生38KHz脉冲串信号TP2,TP1由数据采集卡IO口产生,作为控制信号,通过与门调制,将TTL信号乘以频率为38KHz的脉冲信号得到间断脉冲串,即是调制后用于红外发射二极管发送的信号。

红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本系统中采用红外一体化接收头HS0038。HS0038采用黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m,能与TTL、COMS 电路兼容。HS0038为直立侧面收光型,它接收红外信号频率为38 KHz,周期约26 μs,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚分别是地、+5 V 电源、解调信号输出端。

特别强调:编码与解码是一对逆过程,不仅在原理上是一对逆过程,在码的发收过程也是互反的,即以前发射端原始信号是高电平,那接收头输出的就是低电平,反之亦然。因此为了保证解码过程简单方便,在编码时应该直接换算成其反码。

HS0038型的红外一体接收头集成度高,成本低。红外线接收管需要接收38KHz左右带宽的脉冲波形,接收发射管只能接收间歇发射的红外线,发射红外线过于密集,接收管无法导通,需要予以注意。红外线发射管发出38KHz载波,将红外线接收管导通。该波形频率为1KHz,周期内高电平时间720μs,低电平时间280μs。当有物体遮挡红外线对射管时,发射源被遮挡,红外线接收管无法导通,输出高电平。由此可以判断是否有物体从红外线对射管中间通过。

LabVIEW程序输出信号给采集卡,控制采集卡DO口输出数字信号驱动红外发光二极管工作,实现DO控制。

发出的红外光由HS0038红外光传感器门电路接收,转换成TTL电平信号传输给采集卡DI口,采集卡将采集到的数字信号进一步传输给计算机,计算机通过LabVIEW程序判断和处理接收的信号,实现DI采集。

三、实验步骤

1. 将数据采集卡连接计算机与实验箱。

2. 将红外数据传输与控制电路模块装上实验箱,拧上彩色螺母固定。

3. 将模块上DI9端(或TP7)用导线连接至采集卡P1.2端,CON_IN端(或TP1)连接

33

虚拟仪器与智能测量实验指导书

至采集卡P1.7,GND端连接至采集卡DGND端。

4. 接通电源,编写“红外数据传输系统.vi”程序。

5. 在程序中,通过一个条件语句完成输入类型的选择,可以直接输入数字控制,也可通过数组控制;其次自动检测出数组的大小来控制While循环,在循环中通过顺序语句分别实现IO采集与输出功能。最后将结果分别以数字和数组显示在前面板上。

6. 在“发送”控件内输入任意0-255范围内数值,观察结果。

7. 单击“输入类型”控件,改变“传输数组”控件值,观察结果。 8. 仿照实验程序自行编写程序,并连接仪器测试程序的运行状况。

四、实验报告要求

1.了解数据采集的基本原理。

2.掌握数字IO输入输出通道的设计方法。

3.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

4.心得体会及其它。

34

虚拟仪器与智能测量实验指导书

实验十二 湿度测量计设计

一、实验目的

1.初步掌握采集卡计数器功能。

2.学会利用采集卡计数器检测脉冲信号频率。 二、实验原理

湿度传感器HS1101是基于独特工艺设计的电容元件,这些相对湿度传感器可以大批量生产。可以应用于办公室自动化,车厢内空气质量控制,家电,工业控制系统等。它有以下几个显著的特点:

(1)全互换性,在标准环境下不需校正 (2)长时间饱和下快速脱湿

(3)可以自动化焊接,包括波峰或水浸 (4)高可靠性与长时间稳定性 (5)专利的固态聚合物结构

(6)可用于线性电压或频率输出回路 (7)快速反应时间

HS1101电容传感器,其容量随着所测空气湿度的增大而增大。将电容的变化量准确地转为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运放与阻容组成的桥式振荡电路中,产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。

此电路为典型的555非稳态电路。HS1101作为电容变量接在555的TRIG与THRES两引脚上,引脚7用作电阻R2的短路。等量电容HS1101通过R1与R2充电到门限电压(约0.67Vcc),通过R1放电到触发电平(约0.33Vcc),然后R2通过引脚7短路到地。传感器由不同的电阻R2与R1充放电,其工作循环可以描述如下:

Thigh=C@%RH*(R1+R2)*ln2 Tlow=C@%RH*R1*ln2

F=1/(Thigh+Tlow)=1/(C@%RH*(R2+2*R1)*ln2) 输出循环周期=Thigh*F=R1/(R2+2*R1)

为了使循环时间降低50%,则与R1相比,R2应该非常小,但是不要低于最小值。电阻R3是为了短路保护,555必须为CMOS。

555电路的非平衡电阻R1是做内部温度补

偿,目的是为了引入温度效应,使它与HS1101的温度效应相匹配。

当外界湿度变化时,HS1101 两端电容值发生改变,从而改变定时电路的输出频率。因此只要测出555的输出频率,并根据湿度与输出频率的关系,即可求得环境的湿度。

实验中设定0RH频率为7000Hz,100RH频率为3000Hz。通过算法求得湿度%RH与频率的关系:%RH?

100?(f测?f0RH) (式1)

f100RH?f0RH35

虚拟仪器与智能测量实验指导书

湿度传感器感应的湿度信号通过电路转化为脉冲信号,再将脉冲信号然后利用NI PCI-6221采集卡计数器功能采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。

三、实验步骤

1. 将采集卡连接计算机与实验箱。

2. 将湿度传感器与调理电路模块装上实验箱,拧上彩色螺母固定。

3. 将模块上HUM_OUT端(或TP4)用导线连接至采集卡CTR0 SRC端,模块上GND端连接至采集卡DGND端。

4. 用LabVIEW设计程序,利用数据局采集卡的计数器,实现频率的测量,然后通过式(1)的算法转换实现湿度的测量与显示。

5. 接通电源,运行程序,稳定后,对着传感器吹一口气,观察信号变化;待湿气耗散后,再观察信号变化。 四、实验报告要求

1.掌握采集卡计数器功能,学会利用采集卡计数器检测脉冲信号频率。

2.利用数据采集卡的计数器输出一个频率为100Hz的连续脉冲信号,然后对该脉冲信号的频率进行测量。

3.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

4.心得体会及其它。

36

虚拟仪器与智能测量实验指导书

实验十三 电子秤设计

一、实验目的

1.熟练掌握采集卡AD采集功能。

2.学会利用软件修正采集卡采集到的数据,即定标。 二、实验原理

通过力敏传感器将压力信号转化为电压信号,再将电压信号通过电路处理成NI PCI-6221采集卡准确采集范围内的电压,然后利用NI PCI-6221采集卡采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。信号调理电路如图13-1所示。

图13-1 电子称信号调理电路

三、实验步骤

1. 将采集卡连接计算机与实验箱。

2. 用导线将采集卡AI8连接至实验箱XT2座CH2脚(“CH2”标于XT1座上方),采集卡AI GND连接至实验箱XT2AGND脚。

3. 编写程序,完成电子称前面板和程序框图设计。数据采集采用1通道1采样模拟输入,输入通道采用ai8,每50毫秒采集一次信号。为测量准确,首先进行校准,假设不加砝码时测量值为x1,加20g砝码时测量值为x2,根据y=kx+b,即kx1+b=0,kx2+b=20,得到k=20/(x2-x1),b=-kx1。然后通过y=kx+b就可以测出某物体的质量了。其中x为测量20次的平均值。

图13-2 电子称前面板

37

虚拟仪器与智能测量实验指导书

图13-2 电子称程序框图

其中各条件结构中逻辑假时都为空,只有在默认设置中事件结构中【1】如图13-3所示。

图13-3 事件结构中的退出事件

3. 接通电源,运行程序,测试运行情况。 4. 按照前面板上的“实验步骤”操作。 四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

38

虚拟仪器与智能测量实验指导书

实验十四 光强检测与控制系统设计

一、实验目的

1.进一步熟练掌握采集卡AD采集功能。 2.初步学会使用DA功能。 二、实验原理

通过光敏电阻将光强信号转化为电压信号,再将电压信号通过电路处理成NI PCI-6221采集卡准确采集范围内的电压,然后利用NI PCI-6221采集卡采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。

通过程序输出控制信号给采集卡,采集卡DA输出驱动发光二极管发光,从而达到调节控制光强的目的。信号调理电路如图14-1所示。

本系统设计一个模拟电压输入通道ai8和一图14-1 光强检测与控制信号调理电路 个模拟电压输出通道ao0,每100毫秒采集一次。设置一个光强控制控件,范围为0-5V,将(5-光强控制)的电压通过ao0输出到调理电路DA0端,控制发光管D1的亮度,P1接收到光信号转变为电压信号经电压跟随器后,经采集卡ai8采集到计算机,得到光强信号=90-20*u,其中u为采集到的电压信号。 三、实验步骤

1. 将采集卡连接计算机与实验箱。

2. 将光强传感器与控制电路模块装上实验箱,拧上彩色螺母固定。

3. 将模块上LIG_OUT端(或TP4)用导线连接至采集卡AI8端,CON_IN端(或TP1)连接至采集卡AO0,GND端连接至采集卡AI GND端和AO GND。

4. 接通电源,测试程序的运行状况。

5. 调节“光强控制”控件值,观察硬件上光强变化,同时观察采集信号的变化。 四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

39

虚拟仪器与智能测量实验指导书

实验十五 自动控制窗帘系统设计

一、实验目的

1.熟练掌握采集卡数字IO功能与AD采集功能。 2.进一步掌握步进电机的控制方法。 3.尝试AD采集与DO输出的反馈控制。 二、实验原理

本实验使用的步进电机用直流+12V 电压,电机线圈由A、/A、B、/B 四相组成。

驱动方式为四相四拍方式,各线圈通电顺序如下表。表中首先

向A 线圈输入驱动电流,接着/A、B、/B线圈驱动,最后又返回到A线圈驱动,按这种顺序切换,电机轴按顺时针方向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。(注:为提高步进电机负载能力和运行平稳可使用四相八拍驱动方式。

四相四拍 四相八拍

顺序/相 A /A B /B 0123 1000 0100 0010 0001 A /A B /B 0 1 0 0 0 1 1 1 0 0 2 0 1 0 0 3 0 1 1 0 4 0 0 1 0 5 0 0 1 1 6 0 0 0 1 7 1 0 0 1 电机带动磁铁转动,磁铁的位置代表“窗帘”的打开程度,利用霍尔元件44E检测“窗帘”的打开程度,即“窗帘”“打开”到某一位置时,相应霍尔传感器通过电路传出TTL高电平信号,信号由采集卡DI采集传给计算机,通过LabVIEW程序判断“窗帘”的打开程度,此即实现DI采集功能。

由LabVIEW程序判断“窗帘”的打开程度后,输出数字信号给采集卡,控制采集卡输出数字控制信号,一部分信号传递给ULN2003芯片电路驱动步进电机转动,一部分信号驱动数码管,在硬件上显示“窗帘”的打开程度,此即实现DO控制。

通过光敏电阻将光强信号转化为电压信号,再将电压信号通过电路处理成PCI-6221采集卡准确采集范围内的电压,然后利用采集卡采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。通过程序输出控制信号给采集卡,采集卡DA输出信号给电路驱动发光二极管发光,从而达到调节控制光强的目的。由采集到的光强大小LabVIEW程序判断“窗帘”是“拉起”还是“打开”,通过DO输出信号控制电机的运行。

信号调理电路参考“光强的检测与控制”,“步进电机控制”部分信号调理电路为:

40

三、实验步骤

1. 将采集卡连接计算机与实验箱。

2. 用导线将采集卡P0.0~P0.7连接至实验箱XT2座DI0~DI7脚(“DI0~DI7”标于XT1座上方),采集卡P1.3~P2.5连接至实验箱XT2座DO3~DO13脚、采集卡DGND连接至实验箱XT2座DGND脚。

3. 将光强传感器与控制电路模块装上实验箱,拧上彩色螺母固定。

4. 将模块上LIG_OUT端(或TP4)用导线连接至采集卡AI11端,CON_IN端(或TP1)连接至采集卡AO0,GND端连接至采集卡AI GND和AO GND端。

5. 编写程序,完成“自动控制窗帘系统”程序设计。

6. 程序设计分为两大部分,其中模拟输入通道AI11完成光强的检测与显示,模拟输出通道AO0完成光强的控制;数字输入端口port2/line0:7完成当前窗帘所在位置的检测,数字输出通道port0/line3:7、port1/line0:5完成窗帘当前运行状态检测、驱动数码管显示当前窗帘位置、驱动步进电机正转或反转来打开或关闭窗帘。

7. 运行程序,给定一个合适的“拉起窗帘光强”,调节“光强控制”控件值,观察硬件上光强变化和采集信号的变化,同时观察随着光强的变化步进电机的运转情况。

8. “光强控制”值设为0,使发光二极管发光最强,在发光二极管和光敏电阻间添加不透明障碍物挡住光线,观察电机运行状态;移开障碍物,再次观察电机运行状态。

虚拟仪器与智能测量实验指导书

41

虚拟仪器与智能测量实验指导书

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

42

虚拟仪器与智能测量实验指导书

实验十六 模拟电梯超重报警系统设计

一、实验目的

1.复习采集卡AD采集与数字IO功能。 2.掌握AD采集与数字IO的结合使用。 二、实验原理

本实验使用的步进电机用直流+12V 电压,电机线圈由A、/A、B、/B 四相组成。 驱动方式为四相四拍方式,各线圈通电顺序如下表,表中首先向A 线圈输入驱动电流, 接着/A、B、/B 线圈驱动,最后又返回到A 线圈驱动,按这种顺序切换,电机轴按顺时针方向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。(注:为提高步进电机负载能力和运行平稳可使用四相八拍驱动方式。)

四相四拍 四相八拍

顺序/相 A /A B /B 0123 1000 0100 0010 0001 A /A B /B 0 1 0 0 0 1 1 1 0 0 2 0 1 0 0 3 0 1 1 0 4 0 0 1 0 5 0 0 1 1 6 0 0 0 1 7 1 0 0 1

电机带动磁铁转动,磁铁的位置代表“电梯”的位置,利用霍尔元件检测“电梯”的位置,即“电梯”处于某个霍尔元件位置时,相应霍尔传感器通过电路传出TTL高电平信号,信号由采集卡DI传给计算机,通过程序判断“电梯”的“当前楼层”,此即实现DI采集功能。

由程序判断“当前楼层”后,输出数字信号给采集卡,控制采集卡输出数字控制信号,一部分信号传递给ULN2003芯片电路驱动步进电机转动,一部分信号驱动数码管,在硬件上显示“当前楼层”,此即实现DO控制。

通过力敏传感器将压力信号转化为电压信号,再将电压信号通过电路处理成NI PCI-6221采集卡准确采集范围内的电压,然后利用NI PCI-6221采集卡采集输入计算机,最后通过LabVIEW编程运算和显示采集到的信号。

程序通过采集的AD值判断是否“超重”,进而通过数字IO控制“电梯”是否“运行”,此即AD采集与数字IO的结合使用。电路原理图参考“电子称”、“步进电机控制”。 三、实验步骤

1.将压力传感器与桥用激励电路装上实验箱,拧上彩色螺母固定。

2. 将模块上OUT端用导线连接至实验箱AI9端,将模块上外接电源接口-5V端用导线连接至实验箱-5V端,将GND端连接至实验箱AGND端。

3. 按照压力的测量实验校准“电子秤”。输入一个合适的“电梯最大承重”值,再输入一个“要求楼层”,让“电梯”运行起来。在“电梯”运行途中给“电子秤”施加压力直至压力值超过“电梯最大承重”,观察“电梯”电梯运行状态。

4. 改变“要求楼层”,看电梯是否运行。减小压力值直至小于“电梯最大承重”观察“电梯”运行状态。 四、参考程序

43

虚拟仪器与智能测量实验指导书

五、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

44

虚拟仪器与智能测量实验指导书

实验十七 遥控电风扇系统设计

一、实验目的

1.进一步熟练掌握采集卡DA输出功能、数字IO功能。 2.学会DA输出功能、数字IO功能的结合使用。 二、实验原理

LabVIEW程序输出信号给采集卡,控制采集卡DO口输出数字信号驱动红外发光二极管工作,实现DO控制。

发出的红外光由HS0038红外光传感器门电路接收,转换成TTL电平信号传输给采集卡DI口,采集卡将采集到的数字信号进一步传输给计算机,计算机通过LabVIEW程序判断和处理接收的信号,实现DI采集。根据接收到的信号,LabVIEW程序输出控制信号给采集卡,采集卡通过DA口输出相应电压,经过信号放大与功率放大控制电机旋转,实现DA控制。 三、实验步骤

1. 将采集卡连接计算机与实验箱。将电机转速控制与测速电路模块和红外数据传输与控制电路模块装上实验箱,拧上彩色螺母固定。

2. 将电机模块上DA1端连接至采集卡AO1,GND端连接至采集卡AO GND端;红外模块上DI9端(或TP7)用导线连接至采集卡P1.2端,CON_IN端连接至采集卡P1.7,GND端连接至采集卡DGND端。

3.运行程序,分别选择“大风”、“中风”、“小风”、“阵风”、“停止”,观察实验现象。

四、实验报告要求

1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点。

2.心得体会及其它。

45

虚拟仪器与智能测量实验指导书

第三篇 LabVIEW信号处理单元

实验十八 典型信号频谱分析

一、实验目的

1.在理论学习的基础上,通过本实验熟悉典型信号的波形和频谱特征,并能够从信号频谱中读取所需信息。

2.了解信号频谱分析的基本方法及仪器设备。 二、实验内容

利用“NI PCI/PXI6221典型信号频谱分析.vi”程序观察几种典型信号的频谱图。 三、实验内容实验仪器、设备及器材

Windows系统PC机一台、NI PCI/PXI6221采集卡一块、信号源一台、导线若干。 四、实验原理

频谱就是频率的分布曲线,复杂振荡分解为振幅不同和频率不同的谐振荡,这些谐振荡的幅值按频率排列的图形叫做频谱。广泛应用在声学、光学和无线电技术等方面。 频谱是频率谱密度的简称。它将对信号的研究从时域引到频域,从而带来更直观的认识。

本实验利用LabVIEW程序编写成的信号频谱分析系统对几种典型信号进行频谱分析。输入信号可以是程序产生的仿真信号,也可以通过NI PCI/PXI6221数据采集卡采集外部信号源产生的信号。程序对输入信号进行数据处理,将分析结果在计算机上显示出来。 五、实验步骤

1.将采集卡连接计算机与外部信号源。

2.打开“典型信号频谱分析.vi”程序,并运行。 3.“输入信号”控件选择“仿真”。 4.输入“采样数”和“采样率”。 5.设置输入信号参数(“信号类型”、“频率”、“幅值”等)。 6.观察各图表显示的结果。 7.改变界面左下角控件(“窗”、“窗参数”、“映射模式”、“平均参数”等)值,再次观察图表显示的结果。

8.“输入信号”控件选择“外部”。 9.重复步骤4、6、7。 六、参考程序

46

虚拟仪器与智能测量实验指导书

47

本文来源:https://www.bwwdw.com/article/k07o.html

Top