当前位置:文档之家› 虚拟仪器实验

虚拟仪器实验

虚拟仪器实验指导书关海川编写西南交通大学峨眉校区2012年10月前言虚拟仪器技术是以计算机和软件为核心的,通过软件将计算机硬件资源与仪器有机地融合为一体,能够把计算机强大的计算处理能力和仪器硬件的测量、控制能力结合在一起。

提高实验教学内容的先进性是帮助学生学习前沿科学知识的重要手段,一直以来,由于供学生使用的实验仪器相对落后,而先进的仪器价格又过于昂贵,阻碍了学生探索和认识世界的进程。

虚拟仪器技术的出现有效地解决上述问题,学校在不增加或增加少量开支的基础上使实验仪器在精确性、灵活性、工程实用性、可测范围等方面有一个大的飞跃。

RZ8688A 虚拟仪器技术实验平台自带虚拟信号源、示波器、逻辑分折仪、频谱仪、三用表、数字量输入输出模块,能完成各种虚拟仪器仪表设计的实现和电子通信测控类实验。

是一款能满足学生掌握先进测控技术的性价比很高的实验设备。

本实验教程主要面向虚拟仪器技术的初、中级用户,介绍LabVIEW编程的基础知识和基本技巧以及相应的实验,可作为大、中专院校相关专业的实验教学教材,也可供有关工程技术人员和软件工程师参考。

由于编者的能力和水平有限,加之时间仓促,书中难免存在不妥和错误之处,恳请使用本教材的广大师生和读者提出批评和宝贵意见。

编者2012年10月目录实验一LabVIEW工作环境的熟悉 (1)实验二结构的使用 (6)实验三数组、簇和图形显示 (12)实验四字符串和文件存取 (17)实验五信号产生器设计实验 (21)实验六频谱分析仪设计实验 (26)实验七实际测控系统设计实验 (30)实验八FIR滤波器设计实验 (32)附录 (36)实验一LabVIEW工作环境的熟悉一、实验目的熟悉LabVIEW开发环境;了解LabVIEW的编程环境;掌握LabVIEW的基本操作方法,并编制简单程序。

学会使用子VI图标连接器的创建方法和子VI调用方法。

二、实验仪器1.计算机一台bVIEW8.20软件一套三、实验原理bVIEW功能简介虚拟仪器(VI:Virtual Instrument)是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统。

虚拟仪器是以特定的软件支持取代相应功能的电子线路,用计算机完成传统仪器硬件的一部分乃至全部功能,它是以具备控制、处理分析能力的软件为核心的软仪器。

使用者在操作这台计算机时,就象在操作一台他自己设计的仪器一样。

利用LabVIEW软件可以实现VI的设计。

bVIEW程序设计LabVIEW和其他Windows环境下的可视化开发环境一样,程序界面和代码是分离的。

前面板是图形用户界面,有两类控件:一类是输入控件,包括开关、旋钮、按钮和其他输入对象;一类是显示控件,包括图形、LED和其他显示对象。

程序框图是实现VI逻辑功能的图形化源代码,除了包括与前面板上控件对应的连线端子外,还有程序、子VI、常量、结构等,与标准仪器相比,前面板相当于仪器的面板,而程序框图相当于仪器内部的功能部件。

菜单栏与Windows程序中的菜单栏功能相似,不再赘述。

3.程序的调试方法在程序编写过程中,不可避免的存在错误,因此掌握必要的调试方法非常必要。

1)单步运行VI单步运行VI是在程序框图中按照程序节点的逻辑关系,沿连线逐个节点来执行程序。

单击单步执行按钮,按单步步入方式执行VI,单击一次执行一步,遇到循环结构,跳入循环内部继续单步执行。

2)设置断点使用工具选板中的断点工具,点击你希望设置或者清除断点的地方。

断点的显示对于节点或者图框表示为红框,对于连线表示为红点。

当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。

按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。

你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。

3)使用探针使用探针工具可以查看程序流经某一根连接线时的数据值。

从工具选板选择探针工具,再用鼠标左建点击你希望放置探针的连接线。

这时显示器上会出现一个探针显示窗口。

该窗口总是被显示在前面板窗口或流程图窗口的上面。

4)高亮显示程序运行在LabVIEW的工具条上有一个高亮执行按钮。

点击这个按钮使它变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。

这样,你就可以根据数据的流动状态跟踪程序的执行。

5)查找VI不可执行的原因如果一个VI程序存在语法错误,则在面板工具条上的运行按钮就会由变成一个折断状态,表示程序不能被执行。

如果点击此按钮,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,单击显示错误,则就会定位到程序框图相应出错处。

4.创建子VILabVIEW中的子VI(subVI)类似于文本编程语言中的函数。

如果在LabVIEW中不使用子VI,就好像在文本编辑语言中不使用函数一样,根本不可能构建大的程序。

尤其是在LabVIEW图形化编程环境中,图形连线会占据较大的屏幕空间,用户不可能把所有的程序都在同一个VI的程序框图中实现。

因此很多情况下,我们需要把程序分割成很多一个个小的模块来实现—这就是子VI。

其实任何VI本身就可以作为子VI被其他VI调用,只需要在普通VI的基础上多进行两步简单的操作而已:定义连接端子和图标。

四、实验步骤1.编写一个VI求三个数的平均值。

(1)要求对三个输入控件等间隔并右对齐,对应的程序框图控件对象也要求如此对齐。

(2)添加注释。

(3)分别用普通方式和高亮方式运行程序,体会数据流向。

(4)单步执行一遍。

(5)分别使用断点和探针,跟踪数据流,帮助调试程序。

2.创建一个VI程序模拟温度测量。

假设传感器输出电压与温度成正比。

例如,当温度为70°F时,传感器输出电压为0.7V。

本程序也可以用摄氏温度来代替华氏温度显示。

本程序用软件代替了DAQ数据采集卡。

在程序面板使用编程→数值→随机数(0到1)来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。

参考结果如下:3.创建一个VI程序,并将此程序保存为子VI。

此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。

参考结果如下:4.创建一个VI程序,进行温度测量,并把结果在波形图表上显示。

该VI程序使用前面实验步骤2中创建的温度计程序(温度计.vi)作为子程序。

利用LabVIEW的各种工具,可以实现在一个程序中调用另一个程序的功能,大大的提高了设计的灵活性和合理性。

参考结果如下:5.创建一个VI程序,并在编写程序过程中调用前面实验步骤3中创建的子VI。

此VI要实现的功能是:通过旋钮控件来控制输入的发动机转速值,中间调用实验步骤3中创建的子VI作为计算过程,从子VI输出的值分别输出至不同的数值显示发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产生蜂鸣声,报警提示。

参考结果如下:五、实验报告写出上述练习运行时的前后面板图形。

并完成下面内容:1.VI中的三个模块是什么?简述其各自功能。

2.简述VI程序有什么构成,其各部分的功能是什么?3.如何将一个VI程序创建为子VI程序,让其可以连接输入输出?4.总结通过本次实验对LabVIEW编程环境、LabVIEW的编程步骤及过程有什么了解和收获。

实验二结构的使用一、实验目的熟悉LabVIEW中While、For循环的使用,学会使用LabVIEW中的移位寄存器。

学会使用LabVIEW中的Case结构、顺序结构、公式节点。

二、实验仪器1.计算机一台bVIEW8.20软件一套三、实验原理结构是控制G程序数据流程的元素。

While循环结构控制程序反复执行框内程序,直到某个条件发生。

For循环结构控制框内程序段执行指定的次数,循环次数由连接到计数端口的值确定。

在循环边框可建立多个移位寄存器,使用移位寄存器可在循环体的循环之间传递数据。

While循环和For循环都可以使用移位寄存器。

Case结构是一种多分支程序控制结构,执行哪个分支由选择端子上的输入控制。

当一个布尔型或整型数据连到Case结构的选择端子上时,LabVEW自动决定选择端子的数据类型。

当在一个分支Case创建了输出通道,必须为每一个Case定义输出通道。

只有当所有分支都给通道提供输出数据时,通道将呈现出与提供数据类型一致的填充颜色并显示Run按钮。

在Sequence结构边界上可创建顺序局部变量(Sequence Locals),利用顺序局部变量可实现帧和帧间的数据传递。

顺序结构的输出通道仅能有一个数据源(顺序局部变量),数据源对所有后续帧都有效,但在前面帧中无效。

运用公式节点可以直接把许多公式写入到节点图框中,切记,每个式子必须以分号“;”结尾,而且公式中的变量区分大小写。

四、实验步骤1.使用While循环和图表。

目的:用While循环和图表获得数据,并实时显示。

创建一个可以产生并在图表中显示随机数的VI。

前面板有一个控制旋钮可在0到10秒之间调节循环时间,还有一个开关可以中止VI的运行。

学习怎样改变开关的动作属性,以便不用每次运行VI时都要打开开关。

参考结果如下:前面板¿ØÖÆ¿ª¸ØËæºúÐŹŠ4.06.0Ñ­º²ÑÓʱONOFF流程图附注与说明布尔开关的机械动作:布尔开关有6种机械动作属性可供选择。

在前面板上用鼠标右键单击开关,在快捷菜单中选择Mechanical Action 就可以看到这些可选的动作。

2. 使用移位寄存器。

目的:创建一个可以在图表中显示运行平均数的VI 。

参考结果如下:前面板ËæºúÊýBooleanON OFF流程图附注:移位寄存器的初值:上面的练习中对移位寄存器设置了初值0.5。

如果不设这个初值,默认的初值是0。

在这个例子中,一开始的计算结果是不对的,只有到循环完3次后移位寄存器中的过去值才填满,即第4次循环执行后可以得到正确的结果。

3.使用For循环。

目的:用For循环和移位寄存器计算一组随机数的最大值。

参考结果如下:4.使用Case结构。

目的:建立一个实现计算器功能的VI。

前面板设有数字控制器用来输入两个数字,数字指示器用来显示运算结果。

运算方式有加、减、乘、除。

用一个滚动条来规定运算方式。

参考结果如下:5.使用顺序结构。

目的:创建一个VI,计算生成等于某个给定值的随机数所需要的时间。

参考结果如下:·ø¶¨Êý¾Ýµ±Ç°ÖµÖ´Ð´ÎÊýÆ¥Åäʱ»ä£¨Ã룩6. 使用公式节点。

相关主题