《计算机虚拟仪器技术》实验指导书.docx
《《计算机虚拟仪器技术》实验指导书.docx》由会员分享,可在线阅读,更多相关《《计算机虚拟仪器技术》实验指导书.docx(38页珍藏版)》请在冰豆网上搜索。
![《计算机虚拟仪器技术》实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-1/1/bfad5a69-4094-432a-b04b-86c40116930a/bfad5a69-4094-432a-b04b-86c40116930a1.gif)
《计算机虚拟仪器技术》实验指导书
《计算机虚拟仪器技术》实验指导书
机械与电气工程学院
舒华胡晓编
2010年秋季
2007级信息工程专业1班用
广州大学2010年
实验1熟悉LabVIEW编程环境
实验1-1
目的:
创建一个VI程序,完成两个数加、减、乘、除法的运算功能。
在数值输入控件中输入两个操作数A和B,运行程序计算出这两个数的加、减、乘、除法运算结果,并且显示到相应的数值显示控件中。
实验步骤:
前面板
1.打开LabVIEW,点击文件(F)菜单,再选择新建VI并确定,新建一空白VI。
2.在前面板上单击鼠标右键,从打开的控件选板中选择数值输入控件(并放置在前面板上。
3.鼠标左键双击该控件上方的标签
,待标签处于可改写状态时,将起改写为“A”。
4.重复上面2,3的步骤,建立另一个数值输入控件并改名为“B”。
5.建立4个数值显示控件,分别用来显示加、减、乘、除的运算结果。
该控件位置见下图:
6.将前面板上所有控件按图对齐排列,完成后的前面板如下图。
框图程序
1.从窗口菜单下选择显示程序框图功能打开程序框图窗口。
2.将图标按图示进行排列。
3.点击程序框图窗口的空白处,弹出函数选板,从弹出的菜单中选择所需的对象放置到框图中。
本程序用到下面的对象:
加运算节点、减运算节点、乘运算节点、除运算节点。
4.将所有对象用连线连接起来,完成后的程序框图如下。
运行、测试程序
1.选择前面板窗口,使之变成当前窗口。
在数值输入控件A和B中各输入一各数值,然后单击工具栏上运行按钮
运行VI程序,观察运算结果。
修改A和B的值,再次运行程序。
2.点击连续运行按钮
,便程序运行于连续运行模式。
此时修改A、B的值,则立即会运算出相应的结果。
3.再点击连续运行按钮,关闭连续运行模式。
4.文件命名为Computer.Vi并保存。
实验1-2
完成教材第一章例程:
生成和显示信号(P3~P10)。
最终完成的程序如图1-19所示。
文件命名为GenerateandDisplay.Vi并保存。
实验2控件与程序框图应用
实验2-1
目的:
掌握虚拟仪器前面板的设计。
通过此实验熟悉常用控件的取用,其简单设置以及界面的布局。
实验步骤:
前面板
5.最终完成的界面如上图。
从控件选板中找到各个控件,并放置到前面板上。
6.对各个控件外观、类型和行为进行设置,设置结果如图所示。
A)调节步长:
修改其刻度颜色、标度数值颜色;
B)设定高度:
显示数值显示框;
C)实际液位:
显示数值显示框;
D)压力:
增加指针,并修改刻度颜色,显示指针数值;
E)温度:
显示数值显示框;
F)液位超标:
为一方形指示灯控件。
当为True时,显示绿色;当为False时,显示红色;
7.将第一行5个控件顶端对齐,水平中心分布,并组合在一起。
8.将左下角3个控件左对齐,垂直中心分布,并组合在一起。
9.将这两组控件和图像显示件组合在一起并锁定。
10.文件命名为FrontPanel.Vi并保存。
实验2-2
目的:
编写程序,实现将一华氏温度(F)转换成摄氏温度(C)的功能。
已知摄氏温度与华氏温度的关系C=5(F-32)/9。
实验步骤:
前面板
1.程序界面如上图,放置一数值输入控件和一温度计显示件,然后再放置一个STOP按钮。
2.如图修改设置各控件的数值范围,并显示各控件的数值显示框。
框图程序
1.程序框图如上图。
注意将STOP按钮同While循环的控制端口相连接。
运行、测试程序
1.单击工具栏上运行按钮
运行VI程序,更改数值输入控件的值,观察程序运行的情况。
2.文件命名为F2C.Vi并保存。
实验3子VI程序设计
实验3-1
目的:
创建一个VI程序,以便以后作为子VI程序使用。
创建一个VI程序模拟温度测量。
假设传感器输出电压与温度成正比。
例如,当温度为70°F时,传感器输出电压为0.7V。
本程序也可以用摄氏温度来代替华氏温度显示。
本程序用软件代替了DAQ数据采集卡。
使用DemoReadVoltage子程序来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。
前面板:
1.用文件菜单的新建VI选项打开一个新的前面板窗口。
2.把温度计指示部件放入前面板窗口。
a.在前面板窗口的空白处点击鼠标键,然后从弹出的数值子模板中选择温度计。
b.在高亮的文本框中输入“温度计”,再点击鼠标键按钮。
3.在前面板窗口中放入开关控制。
a.在面板窗口的空白处点击鼠标键,然后弹出的布尔子模板中选择垂直滑动杆开关,在文本框中输入“温度值单位”。
b.使用标签工具,在开关的“条件真”(true)位置旁边输入自由标签“摄氏”,再在“条件假”(false)位置旁边输入自由标签“华氏”。
框图程序:
1.从窗口菜单下选择显示程序框图功能打开框图程序窗口。
2.点击框图程序窗口的空白处,弹出函数选板,从弹出的菜单中选择所需的对象。
本程序用到下面的对象:
DemoReadVoltageVI程序(教师提供):
在本例中,该程序模拟从DAQ卡的0通道读取电压值。
乘:
在本例中,将读取电压值乘以100.00,以获得华氏温度。
减:
在本例中,从华氏温度中减去32.0,以转换成摄氏温度。
除:
在本例中,把相减的结果除以1.8以转换成摄氏温度。
选择:
取决于温标选择开关的值。
该功能输出华氏温度(当选择开关为false)或者摄氏温度(选择开关为True)数值。
3.把图标移至图示的位置,再用连线工具连接起来。
DemoReadVoltageVI子程序模拟从数据采集卡的0通道读取电压,我们的程序再将读数乘以100.0转换成华氏温度读数,或者再把华氏温度转换成摄氏温度。
4.选择前面板窗口,使之变成当前窗口,并运行VI程序。
点击连续运行按钮
,便程序运行于连续运行模式。
5.再点击连续运行按钮,关闭连续运行模式。
6.创建图标Temp:
此图标可以将本程序作为子程序在其他程序中调用。
创建方法如下:
a.在面板窗口的右上角的图标框中点击鼠标,从弹出菜单中选择编辑图标…功能。
b.双点选择工具,并按下Delete键,消除缺省的图标图案。
c.用画图工具画出温度计的图标。
当图标创建完成后,点击OK以关闭图标编辑。
生成的图标在面板窗口的右上角。
7.创建连线板端口:
a.点击右上角的图标面板,从弹出菜单中选择显示连线板功能。
LabVIEW将会根据控制和显示的数量选择一种联接器端口模式。
在本例中,只有两个端口,一个是竖直开关,另一个是温度指示。
b.把连线板端口定义给开关和温度指示。
c.使用连线工具,在左边的连线板端口框内按鼠标键,则端口将会变黑。
再点击开关控制件,一个闪烁的虚线框将包围住该开关。
d.现在再点击右边的连线板端口框,使它变黑。
再点击温度指示部件,一个闪烁的虚线框将包围住温度指示部件,这即表示着右边的联接器端口对应温度指示部件的数据输入。
8.文件命名为Thermometer.Vi并保存。
实验3-2
目的:
使用一个条件循环结构和一个被测波形图表实时地采集数据。
创建一个VI程序,进行温度测量,并把结果在波形图表上显示。
该VI程序使用我们前面创建的温度计程序(Thermometer.VI)作为子程序。
前面板:
1.打开一个新的前面板窗口,放置一个开关,并给该开关标注为“Enable”。
该开关用来开始/停止数据采集。
2.在前面板内再放置一个波形图表(图形子模板中),标注为“温度历史趋势”。
该图表将实时地显示温度值。
3.由于波形图标的图标注解自动地标注为“曲线0”,用标注工具将其重新标注为“Temp”。
4.因为波形图标用于显示室内温度,需要对它的标尺进行重新定标。
将Y轴的最大值改为“90”,而将最小值改为“20”。
5.此时暂时不要创建模式转换开关,我们将从框图程序窗口创建前面板的部件。
框图程序:
1.打开框图程序窗口。
2.从结构工具模板选择条件循环结构“While循环”放入框图程序窗口,调整该条件循环框的大小,把先前从前面板创建的两个节点放入循环框内。
3.放入其它的框图程序对象。
ThermometerVI,这个VI程序是你在上个练习中创建的(从选择VI…子模板)。
4.按照上图的框图程序连好线。
5.创建“温度值单位”开关。
把连线工具放在ThermometerVI的“温度值单位”输入端口上,按鼠标右键并选择创建—>输入控件,这样就可以自动创建“温度值单位”转换开关,并将它与ThermometerVI子程序相连线,再转换到前面板窗口,将“温度值单位”开关的位置重新调整。
6.在前面板窗口,使用标注工具,为“温度值单位”创建“摄氏”、“华氏”标签。
7.运行程序。
要停止数据采集,点击Enable开关,使其状态变为OFF,循环结束。
8.修改Enable开关缺省设置,使你运行VI程序时不必每次打开该开关。
a.若程序在运行状态,则关闭程序运行。
b.把开关设置为ON状态。
c.点击开关,从弹出菜单中选择数据操作—>当前值设定为默认值选项,这将使ON状态变为缺省值。
d.再点击开关,从弹出菜单中选择机械动作—>单击时触发选项。
9.
运行该程序,观察Enabel开关的变化。
10.如图所示,使VI程序采样间隔为500毫秒。
使用定时子模板中的等待下一个整数倍毫秒函数,再加上时间常量,把它设置为500。
11.运行上述程序,试用不同的时间间隔值。
12.关闭并保存上述程序,文件名为TemperatureMonitor.vi
实验4程序结构
(1)
实验4-1
目的:
学习使用for循环结构。
使用3种编程算法,计算0到99之间所有偶数的和。
前面板:
1.放置三个数值显示件。
2.将三个数值显示件分别命名为计算方法1、2、3。
框图程序:
1.按图示分别完成三种算法的程序框图,掌握移位寄存器的使用,并注意编程同时分析比较三种算法。
2.计算方法3中使用了函数商与余数,其功能是求输入两数的余数,在此用作计算循环变量i与2的余数是否为0(即判断i是否为偶数)。
3.将程序命名为ForLoop.vi,并保存。
实验4-2
目的:
学习使用while循环结构。
用while循环,实现输入数N,计算N!
。
前面板:
1.如上图完成前面板并给控件命名。
框图程序:
1.按图示分别完成程序框图,掌握反馈节点的应用。
2.将程序命名为WhileLoop.vi,并保存。
实验4-3
目的:
以图表方式显示数据并使用分析功能子程序。
利用Thermometer.vi子程序,在数据采集过程中,实时地显示数据。
当采集过程结束后,在图表上画出数据波形,并算出最大值、最小值和平均值。
该练习只使用华氏温度单位。
前面板:
1.添加波形图表,命名为“实时曲线”;添加波形图,命名为“分析曲线”。
2.按照上图添加最大值、最小值、平均值三个数值显示件。
“实时曲线”显示实时采集的数据。
采集过程结束后,在“分析曲线”中画出数据曲线,同时在“最大值”、“最小值”和“平均值”数字显示件中显示出温度的最大值、最小值和平均值。
框图程序:
1.完成上面的框图程序。
其中使用While循环,且输出端口使用索引功能。
其中:
:
求数组最大、最小值。
:
求平均值。
2.程序命名为TemperatureAnalysis.vi并存盘。
实验5程序结构
(2)
实验5-1
目的:
学习使用Case结构。
建立程序以检测温度是否超出范围,当温度超出上限时或下限时,前面板上的报警LED将点亮,并显示当前的温度状态为“温度过高”或“温度过低”。
在范围内时温度状态为“温度正常”。
前面板:
1.使用波形图表显示实时温度和上、下限值。
并且如图进行配置。
2.添加两个数值输入控件,作为“温度上限”、“温度下限”的输入。
3.添加一个LED指示灯控件,作为报警指示。
报警时为红色,正常时为绿色。
4.添加字符串显示控件,命名为“当前温度状态”。
框图程序:
1.上图为不完整的程序框图,其中条件结构只给出了真分支。
请分析程序功能,完成未给出的程序实现功能。
主要实现温度值与上下限的比较,然后输出“温度过高”,“温度过低”,“温度正常”的状态文本,实现对“报警”指示灯的控制。
2.将程序重新命名为TemperatureControl.vi,并保存起来。
实验5-2
目的:
学习使用顺序结构。
用For循环产生一个长度为1000000(1百万)点的随机波形,并计算所用时间。
前面板:
1.使用波形图表控件显示随机数波形,并且如图进行配置。
2.添加一个数值显示件,命名为“用时”。
框图程序:
1.使用顺序结构实现,其中用
函数获得当前时间。
2.将程序命名为Sequence.vi,并保存起来。
实验6数据的图形显示
实验6-1
目的:
使用XY图显示图形。
功能描述:
使用XY图控件显示两个同心圆,圆半径分别为5和10。
前面板:
(1)前面板设计。
(2)自行设计后面板程序,实现上述功能。
(3)保存为UseXYGraph.vi。
实验6-2
目的:
学习波形图控件应用。
功能描述:
见教材P115页第6.2题。
以不同参数显示正弦和余弦曲线。
前面板:
框图程序:
(1)保存为UseWaveformGraph.vi。
实验6-3
目的:
学习使用公式节点及图形显示。
功能描述:
见教材P94页第5.5题。
输入m,b,输出结果数组,并以图形方式显示。
前面板:
框图程序:
1、保存为FormulaVI.vi。
实验6-4
目的:
制作一个虚拟正弦波仿真信号生成器。
功能描述:
该正弦波仿真信号发生器可产生正弦信号。
指标如下:
频率范围:
0Hz~100Hz,可选。
初始相位:
0°~180°,可选。
幅值:
0~5.0V,可选。
前面板:
框图程序:
(1)调整不同数值输入,观察波形变化。
文件保存为SinVI.vi。
实验7非连线的数据传递方式
实验7-1控制仿真
1.功能描述
简单模拟工业控制过程,以动画形式显示。
2.设计提示
(1)前面板设计。
枚举控件
前面板上放置枚举控件,在该控件中输入4个选择项:
准备、加水、加压和加热。
该控件实际用来控制4个条件的选择,进而控制3个指示灯和水罐、压力表和温度计的自动加1调整。
(2)后面板设计。
左侧的顺序结构用来进行初始化工作,将初值设置为0。
右边从条件子框图见以下4图。
(3)保存为Sim.vi。
实验7-2数制变换及计数仿真
1.功能描述
模拟十进制数到二进制数的转换过程,以LED来模拟各个二进制位,并能以动画方式模拟计数的过程。
选择手动方式时,将8个LED变成滑动条中数字的二进制(基数2)表示。
例如,如果滑动条设置为数字10(在二进制中表示为00001010=(23)+(21)),LED的1和3点亮,其他LED为熄灭。
选择自动方式时,滑动条自动进行加1操作,实现0到255的循环计数;同时8个LED会实时显示滑动条数值所对应二进制数值。
当滑动条大于255时,自动回0并重新由0开始计数。
2.设计提示
(1)前面板设计。
创建前面板,该前面板具有1个开关控件、1个水平滑动条控件和8个LED指示器。
显示滑动条的数字指示器,确保LED均匀分布并且排列在底部。
【提示】可利用对象的复制功能完成8个LED并利用对象的对齐功能将其摆放整齐。
将水平滑动条控件的数据精度设置为无符号单字节整型(U8)类型,且数值范围为[0,255]。
(2)后面板设计。
部分程序框图如下:
该框图只给出了“手动方式”时的程序框图,请补充完成最左边的条件结构,实现“自动方式”的自动计数功能。
(3)保存为LED.vi。
实验7-3全局变量编程
请完成教材P155页练习与思考8.2。
其中,全局变量VI保存为Global.vi;产生三角波并写全局变量的VI保存为Writer.vi;读取全局变量并显示的VI保存为Reader.vi。
实验8文件操作
实验8-1文本文件操作
1.功能描述
用正弦函数产生100个幅值数据,并写入文本文件“c:
\a.txt”。
要求数值间用两个空格分隔,且数据保留三位小数。
2.设计提示
(1)前面板设计。
(2)后面板设计。
两个空格
(3)运行程序,观察文本文件数据。
(4)保存为TxtFile.vi。
实验8-2电子表格文件操作
1.功能描述
用正弦函数产生100个幅值数据,并写入电子表格文件“c:
\a.xls”。
要求同时写入数据编号和数据。
2.设计提示
(1)前面板设计。
(2)后面板设计。
(3)运行程序,观察文件数据。
(4)保存为SpreadsheetFile.vi。
实验8-3仿真温度数据的记录
1.功能描述
创建一个VI,可以把温度数据以文本格式添加到某个文件中。
该VI使用For循环产生温度数据,并将它们存储到一个文件中。
在每个循环期间,都要把数据转换成字符串,添加一个逗号作为分隔符,并将字符串添加到文件中。
2.设计提示
(1)前面板设计。
包括一个数字式控制件和一个波形图。
“数据点个数”控制对象指定了需要采集和写入文件的温度数据的数量。
波形图表则用于显示温度曲线。
将波形图表的Y轴范围设置为70.0到90.0,X轴范围设置为0到20。
(2)后面板设计。
程序框图中使用了两个SubVI,说明如下:
DigitalThermometer(Functions->SelectaVI…->\LabVIEW\activity)——返回一个模拟温度测量值(仿真)。
FormatIntoString函数(Functions->String)——将温度数据转换成字符串,并且在数据后面增加一个逗号。
(3)在文件路径中输入一个合法文件路径,运行程序。
运行结束后,观察文件内写入的数据。
(4)保存为WriteFile.vi。
实验8-4仿真温度数据的读取
1.功能描述
创建一个VI,可以从上一个练习中创建的文件中读取数据,并把这些数据显示在一个波形图形中。
必须按照数据保存的格式来读取它,因为原来是用字符串数据类型,把数据保存为ASCII格式,那么就必须用一个文件I/O函数把数据作为字符串读出。
2.设计提示
(1)前面板设计。
前面板中包括一个字符串显示对象String和一个波形图WaveformGraph。
(2)后面板设计。
程序框图中使用了两个SubVI,说明如下:
ReadCharactersFromFileVI(Functions->FileI/O)——用于从文件中读取数据,以及输入字符串中的信息。
如果没有指定路径名称,将出现一个文件对话框提示您输入文件名。
ExtractNumbersVI(LabVIEW\Examples\General\strings.llb)——用于提取由逗号、分行符号、非数值字符等分隔开的数据组成的ASCII字符串,并将它们转换成数值数组。
(3)运行程序,选择由(8-3)生成的数据记录文件,观察读取文件的结果。
(4)保存为ReadFile.vi。
实验9网络通讯
实验9-1链接前面板
1.功能描述
编制两个VI,使用链接前面板的方法链接相关控件,实现网络数据的传输。
2.设计提示
(1)打开DataSocketServer。
(2)编写两个VI,并编辑其DataSocket连接属性。
分别保存为VI_1.vi、VI_2.vi。
VI_1.VI:
VI_2.VI:
(3)保存以上2个VI;同时运行两个VI,调整各控件,观察运行效果。
实验9-2DataSocket编程1
1.功能描述
编程仿真调幅波信号,并使用DataSocket实现数据的网络共享。
2.设计提示
(1)编制数据发送VI(保存为DSWriter1.vi)
该VI仿真一个调幅波信号,并发送到DataSocketServer。
调幅波由2个正弦波构成,一个是高频信号(载波),另一个是低频信号(调制信号)。
(2)编制数据接收VI(保存为DSReader1.vi)
(3)运行DataSocketServer,调整输入参数,观察波形变化。
实验9-3DataSocket编程2
1.功能描述
数据发送VI:
用波形产生函数
(LabVIEW目录中Activity目录中)产生数据,用WaveformChart显示,并将数据发布到DatasocketServer。
数据订户VI:
接收DatasocketServer的数据,显示波形。
2.设计提示
(1)数据发送VI(保存为DSWriter2.vi)
(2)数据订户VI(保存为DSReader2.vi)
(3)运行DataSocketServer,再运行两个程序,观察数据传递。