一 设计目的
1. 熟悉LabVIEW软件的编程环境;
2. 掌握修改控件属性的方法;
3. 掌握修改图标和连线器的方法;
4. 掌握将现有VI创建成子VI的方法;
5. 掌握子VI的设置方法,并熟悉子VI的调用。
二 设计要求
构建VI,实现以下功能:
在前面板上取2个浮点数作为输入(保留2位小数):x和y。
1. 计算(2x+3y)/(x-y),并在前面板上显示结果。
2. 如果x=y,前面板LED指示灯点亮,指示被0除。
3. 将VI命名为Calculate1.vi,并将其进行保存。
4. 将Calculate1.vi创建成一个子VI,并保存为Calculate2.vi,图标设为CAL2,添加至用户库的用户子VI中。
5. 构建一个VI,计算(4)中的Calculate2.vi运算结果与随机数(0与1之间)之积,并显示在前面板上,将该VI保存为Calculate3.vi。
三 详细步骤
⒈ 计算(2x+3y)/(x-y)的结果
设计要求:
①将x,y设置为保留2位小数的浮点数;
②将(2x+3y)/(x-y)的计算结果显示在前面板上;
③如果x=y,前面板LED指示灯点亮,指示被0除。并将该VI命名为Calculate1.vi,并将其进行保存。
⑴前面板
①启动LabVIEW8.5,选择文件中的新建VI选项,新建一个VI。
②创建值输入控件。在控件选板中选择“Express→数值输入控件→数值输入控件”,用鼠标单击后将其拖动到前面板中合适位置,松开鼠标按键。按相同的方法再创建一个数值输入控件。在高亮显示的标签中分别修改标签名为x,y。
③创建数值显示控件。在控件选板中选择“Express→数值显示控件→数值显示控件”,用鼠标单击后将其拖动到前面板中,松开鼠标按键。在高亮显示的标签中修改标签名为(2x+3y)/(x-y)。
④创建指示器。在控件选板中选择“Express→指示灯→圆形指示灯”,用鼠标单击后,将圆形指示灯拖动到前面板中合适位置,然后松开鼠标。在高亮显示的标签中修改指示灯的标签名为LED。
⑤设置数值显示格式。把鼠标移动到x数值输入控件上,单击鼠标右键,选择属性,打开数值的属性面板。点击属性面板的显示格式选项,设置数值为浮点,精度类型选择精度位数,位数选择2,不隐藏无效零,点击确定按钮。y数值输入控件和(2x+3y)/(x-y)数值显示控件按相同方法设置。完成前面板的创建,点击窗口中的保存按钮或从“文件”下拉菜单中选择“保存”选项,保存VI至特定路径,并将该VI命名为“Calculate1.vi”。Calculate1.vi的前面板如图1所示:
图1 Calculate1.vi前面板
⑵程序框图
①选择“窗口”下拉菜单中的“显示程序框图”选项或直接鼠标单击程序框图中的任何位置,切换至程序框图窗口。
②从函数选板中的“函数→编程→数值”子选板中,分别将×、+、﹣、÷拖入程序框图中的合适位置。
③从函数选板中的“函数→编程→比较”子选板中,将等号函数拖入至程序框图中。
④将鼠标箭头移至x输入控件的接线端子附近,鼠标将变成连线工具样式,此时单击鼠标左键并移动鼠标,发现从该接线端子处拉出一条虚线,将鼠标箭头移至乘法函数的输入端子处再单击鼠标左键,即完成连线。在乘法函数的另一个输入接线端子处单击鼠标右键,从弹出的快捷菜单中选择“创建→常量”则创建一个已与该端子连线的数值输入常量,默认值为0,当该值高亮显示时,输入希望的值,此处输入2。然后鼠标左键单击程序框图中的空白处,完成创建。
⑤按④相同方法完成另一个乘法函数的创建,按题目要求的值为相应函数创建相应的输入常量。再按④中所述方法完成加法函数、减法函数、除法函数各控件之间的连线。程序框图则创建成功。Calculate1.vi的程序框图如图2所示:
图2 Calculate1.vi程序框图
⑥点击窗口中的保存按钮或从“文件”下拉菜单中选择“保存”选项,保存该VI。
⑶运行
①直接单击前面板中的任何位置,切换至前面板窗口。
②点击运行按钮,运行VI程序。当x≠y时,LED灯灭,Calculate1.vi的运行如图3所示:
图3 x≠y时运行图
③当x=y时,前面板LED指示灯点亮,指示被0除。运行图如图4所示:
图4 x=y时运行图
⒉ 将Calculate1.vi创建成一个子VI,并保存为Calculate2.vi,图标设为CAL2,添加至用户库的用户子VI中。
⑴修改图标和连接器
①修改图标为CAL2。
②在Calculate1.vi前面板或程序框图窗口的右上角的图标框中单击鼠标右键,从弹出的快捷菜单中选择“编辑图标”选项,将打开一个图标编辑器对话框。
③选择对话框中的选择工具后,将编辑框中的缺省图标消除。然后用文本工具写出所需的图标CAL2。
④完成图标编辑后单击确定按钮,退出图标编辑器完成图标的编辑。此时在窗口右上角的图标框中的缺省图标就已替换为所画的图标。
⑤在窗口的图标框中单击鼠标右键,从弹出的快捷菜单中选择“显示连线板”选项。此时会弹出软件提供的36种连接器形式,选择某种形式后退出该界面,图标框中由显示图标变为显示连接器。如果在提供的连接器形式中没有想要的形式,则可以选择一个形式最相近的,然后在连接器窗口中选择相应的端口后,单击鼠标右键,从弹出的快捷菜单中选择“添加/删除接线端”来调整输入输出端口数量。此处的左侧接线端口有2个,右侧的接线端口为1个。
⑥使用连线工具,在左边的输入连接器端口框内单击鼠标左键,则该端口框变为黑色,然后,在数值输入控件上单击鼠标左键,会发现数值输入控件将被一个流动的虚线框包围,并且连线器相应端口中的黑色也变为橙色,这表示左边的连线器端口对应着前面板中的数值输入控件。在前面板中的空白处单击鼠标左键,数值输入控件的虚线框消失。当此VI作为子VI被其他VI调用时,相当于外部的数据输入到该数值输入控件中,在接线端口上对应于左侧的输入端口。
⑦按⑥中相同的方法,将左侧的另一个接线端口和右侧的接线端口分别与前面板中的控件对应连接。
⑧点击窗口中的保存按钮或从“文件”下拉菜单中选择“另存为”选项保存VI至特定的路径,并将该VI命名为“Calculate2.vi”。则将Calculate1.vi创建成一个名为Calculate2.vi的子VI过程结束。
⑵将Calculate2.vi添加至用户库的用户子VI中
①打开Calculate2.vi前面板中的“工具”下拉菜单下“高级”选项中的“编辑选板”,
单击“函数”面板中的“用户库”选项,进入用户库子选板。默认情况下,用户库子面板没有任何VI可以调用。
②在用户库子面板空白处单击鼠标右键,从快捷菜单中选择“插入→VI”选项,在弹出的对话框中选择Calculate2.vi,单击打开按钮。则此VI被添加进用户库,单击“保存改动”按钮,保存设置。
③完成后,函数面板用户库子面板就显示刚添加的子VI图标。在使用时可直接将该子VI拖入程序框图中。添加到用户库子面板中的Calculate2.vi子VI如图 5所示:
图5 添加到用户库中的Calculate2.vi子VI
④将Calculate2.vi添加至用户库的用户子VI中,操作完成,关闭程序
⒊ 构建一个VI,计算(4)中的Calculate2.vi运算结果与随机数(0与1之间)之积,并显示在前面板上,将该VI保存为Calculate3.vi。
⑴前面板
①启动LabVIEW8.5,选择文件中的新建VI选项,新建一个VI。
②创建数值输入控件。在控件选板中选择“Express→数值输入控件→数值输入控件”,用鼠标单击后将其拖动到前面板中合适位置,松开鼠标按键。按相同的方法在创建一个数字输入控件。在高亮显示的标签中分别修改标签名为x,y。
③创建数值显示控件。在控件选板中选择“Express→数值显示控件→数值显示控件”,用鼠标单击后将其拖动到前面板中,松开鼠标按键。在高亮显示的标签中修改标签名为结果。点击窗口中的保存按钮或从“文件”下拉菜单中选择“保存”选项保存VI至特定路径,并将该VI命名为“Calculate3.vi”。Calculate3.vi的前面板如图6所示:
图6 Calculate3.vi前面板
⑵程序框图
①切换至程序框图窗口。
②从函数选板中的“函数→编程→数值”子选板中将×函数和随机数(0∽1)拖入程序框图中的合适位置。
③从函数选板中的“函数→用户库”的子选板中,将上面添加的Calculate2.vi子VI拖入程序框图中。当鼠标在程序框图窗口的编辑区内移动时,会发现有一个随之移动的虚线框,这说明子VI已经加载。并且子VI的图标显示为前面所编辑的图标。由于上面创建的Calculate2.vi子VI的接线端口是3个:两个输入端口,一个输出端口。因此在当前的程序框图中可以看出,调用子VI后,子VI的输入输出端口与原来设定的一致。
④根据上面创建Calculate1.vi的连线方法,完成程序框图中各控件之间的连线。Calculate3.vi的程序框图如图7所示:
图7 Calculate3.vi程序框图
⑤子VI的设置。将鼠标移动到子VI CAL2图标上,点击鼠标右键,从弹出的快捷菜单中选择“设置子VI节点”,打开子VI节点设置面板,然后选择“调用时显示前面板”选项,然后点击确定按钮,完成子VI的设置。
⑥点击窗口中的保存按钮或从“文件”下拉菜单中选择“保存”选项保存VI。
⑶运行
点击连续运行按钮,使程序运行于连续运行模式。当运行到子VI时会弹出子VI的前面板。通过运行,可以看出在Calculate3.vi中修改x,y的值可以改变整个程序的运行结果,且调用Calculate2.vi子VI时,子VI中x,y的值随着Calculate3.vi的修改而修改,而修改子VI中x,y的值则不会改变运行结果。Calculate3.vi的运行如图8所示:
图8 Calculate3.vi运行图
四 设计总结
一周的LabVIEW虚拟仪器课程设计很快就结束了,我的收获很大,感触也很大。这次课程设计,主要运用数据运算操作、文件的保存、将现有VI创建成子VI和调用子VI等一系列方法来实现设计要求。在此次设计的过程中,让我对LabVIEW有了更深的了解。让我学到了很多知识。通过本次对LabVIEW的学习和运用,让我更加熟悉了LabVIEW软件的编程环境,知道了怎样去修改控件的属性,并且掌握了修改图标和连线器的方法。在子VI创建和调用的设计中,虽然遇到了这样或那样的问题,但通过老师的指导和同学的帮助,这些问题都得到了解决,不仅让我掌握了创建子VI的方法,而且更加熟练掌握了子VI的调用。
这次课程设计,让我发现了LabVIEW这个软件的实用性和重要性,同时,不仅提高了我的逻辑思维能力,也提高了我的动手能力,这次实践,让我掌握了更多知识。
五 参考文献
[1]王磊,陶梅.精通LabVIEW8.0[M].北京:电子工业出版社,2007.
[2]杨乐平,李海涛.LABVIEW程序设计与应用(第2版)[M].北京:电子工业出版社,2005.
[3]胡仁喜等.LabVIEW8.2.1虚拟仪器实例指导教程[M].北京:机械工业出版社,2008.
[4]杨乐平,李海涛,杨磊,安雪滢.LabVIEW高级程序设计[M].北京:清华大学出版社,2003.
[5]侯国屏,叶齐鑫.LabVIEW7.1编程与虚拟仪器设计[M].北京:清华大学出版社,2005.
[6]雷振山,赵晨光,魏丽,郭涛.LabVIEW8.2基础教程[M].北京:中国铁道出版社,2008.
[7]吴成东,孙秋野,盛科.LabVIEW虚拟仪器程序设计及应用[M].北京:人民邮电出版社,2008.
[8]蔡建安,陈洁华,张文艺.计算机仿真和可视化设计:基于Labview的工程软件应用[M].重庆:重庆大学出版社,2006.
第二篇:虚拟仪器课程设计任务20xx
08级《虚拟仪器》课程设计任务书
课程设计题目: 虚拟仪器 时间:9周——10周
一、设计题目及任务
学生可根据喜好和兴趣,从以下题目中选择一题或经老师同意的其它题目进行设计。
1.虚拟相位差计(1人)
? 设计一个双路正弦波发生器,其频率和相位差可调;
? 采用过零法、FFT频谱分析法和相关法设计一个相位计;
? 仿真分析不同方法的优缺点及各自实用条件;
? 分析信号幅值、噪声幅值、采样点数等值的变化对测量结果的影响。 分两种情况测量:
? 不经过数据采集的仿真;
? 经过数据采集;
2.虚拟频谱仪(1人)
? 设计一个信号发生器,分别产生正弦波、方波、三角波信号;
? 设计频谱分析仪,对正弦波、方波、三角波信号进行频谱分析; ? 产生叠加谐波,并分析叠加谐波的周期信号的频谱分析。
? 非周期信号的频谱分析。
分两种情况测量:
? 不经过数据采集的仿真;
? 经过数据采集;
3.虚拟扫频仪设计(1人)
要求能进行幅频、相频特性分析。信号可以模拟产生或通过硬件输入。
4.虚拟数据记录仪设计(1人)
? 可回放记录数据的图形,回放速度可调;
? 连续、定时采集和存储一个电压信号;
数据来源有两种:
? 经过DAQ数据采集卡;
? 经过串行口。
1
5.通用串口调试工具设计(1人)
按以下界面或自己设计一个通用串口调试工具。要求能设置COM口、波特率、数据位、校验位、停止位等。
6.交流信号的虚拟仪器测量(1人)
? 通过DAQ卡或虚拟信号发生器产生交流电压、电流信号;
? 测量交流电压、电流信号的有效值或幅值、频率、相位差等;
? 计算一个周期(或若干个整周期)的平均功率,即有功功率;
? 同时计算视在功率、无功功率、功率因数等;
? 首先,应当在环境下(不经过数据采集,使用仿真信号源)检查算法的效果。
7.网络化虚拟仪器设计(1人)
? 建立一个虚拟波形发生器或其它虚拟仪器面板;
? 采用B/S模式实现仪器的网络化控制。
? 采用C/S模式实现仪器的网络化控制,可采用DataSocket或TCP/IP方式;
8.基于声卡的虚拟仪器设计(1人)
? 可测试信号、频谱;
? 可回放记录数据的图形,回放速度可调;
? 产生多种信号,频率幅值可调。
9.通用虚拟滤波器设计。(1人)
? 建立一个虚拟波形发生器,要求信号频率连续可调;
? 设计通用滤波器,能进行高通、低通、带通及带阻滤波;
? 分析各种数字滤波器频率响应特性,及各种数字滤波器性能比较。
10.虚拟数字电压表设计。(1人)
? 实现电压数字显示,通道配置与选择;
2
? 实现交、直流选择,采样频率,采样点数设置;
? 直流档显示直流电压,交流档显示有效值,平均值和峰值;
? 应用DAQ卡获取电压信号,或产生模拟信号,分别进行交直流电压测量;
11.虚拟温度测控系统设计。(2人)
? 参考“温度流量控制实验平台”,根据温度控制原理进行系统设计; ? 应用DAQ卡获取温度信号;
? 设计温度控制算法,实现温度精确控制;
? 分析引起温度测量与控制误差的因素、及改进策略。
12.虚拟振动测试系统设计。(1人)
? 参考“CSY-XS传感器与检测技术实验仪用户手册”,根据振动测量原理进行
系统设计;
? 应用DAQ卡获取实验台振动信号;
? 设计振动分析仪,分析振动梁的幅频特性,获得振动加速度、速度和振幅; ? 测试振动梁的振动频率和固有频率。
13.虚拟电机转速测控系统设计。(1人)
? 根据电机转速控制原理进行系统设计;
? 应用DAQ卡获取电机转速信号;
? 设计电机转速控制算法,实现转速精确控制;
? 分析引起转速测量与控制误差的因素、及改进策略。
14.基于虚拟网路的液位测控系统设计。(2人)
? 应用CFP-2120获取水箱液位信号;
? 设计液位控制算法,实现液位精确控制;
? 实现液位的远程监控。
15.虚拟压力测控系统设计。(2人)
? 应用CFP-2120获取压力信号;
? 设计压力控制算法,实现压力精确控制;
? 分析引起压力测量与控制误差的因素、及改进策略。
16.虚拟流量测控系统设计。(2人)
? 应用CFP-2120获取流量信号;
? 设计流量控制算法,实现流量精确控制;
? 分析引起流量测量与控制误差的因素、及改进策略。
17.步进电机变频调速及角度和方向控制设计。(1人)
3
? 应用DAQ卡的DIO信号;
? 控制步进电动机变频调速和方向和角度。
18.直流电动机变频调速及方向控制设计。(1人)
? 应用DAQ卡的DIO及AO信号;
? 控制直流电动机变频调速和方向。
19.直流动机闭环调速控制设计。(1人)
? 应用DAQ卡的DIO及AO信号;
? 掌握PID控制规律及算法
? 控制直流电动机变频调速和方向。
20.应变测试系统设计。(1人)
? 参考“CSY-XS传感器与检测技术实验仪用户手册”,根据应变测量原理进行
系统设计;
? 应用DAQ卡获取应变测量信号;
? 对应变单臂、半桥、全桥特性进行实验研究,并进行分析比较;
? 实验研究温度对应变测量的影响,显示和分析实验结果。
21.差动变压器性能实验与位移测试。(1人)
? 参考“CSY-XS传感器与检测技术实验仪用户手册”,根据差动变压器原理进
行系统设计;
? 应用DAQ卡获取应变测量信号;
? 实验研究差动变压器特性、激励频率对其特性的影响,显示和分析实验结果;
? 对差动变压器的零点残余电压进行补偿,并进行位移测量,显示和分析实验结
果。
22.通用音乐播放器的虚拟仪器设计。(1人)
? 要求能播放多种格式的音乐文件;
? 具有选择播放文件的功能,声音大小可调;
? 能录音,并进行回复,任意设置播放位置;
? 能显示音乐强度。
23. 步进电动机角位移转为直线位移的位置测量与控制设计。(2人)
? 应用DAQ卡的DIO及AO信号;
? 根据位置反馈信号,来调节步进电动机的运行速度与方向,实现步进电动机的角位移转为直线位移的位置测量与控制。
24.. 直流电动机角位移转为直线位移的位置测量与控制设计。(2人)
4
? 应用DAQ卡的AI及AO信号;
? 根据位置反馈信号,来调节直流电动机的运行速度与方向,实现直流电动机的角位移转为直线位移的位置测量与控制。
25. 虚拟电子秤设计。(1人)
? 参考“CSY-XS传感器与检测技术实验仪用户手册”,设计基于应变直流全桥的
虚拟电子秤的系统电路;
? 利用DAQ MAX配置PCI-6024E卡;
? 完成电子秤虚拟仪器的标定程序、测量程序设计;
? 进行测量数据的低通滤波,应用编写的电子秤VI进行重量测量,记录数据并与
实际值进行比较。简要分析引起测量误差的原因;
? 模拟实际电子称称小于200g的重物,并输入品名及单价,在显示器上显示品名、
单价、重量及金额。
26.其它征得老师同意的自选方案。
二、设计要求
? 自觉遵守实验室各项规章制度;
? 认真完成所选题目的程序调试,编写设计说明书。
三、成绩评定
成绩评定由3部分组成:
1. 实验成绩:(占40%)
2. 课程设计:(占40%)
3. 考勤:(20%)
四、参考资料:
1. 黄松岭. 《虚拟仪器设计基础教程》, 清华大学出版社, 2008
2. 侯国屏. 《LabVIEW 7.1编程与虚拟仪器设计》, 清华大学出版社, 2005
3. 石博强. 《labview6.1编程技术实用教程》. 中国铁道出版社,2002
4. 杨乐平. 《labview高级程序设计》. 清华大学出版社,2003
5
五、时间安排
课程设计地点:民主楼136、135、132
6