您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页LV实验1

LV实验1

来源:化拓教育网
计算机虚拟仪器图形编程

LabVIEW实验教材

请记住,VI程序具有三个要素:前面板、框图程序和图标/连接器。

实验内容:本次实验共包括(一)、(二)、(三)、(四)四部分,各位同学可以根据自己的实际情况从(一)开始,基本要求是完成(一)、(二)、(三)的内容,完成 (四)部分有加分。

(一) 创建一个VI程序

目的:创建一个VI程序,以便以后作为子VI程序使用。

创建一个VI程序模拟温度测量。假设传感器输出电压与温度成正比。例如,当温度为70°F时,传感器输出电压为0.7V。本程序也可以用摄氏温度来代替华氏温度显示。

本程序用软件代替了DAQ数据采集卡。使用Demo Read Voltage子程序来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。

前面板:

1. 用File菜单的New选项打开一个新的前面板窗口。 2. 把温度计指示部件放入前面板窗口。

a. 在前面板窗口的空白处点击鼠标键,然后从弹出的Numeric子模板中

选择Thermometer。

b. 在高亮的文本框中输入“温度计”,再点击鼠标键按钮。 3. 在前面板窗口中放入竖直开关控制。

a. 在面板窗口的空白处点击鼠标键,然后弹出的Boolean子模板中选择

Vertical Switch,在文本框中输入“温度值单位”,再点击鼠标键或者工具栏中的V按钮。

b. 使用标签工具A,在开关的“条件真”(true)位置旁边输入自由标

签“摄氏”,再在“条件假”(false)位置旁边输入自由标签“华氏”。

框图程序:

1. 从Windows菜单下选择Show Block Diagram功能打开框图程序窗口。 2. 点击框图程序窗口的空白处,弹出功能模板,从弹出的菜单中选择所需的

对象。本程序用到下面的对象:

 Demo Read Voltage VI程序(在Select a VI子模板中打开

c:/programs Files/National Instruments/Labview 7.0/VI.lib/Tutorial子模板,选中Demo Voltage Read.vi)。在本例中,该程序模拟从DAQ卡的0通道读取电压值。  Multiply(乘法)功能(Numeric子模板)。在本例中,将读取电压

值乘以100.00,以获得华氏温度。

 Subtract(减法)功能(Numeric子模板)。在本例中,从华氏温度

中减去32.0,以转换成摄氏温度。

 Divide(除法)功能(Numeric子模板)。在本例中,把相减的结果

除以1.8以转换成摄氏温度。

 Select(选择)功能(Comparison子模板)。取决于温标选择开关的

值。该功能输出华氏温度(当选择开关为false)或者摄氏温度(选择开关为True)数值。

 数值常数。用连线工具,点击你希望连接一个数值常数的对象,并选

择Create Constant功能。若要修改常数值,用标签工具双点数值,再写入新的数值。

 字符串常量。用连线工具,点击你希望连接字符串常量的对象,再选

择Create Constant功能。要输入字符串,用标签工具双击字符串,再输入新的字符串。

3. 使用移位工具(Positioning tool),把图标移至图示的位置,再用连线

工具连接起来。 请记住,如果要显示图标接线端口,则点击图标,再从弹出菜单中选择Show Terminals功能。也可以从Help菜单中选择Show Help功能以打开帮助信息窗口。 Demo Voltage Read VI子程序模拟从数据采集卡的0通道读取电压,我们的程序再将读数乘以100.0转换成华氏温度读数,或者再把华氏温度转换成摄氏温度。

4. 选择前面板窗口,使之变成当前窗口,并运行VI程序。点击连续运行按

钮,便程序运行于连续运行模式。

5. 再点击连续运行按钮,关闭连续运行模式。 6. 创建图标Temp:

此图标可以将现程序作为子程序在其他程序中调用。创建方法如下: a. 在面板窗口的右上角的图标框中点击鼠标,从弹出菜单中选择Edit

Icon功能。

b. 双点选择工具,并按下Delete键,消除缺省的图标图案。 c. 用画图工具画出温度计的图标。 注意,在用鼠标画线时按下键,则可以画出水平或垂直方向的连线。 使用文本工具写入文字,双击文本工具把字体换成Small Font。

当图标创建完成后,点击OK以关闭图标编辑。生成的图标在面板窗口的

2/8

右上角。

7. 创建联接器端口:

a. 点击右上角的图标面板,从弹出菜单中选择Show Connector功能。

LabVIEW将会根据控制和显示的数量选择一种联接器端口模式。在本例中,只有两个端口,一个是竖直开关,另一个是温度指示。 b. 把联接器端口定义给开关和温度指示。 c. 使用连线工具,在左边的联接器端口框内按鼠标键,则端口将会变黑。

再点击开关控制件,一个闪烁的虚线框将包围住该开关。

d. 现在再点击右边的联接器端口框,使它变黑。再点击温度指示部件,

一个闪烁的虚线框将包围住温度指示部件,这即表示着右边的联接器端口对应温度指示部件的数据输入。 e. 如果再点击空白外,则虚线框将消失,而前面所选择的联接器端口将

变暗,表示你已经将对象部件定义到各个联接器端口。

注意:LabVIEW的惯例是前面板上控制的联接器端口放在图标的接线面板的左边,而显示的联接器端口放在图标的接线面板的右边。也就是说,图标的左边为输入端口而右边为输出端口。 8. 用文件菜单的SAVE功能保存上述文件,并将文件命名为Thermometer.Vi。 现在,该程序已经编制完成了。它可以在其他程序中作为子程序来调用,在其它程序的框图窗口里,该温度计程序用前面创建的图标来表示。联接器端口的输入端用于选择温度单位,输出端用于输出温度值。

9. 关闭该程序

(二) 把一个VI程序作为子VI程序调用

在任意一个VI程序的框图窗口里,都可以把其他的VI程序作为子程序调用,只要被调用VI程序定义了图标和联接器端口即可。用户使用功能模板的Select a VI来完成。当使用该功能时,将弹出一个对话框,用户可以输入文件名。一个子VI程序,相当于普通程序的子程序。节点相当于子程序调用。子程序节点并不是子程序本身,就象一般程序的子程序调用语句并不是子程序本身一样。如果在一个框图程序中,有几个相同的子程序节点,它就象多次调用相同的子程序。请注意,该子程序的拷贝并不会在内存中存储多次。

目的:使用一个条件循环结构和一个被测波形图表实时地采集数据。

创建一个VI程序,进行温度测量,并把结果在波形图表上显示。该VI程序使用我们前面创建的温度计程序(Thermometer VI)作为子程序。

前面板:

3/8

1. 打开一个新的前面板窗口,在里面放一个开关(在Boolean逻辑部件子

模板),给该开关标注为“Enable”。你可以用该开关来开始/停止数据采集。

2. 在前面板内再放置一个趋势图(Graph子模板中的Waveform Chart),标

注为“温度历史趋势”。该图表将实时地显示温度值。

3. 由于趋势图将它的图标注解plot自动地标注为“plot 0”,你可以用标

注工具将其重新标注为“Temp”。

4. 因为趋势图用于显示室内温度,需要对它的标尺进行重新定标。将Y轴的

“10”改为“90”,而将“0.0”改为“20”。 5. 此时暂时不要创建模式转换开关,我们将尝试从框图程序窗口创建前面板

的部件。

框图程序:

1. 打开框图程序窗口。

2. 从结构(Structures)工具模板选择条件循环结构“While Loop”放入

框图程序窗口,调整该条件循环框的大小,把先前从前面板创建的两个节点放入循环框内。

条件循环结构是一种无限循环结构,只要条件满足,它就一直循环运行下去。在本例中,只要允许开关(Enable Switch)是ON状态,该VI程序就一直运行,采集温度测量值,并在图表上显示。 3. 放入其它的框图程序对象。Thermometer VI,这个VI程序是你在上个练习中创建的,从你保存的位置中调出(通过Select a VI…子模板调用)。 4. 按照上图的框图程序连好线。

5. 创建模式开关。把连线工具放在Thermometer VI的Mode输入端口上,

按鼠标右键并选择Creat Control,这样就可以自动创建模式转换开关,并将它与Thermometer VI子程序相连线,再转换到前面板窗口,将模式转换开关的位置重新调整。

6. 在前面板窗口,使用标注工具,双击模式开关的“OFF”标签,并把它转

换成“华氏”,再把“ON”标签转换民“摄氏”。要转换开关状态,使用操作工具(Operating Tool)。

7. 将模式开关设置为ON状态,运行该VI程序。

8. 要停止数据采集,点击Enable开关,使其状态变为OFF,循环结束。

4/8

9. 修改Enable开关缺省设置,使你运行VI程序时不必每次打开该开关。

a. 若程序在运行状态,则关闭程序运行。 b. 把开关设置为ON状态。

c. 点击开关,从弹出菜单中选择Data Operations>Make Current Value

Default选项,这将使ON状态变为缺省值。

d. 再点击开关,从弹出菜单中选择Mechanical Action>Latch When

Pressed选项。

10. 运行该程序,把开关点击为Stop状态以停止数据采集。开关将变为OFF

状态,但当条件循环结构再次读取其数值时,它又会变成ON状态。 增加定时器控制: 当运行程序时,它将会尽可能快地运行。但是你也许希望以一定的时间间隔,例如一秒钟一次或者一分钟一次来采集数据。

你可以用Wait Until Next ms Multiple功能(在Time & Dialog子模板)来满足上述条件。该功能模块可以保证循环间隔时间不少于指定的毫

秒数。

11. 如右图所示,使VI程序采样间隔为500毫秒。 使用Time & Dialog子模板中的Wait Until Next ms Multiple功能,再加上时间常数Numeric Constant,把它设置为500。

12. 运行上述程序,试用不同的时间间隔值。

13. 关闭并保存上述程序,文件名为Temperature Monitor.vi。

(三)以图表方式显示数据并使用分析功能子程序

目的:以图表方式显示数据并使用分析功能子程序。

利用练习(二)创建的VI程序,在数据采集过程中,实时地显示数据。当采集过程结束后,在图表上画出数据波形,并算出最大值、最小值和平均值。该练习只使用华氏温度单位。

1. 打开练习(二)创建的Temperature monitor.vi程序。 2. 按照下图修改程序,其中被虚线框住的部分是新增加的。

趋势图“温度历史趋势”显示实时采集的数据。采集过程结束后,在Temp Graph中画出数据曲线,同时在Mean(Analyze子模板中Mathematics子模板中probability and statisties子模板中的Mean.vi)、Max和Min(Array子模板中array max&min)数字显示栏中显示出温度的平均值、最大值和最小值。

本题中只使用华氏温度单位。

5/8

前面板:

框图程序:

1. 完成上面的框图程序。被虚线框住的部分表示新增程序。条件循环框边线

上的方块叫作通道(tunnel)。在本例中,通道是条件循环的数据通道口。若要建立数据索引,点击通道,并选择Enable Indexing选项,表示当条件循环执行时,把数据顺序放入一个数组中。循环结束后,通道输出该数组。否则,通道仅输出最后一次循环放入的数据值。 2. 返回前面板,并运行VI程序。 3. 当允许运行开关(Enable Switch)设置为OFF后,将显示温度数据曲线。

6/8

4. 面修改后的程序重命名为Temperature Analysis.vi并存盘。

(四) 使用Case结构

目的:学习使用Case结构。

修改Temperature Analysis.VI程序以检测温度是否超出范围,当温度超出上限(High Limit)时,前面板上的LED将点亮,并且有一个蜂鸣器发声。

前面板:

1. 打开练习(三)创建的Temperature Analysis VI程序。

2. 按照下图所示修改前面板。被虚线框住的部分表示增加的部件。High

Limit表示温度上限值。报警指示灯(WARNING LED)和当前温度状态(CurrentTemperature State)用来表示温度是否超限。点击趋势图,并且选择Show>Legend和Show>Dighital Display选项,可以增加图注(Legend)和数字显示。

7/8

框图程序:

1. 按照上图编写框图程序。被虚线框住的部分为新增加的部件。下面的

FALSE Case与图中的TRUE Case同属于一个Case结构。根据其输入端上的数值,来决定执行哪一个Case程序。

如果Thermometer Vi子程序返回的温度值大于High Limit数值,将执行True Case程序,反之则执行False Case程序。 本程序用到下面的对象:

 Bundle功能(Cluster子模板)。

 Build Cluster Array功能(Cluster子模板)。  Case结构(Structures子模板)。  字符串常量(String子模板)。

 Beep.vi(Graphics & Sound子模板中Sound子模板中)。

2. 返回前面板程序,在High Limit控制栏中输入86。再运行VI程序。当

温度超过86时,LED将点亮,蜂鸣器也会发声。

3. 将程序重新命名为Temperature Control.vi,并保存起来。

8/8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务