基于LabVIEW的虚拟万用表设计毕业作品.docx
《基于LabVIEW的虚拟万用表设计毕业作品.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的虚拟万用表设计毕业作品.docx(43页珍藏版)》请在冰豆网上搜索。
基于LabVIEW的虚拟万用表设计毕业作品
毕-设
业-计
(二零届)
基于LabVIEW的虚拟万用表设计
所在学院
专业班级测控技术与仪器
学生姓名学号
指导教师职称
完成日期年月
摘要
随着虚拟仪器技术的广泛应用与计算机软硬件的迅速升级发展,测量仪器日益向多功能、高精度、集成化的方向发展。
数字万用表作为一种常用的测试工具,具有准确度与分辨力高、过载能力强、抗干扰性能好、体积小、重量轻等优点。
但是,由于数字万用表是通过断续的方式进行测量与显示的,因此不便于观察被测量的连续变化过程及其变化趋势,测量数据也无法保存与导出,使用具有一定的局限性。
本设计利用虚拟仪器技术、以美国NI公司的LabVIEW为软件开发平台,设计一款“虚拟数字万用表”,既可以实现“真实”数字万用表中的交直流电压与电流测量、电阻测量、二极管检测的功能,又具有编程灵活、使用方便、成本低廉的优点。
实验证明,本设计使用简便、灵活,人机界面友好,实现了所要求的检测功能。
关键词:
虚拟仪器,LabVIEW,虚拟万用表
DesignofaVirtualMultimeterBasedonLabVIEW
Abstract
Alongwiththewideapplicationofvirtualinstrumenttechnologiesandquickdevelopmentofcomputersoftwareandhardware,measuringinstrumentsaredevelopinginatrendwithmorefunctions,higherprecisionandintegrationdegree.
Digitalmultimeterisakindofcommontestingtools,whichhasadvantagessuchashighaccuracyandresolution,bigoverloadcapacity,goodanti-interferenceperformance,smallvolumeandlightweight.However,becausedigitalmultimeterworksinadiscontinuousway,itisnotsoconvenienttoobserveacontinuousmeasurandanditschangingtrend.Also,itisimpossibletosaveandexportthemeasuringresult.Therearesomelimitationsintheapplicationofdigitalmultimeter.
Thisdesign,a‘virtualdigitalmultimeter’,utilizesLabVIEWsoftwareasthedevelopmentplatform.The‘virtual’digitalmultimeterhasthealmostsamefunctionswiththe‘real’one,suchasDC/ACvoltageandcurrentmeasurement,resistancemeasurementanddiodejudgment.Atthesametime,the‘virtual’onehasitsownadvantagessuchasprogrammingflexibility,easytouseandlowcost.Experimentresultsshowthatthisdesignissimple,flexibleandwithfriendlyman-machineinterface,alltherequiredfunctionsarerealized.
.
Keywords:
VirtualInstrument,LabVIEW,VirtualMultimeter
1绪论
1.1课题的来源
实验操作在整个学习过程中有着不可或缺的重要地位。
它能提高学生的动手能力,也能培养学生的创造能力和综合素质。
此外,许多学科都以实验为基础,一旦缺少了实验,所谓的教学和科研都将失去其意义。
学生只有通过足够的实验才能更加深入地理解和掌握所学的理论知识和应用技术,也只有通过实验,才能将理论更好地与实践结合起来。
数字万用表因其具有准确度与分辨力较高、过载能力强、抗干扰性能好、功能多、体积小、重量轻、还能从根本上消除读取数据时的视差等优点而被广泛使用。
但是,由于数字万用表是通过断续的方式进行测量显示的,因此不便于观察被测电量的连续变化过程及其变化的趋势。
此外,伴随着技术的发展、仪器设备的老化,实验设备也必须进行相应的更新;否则,仪器设备的准确度、分辨力等各项指标都趋于不精确,对实验的结果有着巨大的影响,甚至与原来的已知结果背道而驰,从而对调动学生的学习积极性、培养创新精神、加强实践动手能力都十分不利。
而实验设备更新所需要的资金,比如一台美国福禄克F1508数字万用表报价2600元,一台Agilent34410A报价近万元,对于各高等院校来说,也是一笔不小的负担。
为解决这一矛盾,以较少的资金获得不断更高的性能,引入“虚拟仪器”这一概念是十分必要的。
本设计基于LabVIEW实现数字万用表的常用功能,包括交直流电压、电流测量,电阻测量和二极管特性测量。
1.2课题的意义
虚拟仪器技术是一门较为新颖的技术,其思想是尽可能的利用价格较为低廉的通用I/O模块来获取信号,而较为复杂的信号处理和分析任务则依靠PC来加以实现。
这样,当仪器升级换代时,仅需更新其通用I/O部分,而软件升级基本无需太多的费用,仪器整体升级换代的价格得以大幅压缩。
同时,功能强大的PC在保证仪器功能实现的同时,还具有比传统仪器更加人性化的人-机界面和更加强大的数据储存和处理能力[1]。
因此,与传统仪器相比,虚拟仪器具有以下优点[2]:
(1)虚拟仪器具有友好、灵活的人机界面,传统仪器的界面较呆板。
(2)虚拟仪器的功能是由用户根据实际需要通过软件来定义的,而不是事先有仪器厂商定义的。
(3)虚拟仪器的性价比较高。
(4)虚拟仪器的软件和硬件具有开放性、模块化、互换性以及可重复使用等特点。
例如,为了提高仪器的性能,可加入一个通用的仪器模块,或者更换一个仪器模块,而不必重新购买整个仪器。
(5)由于虚拟仪器技术是建立在计算机技术和数据采集技术基础上的,因而技术更新较快、成本较低、测试自动化程度较高,而且可与网络及其他设备互联。
(6)在通用硬件平台搭建后,由软件来实现仪器的具体功能,即软件在虚拟仪器中具有重要的作用。
(7)虚拟仪器研制的周期较传统仪器大为缩短。
由此可看出,虚拟仪器是当代电子测量仪器的发展趋势之一。
本设计为“虚拟万用表”,综合利用了虚拟仪器技术、计算机软件技术和数字集成电路技术,具有较高的技术含量和实用性。
1.3虚拟仪器国内外发展现状及其发展方向
1.3.1国外的研究现状
在国外,美国NI公司研制的LabVIEW是至今最早也是最具影响力的图形化开发平台,即使现在世界各国的许多大型自动检测和仪器的公司也相继研制出各种不同的虚拟仪器开发平台,也无法超越NI公司提出的虚拟仪器技术在自动检测领域的地位。
因此,美国既是虚拟仪器的诞生地,也是目前最大的虚拟仪器制造国[2]。
例如,在美国LawrenceLivermore国家实验室,一个花费2000万美金的极为复杂的飞秒激光切割系统就是基于LabVIEW开发的。
而且,虚拟仪器系统及其图形编程语言已经成为美国各大理工科学生的一门必修课[4]。
1.3.2国内的研究现状
国内虚拟仪器最早的研究是从引进消化NI的产品开始的。
国家自然科学基金委员会也曾将虚拟仪器研究作为现代机械工程科学前沿学科之一,列入过“十五”期间优先资助领域。
目前有些研究已取得可喜成绩,如由重庆大学测试中心秦树人教授研发的VMIDS(VirtualMeasurementInstrumentDevelopmentSystem)系统。
从底层技术进行开发,与LabVIEW编程系统是两种不同的技术路线,不仅拥有完全自主的知识产权,而且用户即使不会任何编程,也可从VMIDS系统的功能软件库里挑选出各种功能部件和功能按钮组装出自己需要的虚拟仪器。
目前,该系统已在工业、科研、教学等行业近百家单位推广应用,创直接与间接经济效益近7000万元。
这项成果表明我国在虚拟式仪器方面走出了一条与欧美技术线路完全不同的自主创新路子,并成为国际上虚拟仪器研发的先行者[5]。
在我国有许多高校,如复旦大学、清华大学、国防科技大学、上海交通大学、哈尔滨工业大学等数十所高校已展开了虚拟仪器技术领域的研究、开发和教学工作[6]。
虽然远不及国外那么高的普及,但通过2006年NI公司的中国高校推广计划的实施,标志着虚拟仪器技术在我国也进入了一个全新的快速发展时期。
1.3.3虚拟仪器的发展方向
随着计算机技术、仪器技术和网络通信技术的不断完善,虚拟仪器将向以下三个方向发展[7]:
1、外挂式虚拟仪器
PC-DAQ系统是最基本的虚拟仪器硬件系统,性价比比较高,但是受PC机箱和总线的限制,电源功率有可能不足,机箱内部的噪声电平较高,插槽数目有限、尺寸较小,机箱内无屏蔽等缺点对使用来说存在隐患,因此,今后虚拟仪器测试系统的主流将是以USB接口方式的外挂式虚拟仪器系统。
2、PXI型虚拟仪器
PXI总线在PCI总线内核技术的基础上增加了成熟的技术规范和要求,具有良好的兼容性、高度的可扩展性(有8个扩展槽,一般的台式PCI只有3~4个扩展槽)、极高的传输速率(传输速率可达到132Mb/s),以及比VXI更高的性价比,因此,基于PXI总线的虚拟仪器硬件将会被广泛的应用。
3、网络化虚拟仪器
和以PC为核心的虚拟仪器相比,网络化虚拟仪器将把单台虚拟仪器实现的三大功能(数据采集、数据分析及图形化显示)分开处理,分别使用独立的基本硬件模块实现传统仪器的三大功能,以网线相连接,实现信息资源的共享[8]。
而NI等公司已开发的通过Web浏览器观测嵌入式仪器设备的产品,使人们可以通过Internet操作仪器设备,将分散在不同地理位置不同功能的测试设备联系在一起,完成测试任务。
由此可见,网络化虚拟仪器将具有广泛的应用前景。
1.4课题研究的主要内容
本设计利用虚拟仪器技术、以美国NI公司的LabVIEW为软件开发平台,设计出一款“虚拟数字万用表”,既可以实现“真实”数字万用表中的交直流电压与电流测量、电阻测量、二极管检测的功能,又具有编程灵活、使用方便、成本低廉的优点。
2虚拟万用表的软、硬件介绍
2.1软件介绍
虚拟仪器系统中,常用的仪器用开发软件有LabVIEW、LabWindows/CVI、VEE等等,其中以LabVIEW应用最为广泛。
2.1.1概述
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器工程平台)是由美国NI公司研制开发的,类似于C和BASIC的一种程序开发环境,但是LabVIEW与其他计算机语言的显著区别是:
LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式,而其他计算机语言都是采用基于文本的语言产生代码[9]。
LabVIEW把复杂、繁琐的语言编程简化为用菜单或图标提示的方法进行图形功能的选择,然后用线条把功能图连接起来即可完成编程工作。
用户利用LabVIEW编程则像在“绘制”程序流程图,非常方便。
2.1.2LabVIEW的优势
LabVIEW的具体优势主要表现在以下几个方面[10]:
(1)丰富的图形控件和图形化的编程方法,设计师不需要写任何文本格式的代码就能轻松搞定编程。
(2)600多个分析函数使数据分析和信号处理更加方便。
(3)内建的编译器使用户在编译程序的过程中一旦有语法错误,就会被立即显示出来。
(4)提供了大量与外部代码或软件进行的机制,可以轻松实现LabVIEW与其他编程语言混合编程。
例如DLL、CIN节点、ActiveX、.NET或MATLAB脚本节点等技术。
(5)由于采用图形化的编程方式,它实现了自动的多线路,从而能充分利用处理器尤其是多处理器的处理能力。
(6)提供了大量的驱动与专用工具便于和任何接口的硬件轻松链接。
(7)通过应用程序生成器可以轻松地发布EXE、动态链接或安装包。
(8)NI提供的丰富的附加模块可以用于扩展在不同领域中的应用,例如数据记录与监控(DSC)模块、实时模块、FPGA模块、PDA模块、机器视觉模块与触摸屏模块等。
而使用LabVIEW开发应用系统的速度比使用其他编程语言快4~10倍,也是本次设计选择其作为开发测试和测量的应用软件的一大决定性因素。
其速度如此之快的原因主要是LabVIEW易用易学,它提供的工具使创建测试和测量应用变得更为轻松。
2.1.3LabVIEW的构成
(1)前面板介绍
前面板由输入控件和显示控件组成。
它是一个前面板是图形用户界面,相当于标准仪器的面板。
而输入控件模拟仪器的输入装置,为VI的程序框图提供数据[11]。
显示控件则模拟仪器的输出装置,用以显示程序框图获取或生成的数据。
其开发窗口如图2-1所示。
图2-1前面板的开发窗口
(2)程序框图介绍
程序框图是实现VI逻辑功能的图形化源代码,相当于标准仪器箱内的功能部件。
具体的编程就是从前面板上的输入控件获取输入的信息,经过计算和处理之后,在输出控件中显示。
图2-2所示为流程图编辑窗口。
图2-2程序框图编辑窗口
(3)工具选板简介
该选板在前面板和程序框图中均可使用,不同的工具可以操作、编辑或修饰选定的对象,还可以用来调试VI程序等。
工具选板如图2-3所示。
如果该选板没有出现,则可以在查看菜单下选择工具选板命令以显示该选板。
图2-3工具选板
(4)控件选板简介
该选板只能在前面板中使用。
主要用来添加各种输入输出控件。
在控件选板中,各种控制量和显示量,按照所属类别,被安排在不同的子选板中,如下图2-4所示。
图2-4控件选板
(5)函数选板简介
函数选板只能在程序框图中使用,工作方式大体与控件选板相同。
函数选板包含创建程序框图所需的VI和函数。
而这些VI和函数按照各自的类型被归入不同的子选板中,如下图2-5所示。
图2-5函数选板
2.1.4LabVIEW的设计方法
(1)确定方案:
根据设计要求先构思好整体的设计方案,以便能有个清晰的思路进行下面的设计。
(2)创建前面板:
根据确定的设计方案,从控件选板上选择所需的输入输出控件,并在虚拟仪器的前面板上创建。
(3)构建程序框图:
根据确定的设计方案,从函数选板上选择对象,并用线将它们连接起来以便数据进行传递。
最后得到最后的程序框图。
(4)前面板装饰:
对前面板进行再次精加工,使其更美观,更接近传统仪器的显示界面。
(5)系统调试:
系统调试主要包括硬件和软件调试两方面。
首先用仿真方式或利用模拟现场信号的方式进行调试,然后再利用真实的信号进行调试。
(6)运行程序进行测量:
运行VI,进行信号的采集与处理,最后在前面板上显示测量结果。
2.2硬件介绍
本设计所用的数据采集硬件为NIELVISII+,即NI教学实验室虚拟仪器套件。
NIELVISII+是一个动手设计与原型设计的平台,它集成了最常用的12个仪器——包括波特图分析仪、数字万用表、示波器、函数发生器等等,将它们集成在适合于硬件实验室或课堂的使用中[12]。
其外观如图2-6所示。
图2-6NIELVISII+外观
NIELVISII+的规格参数如下[13]:
1.模拟输入
通道数:
8通道差分或16通道单端
ADC分辨率:
16位
最大采样速率:
1.25MS/s单通道
输入范围:
±10,±5,±2,±1,±0.5,±0.2和±0.1V
用于模拟输入的最大工作电压(信号+共模):
±11V对AIGND
2.任意波形发生器/模拟输出
通道数:
2
数模转换器分辨率:
16位
最大更新速率:
1通道:
2.8MS/s
2通道:
2.0MS/s
定时分辨率:
50ns
输出范围:
±10V,±5V
电压转换速率:
20V/μs
NIELVISII+上带一块面包板,可以用于建立电子电路,并提供应用程序与信号间的必要连接。
实验板如图2-7所示。
图2-7NIELVIS面板
3虚拟万用表的设计
将数据采集卡和LabVIEW软件相结合是设计万用表的主要思路。
首先利用数据采集卡NIELVISII+,结合DAQ助手,获取实际测量信号,利用LabVIEW前面板做一个显示界面,将获取的信号显示出来。
3.1虚拟万用表的功能要求
(1)具有电源开关:
电源打开时,万用表工作;电源关闭时,万用表不工作[14]。
(2)具有数值显示屏:
显示数字电压表测量的数据。
(3)具有直流电压、交流电压、直流电流、交流电流、电阻和二极管测试的基本功能。
(4)具有档位选择旋钮:
二极管档、交直流电流档、电阻档、交直流电压档。
(5)具有提示功能:
电源开关关闭时,提示电源关;数值超出档位值时,给出超出量程提示。
(6)具备良好的人机对话能力,能够显示出仪器的运行状况、工作状态等信息。
3.2虚拟万用表的软件设计
考虑到虚拟万用表系统的复杂性,同时为了适应今后的功能及结构上的扩展,通过采用流程图设计,可以将虚拟万用表系统分解为多个层次的模块进行设计,以降低系统设计的复杂度。
虚拟万用表系统的流程如图3-1所示。
图3-1程序流程图
3.2.1采集设置
(1)利用DAQ助手采集数据[15][16]。
在程序框图中通过“测量I/O”|“DAQmx-数据采集”|“DAQ助手”添加一个DAQ助手,以建立模拟输入通道。
选择采集信号:
模拟输入>>电压作为测量参数。
选择Devl>>ai0作为物理通道。
具体通道设置如图3-2所示。
其DAQ助手的设置如图3-3所示。
图3-2模拟输入通道设置
图3-3DAQ助手设置
(2)在测量交流时,还应再建立一个模拟输出通道。
选择生成信号:
模拟输出>>电压;选择Dev1>>ao0作为物理通道,具体设置如图3-4所示。
如图3-5设置模拟输出的生成模式。
为了达到交流效果,还应添加一个正弦的仿真信号。
LabVIEW的仿真信号控件如图3-6所示,具体设置如图3-7所示。
图3-4模拟输出通道设置
图3-5模拟输出的生成模式设置
图3-6仿真信号控件
图3-7仿真信号设置
3.2.2前面板设计
虚拟万用表的旋钮,是以现实中的万用表为模型,相对地进行修改后得到的。
下面将分步进行介绍。
(1)通过“控件”|“新式”|“数值”|“转盘”命令,在前面板上放置一个转盘控件。
对其选中后,通过边角处拖动,放大控件。
在右键菜单中选择“文本标签”命令,然后进行属性设置,其界面如图3-8所示。
把数据类型设置为“长整型”。
在“文本标签”选项卡下,双击“文本标签”栏的选项,写入旋钮对应的名称,再单击“插入”按钮,重复多次,写入每一个项的名称。
这些名称的先后顺序不能乱。
旋钮标签设置完以后前面板界面如图3-9所示。
图3-8旋钮标签设置
图3-9旋钮界面
(2)在前面板放一个字符串,用于显示测量结果。
结果只是一个数值,本可以用数值控件来加以显示。
但是为了在更加直观、完美地显示数值的同时,还能显示测量种类和单位等信息,因此选择了字符串控件。
前面板界面如图3-10所示。
图3-10结果显示屏
(3)放置一个数值输入控件,用于控制测量精度。
同时放置一个工作指示灯,用于指示仪器工作状态。
最后还要放置一个布尔控件,用于作为电源开关。
3.2.3程序框图
在程序面板中,先要放置一个条件结构,用于指示万用表对旋钮不同刻度执行不同动作。
条件结构通过“函数”|“编程”|“结构”|“条件结构”命令调用。
在条件结构上,右键单击下拉框,选择“在后面添加分支”命令,添加条件分支,如图3-11所示。
图3-11添加分支
(1)在条件结构中添加到11个分支,这样每一个分支都对应一个条件结构,执行不同的动作,并把旋钮和条件结构的“分支选择器”连接起来。
0~10分支与旋钮的文本标签值是对应的,如图3-12所示。
图3-12条件结构设置
(2)对每一个分支进行设置。
因为不同的分支执行不同动作,所以每一个分支的程序要根据情况来写。
分支0用于检测二极管。
当所测得的电阻值低于1000欧姆时,我们可以认为系统中电路接通,此时二极管红表笔接正极,显示屏显示“此时红表笔为接二极管正极”。
若测得的电阻值大于1000欧姆,则认为电路短路,此时二极管反接,显示屏显示"此时红表笔接为二极管负极"。
程序框图如图3-13所示。
图3-13二极管检测程序
分支1到2用于交流电流的检测,区别只是在于其量程不同。
测量中先对所测得的电流值的大小进行检测,判断测量值是否超过量程。
若没有超过量程,就读取测量精度,对测量值进行相应精度的转换。
然后将测量值转换为字符串,通过一个字符串连接控件,并添加上单位,再送到文本框显示。
若超过量程,则在文本框中显示"超出测量范围,请选择高档位",提示用户换用高档位。
为了模拟交流电流,程序中用DAQ助手输出了一个仿真的交流电流输入。
程序框图如图3-14所示。
图3-14交流电流测量程序
分支3到4用于测量直流电流,它的测量原理与交流电流检测原理相同。
首先判断测量值的大小,再进行相应精度的字符串转换显示。
实验时,因为可以直接使用NIELVISII+的5V/15V直流电进行测试,所以此处没有使用DAQ助手来产生直流输入。
整个程序框图如图3-15所示。
图3-15直流电流测量程序
分支5到6用于电阻测量。
这个测量范围很广泛,不过也是一个数值量的比较。
在测量范围内,万用表才会测量,如果超过范围,则显示“超出测量范围,请选择高档位”。
此外,对于小电阻测量(200欧姆档位),测量电阻使用的是四线法;而对于大电阻,测量电阻使用的是两线法。
程序框图如图3-16所示。
图3-16电阻测量程序
分支7到8用于直流电压测量,分支9到10用于交流电压测量。
测量原理和上述测量原理大致相同,只是单位和大小不同。
程序框图分别如图3-17和3-18所示。
图3-17直流电压测量程序
图3-18交流电压测量程序
(3)添加一个While循环让万用表能连续工作。
为了使程序能在打开开关后再进行测量的操作,又添加了一个条件结构。
当电源开关处于“关”的状态时,条件结构提示“请先打开电源开关”。
程序框图如图3-19所示。
图3-19电源开关设置
(4)在上面的基础上添加一个事件结构,使程序在不同条件下,进行不同的操作。
如图3-20所示。
图3-20电源打开后前面板显示设置
3.2.4整体程序
在程序编写完成后,还应该添加一个While循环让万用表能连续工作。
整个程序框图如图3-21所示。
图3-21完整程序
3.2.5前面板装饰
当程序