本文从虚拟仪器的起源、发展入手,简单介绍虚拟仪器的功能,比较虚拟仪器与传统仪器的不同之后,全面的介绍了虚拟仪器设计技术,并用软件仿真的方法设计了一台虚拟仪器,实现了从数据采集到数据分析的全过程。
虚拟仪器的设计分成两个方面。硬件方面,本文从最基本的传感器、信号调理开始介绍数据采集过程以及DAQ板卡。除此之外,本文还介绍了虚拟仪器总线技术,重点为专用于虚拟仪器的VXI总线系统以及PXI总线系统 。软件方面,主要利用现今最有代表性的图形化编辑软件——LabVIEW,并用之模拟从DAQ板卡中采集到一路带有均匀白噪声的正弦信号,显示其波形,并分析、显示其幅频特性曲线以及相频特性曲线。另外本文还根据LabVIEW中的子程序,实现了语音信号的录音与播放。
本文还从市场出发对虚拟仪器的配置投资做了具体阐述,指明了构造虚拟仪器平台所需要的投资,为今后的学习工作打下了基础。并对国内外虚拟仪器的部分应用案例作了介绍,指出虚拟仪器是仪器历史的一次革命。 关键词:虚拟仪器;数据采集;总线;LabVIEW
第一章 虚拟仪器概述
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是程序框图。LabVIEW的特点如下:
编程简单 开发周期短 高效性 开放性 自定义性
性价比高,能一机多用
虚拟仪器的发展随着微机的发展和采用总线方式的不同,可分为五种类型: 1.1.1 PC总线——插卡型虚拟仪器
这种方式借助于插入计算机内的数据采集卡与专用的软件如LabVIEW相结合(注:美国NI公司的Labview是图形化编程工具,它可以通过各种控件自已组建各种仪器。Labview/cvi是基于文本编程的程序员提供高效的编程工具,通过三种编程语言Visual C++,Visual Basic,Labviews/cvi构成测试系统,它充分利用计算机的总线、机箱、电源及软件的便利。但是受PC机机箱和总线限制,且有电源功率不足,机箱内部的噪声电平较高,插槽数目也不多,插槽尺寸比较小,机箱内无屏蔽等缺点。另外,ISA总线的虚拟仪器已经淘汰,PCI总线的虚拟仪器价格
比较昂贵。
1.1.2 并行口式虚拟仪器
最新发展的一系列可连接到计算机并行口的测试装置,它们把仪器硬件集成在一个采集盒内。仪器软件装在计算机上,通常可以完成各种测量测试仪器的功能,可以组成数字存储示波器、频谱分析仪、逻缉分析仪、任意波形发生器、频率计、数字万用表、功率计、程控稳压电源、数据记录仪、数据采集器。美国LINK公司的DSO-2XXX系列虚拟仪器,它们的最大好处是可以与笔记本计算机相连,方便野外作业,又可与台式PC机相连,实现台式和便携式两用,非常方便。由于其价格低廉、用途广泛,特别适合于研发部门和各种教学实验室应用。 1.1.3 GBIB总线方式的虚拟仪器
GPIB技术是IEEE488标准的虚拟仪器早期的发展阶段。它的出现使电子测量独立的单台手工操作向大规模自动测试系统发展,典型的GPIB系统由一台PC机、一块GPIB接口卡和若干台GPIB形式的仪器通过GPIB电缆连接而成。在标准情况下,一块GPIB接口可带多达14台仪器,电缆长度可达40米。GPIB技术可用计算机实现对仪器的操作和控制,替代传统的人工操作方式,可以很多方便地把多台仪器组合起来,形成自动测量系统。GPIB测量系统的结构和命令简单,主要应用于台式仪器,适合于精确度要求高的,但不要求对计算机高速传输状况时应用。 1.1.4 VXI总线方式虚拟仪器
VXI总线是一种高速计算机总线VME总线在VI领域的扩展,它具有稳定的电源,强有力的冷却能力和严格的RFI/EMI屏蔽。由于它的标准开放、结构紧凑、数据吞吐能力强、定时和同步精确、模块可重复利用、众多仪器厂家支持的优点,很快得到广泛的应用。经过十多年的发展,VXI系统的组建和使用越来越方便,尤其是组建大、中规模自动测量系统以及对速度、精度要求高的场合。有其他仪器无法比拟的优势。然而,组建VXI总线要求有机箱、零槽管理器及嵌入式控制器,造价比较高。
1.1.5 PXI总线方式虚拟仪器
PXI总线方式是PCI总线内核技术增加了成熟的技术规范和要求形成的,增加了多板同步触发总线的技术规范和要求形成的,增加了多板发总线,以使用于相
邻模块的高速通讯的局总线。PXI的高度可扩展性。PXI具有8个扩展槽,而台式PCI系统只有3~4个扩展槽,通过使用PCI—PCI桥接器,可扩展到256个扩展槽,台式PC的性能价格比和PCI总线面向仪器领域的扩展优势结合起来,将形成未来的虚拟仪器平台。 1.2 LabVIEW简介
LabVIEW (laboratory virtual instrument engineering wokbench——实验室虚拟仪器工程平台)的概念,是直观的前面板与流程图式的编程方法的结合,是构建虚拟仪器的理想工具。LabVIEW和仪器系统的数据采集、分析、显示部分一起协调工作, 是简化了而又更易于使用的基于图形化编程语言G的开发环境。
前面板是一个传统的仪器概念,而软件前面板其实是自动化的拓展,因为它们保持了传统直观的视觉和感觉效果。同时,软件前面板创建了一个真正的接口,无论用户使用什么类型的硬件,并且,不像硬件前面板,软件前面板只包含了对于一个应用场合很重要的参数,用户能够很容易地从一个单一前面板控制多台,并把整个系统作为一台虚拟仪器来看待。
流程图式的程序设计与科技工程人员较为熟悉的数据流和方块图的概念是一致的,而且由于流程图与传统程序设计语言的语法细节无关,构建和测试程序就可以少费时间。使用流程图方法可以实现内部的自我复制,采用前面板、流程图、图标等,用户就对整个系统实现图形化描述,同时,用户还能够重用虚拟仪器,可以随时改变虚拟仪器来满足自己的需要。
LabVIEW集成了很多仪器硬件库,如GPIB/VXI/PXI/基于计算机的仪器、RS232/485协议、插入式数据采集、模拟/数字/计数器I/O、信号调理、分布式数据采集、图像获取和机器视觉、运动控制、PLC/数据日志等。
与传统的编程方式相比,使用LabVIEW设计虚拟仪器,可以提高效率4~10倍。同时,利用其模块化和递归方式,用户可以在很短的时间内构建、设计和更改自己的虚拟仪器系统。
虚拟仪器技术经过十几年的发展,而今正沿着总线与驱动程序标准化、硬/软件
模块化、编程平台的图形化和硬件模块的即插即用方向进步。以开放式模块化仪器标准为基础的虚拟仪器标准正日趋完善,建立在虚拟仪器技术上的各种先进仪器将会层出不穷。虚拟仪器技术在发达国家的推广应用十分普及,在电子测量领域、过程控制领域,以及与人们的生活息息相关的许多其他领域。在国内,近年来也开始有了利用虚拟仪器实现检测、控制等功能的例子。
2.1 时钟显示的结构
第二章 总体设计
本课题要求设计一个数字时钟。通过获取电脑的系统时间,并分离出给数字,在通过布尔显示显示。数字的显示主要是7个长条的布尔显示组成,原理与7段数码管相似。7段数码管显示不同的数字主要通过其7个布尔不同的真假值控制,将0-9对应的7段布尔显示值依次存入一个布尔数组里,只需提取此数组的不同段即可让其显示不同的值,如显示“0”提取数组的0-6位分别赋值给7段布尔显示。
获取时间的控件可以获取的信息有:时、分、秒、秒小数等,取得的值为整型数据,利用除数取余即可分离个十位。为了获得更好的显示效果将背景改为黑色,布尔显示的颜色为灰色。
图2-1 前面板
图2-2 程序框图
第三章 软件设计
软件中获取时间(秒)控件从计算机系统中自动提取时间,并转换成时间,控件图如下:
图3-1
在获取时间后,将数据解除捆绑即取得时间,如下图:
图 3-2
因为前面使用的获取系统时间,返回的是字符串格式,但是在后面的布尔型指示灯值接受数值型,使用此器件,进行类型转换。
通过除10取余便可得到个位,商为十位,如下图:
图3-3
取出各位数字后,并不可直接显示,要通过统一编码规范显示的格式,这样才能显示各位数,编码各段如下:
图3-4
A、B、C、D、E、F、G分别对应着七段布尔显示控件,要显示“0”时A~G的赋值分别为:1 1 1 1 1 1 0(1代表真,0为假),显示其他数字也是按此做法的。最后将此70个值串接起来存入一个布尔数组里,如图3-4右。 3.3 译码、布尔显示数字
要显示数字时,只需将数字乘以7,再将乘积的值作为索引在那存放真值的数
组里寻找对应显示的七个布尔显示控件的值。如显示‘2’,则从数组的第2*7=14位开始,依次取出7个(分别代表着七个布尔的真值),其他也同理。最后捆绑成簇,因为七段显示布尔已做成簇。Labview表达如下:
图 3-5
闪烁时只要判断其是否秒数大于0.5S,大于则显示(为真),小于则熄灭(为
假),图3-7为程序框图,3-8为实际效果:
图 3-6
第四章 程序调试
程序很容易上手,没有C语言那么复杂的语法等,图形界面让人更直观的对各部分进行操作。此课程设计重点及难点在于布尔显示数字,开始时感觉其数据量非常大,由于簇的特点使得程序的复杂性大大降低,而且程序更加清晰。显示的主要借助于平时常用的数码管,它的显示原理就如本课程设计的要求是一样的,主要有统一的编码,显示时通过解码即可显示出数字。
开始做好7段布尔显示后,不管怎么看都很生硬,完全不是数字时钟的模样,研究了半天,原来是背景的缘故,当我换背景成黑色,显示效果大不一样,让人感觉到它就是一个小闹钟一样。不过它还是有一点不足:显示的字还是那么生硬,不生动,字体太统一、死板了。
总 结
Labview是一个很强大的软件,学好它很难,但学会就很简单,所以只要多做此类的程序就能做出一个好的labview程序。数字时钟功能很简单,实现起来也很简单,但要做得美观、简洁却不那么容易。比如让其显示更多生动的字体,在一个小窗口里实现更多的动画。
程序要实现丰富的内容及完美的界面主要还是要靠扎实的基础,掌握各控件的使用及各类型的模块间的转换。本来把本次课程设计的界面显示做成各种字体的,但由于时间及能力的关系,没有做得更好。
参考文献
[1] 赵会兵.虚拟仪器技术规范与系统集成.北京:清华大学出版社.2003年8月
[2] 路林吉,饶家明.虚拟仪器讲座:《信息技术》.2000年 [3] 陕西海泰电子有限责任公司:VI技术专题介绍
[4] 彭云辉等.VXI总线与虚拟仪器技术《电子技术应用》.2003年 [5] 杨乐平等.LabVIEW程序设计与应用.电子工业出版社.2001年7月 [6] 美国国家仪器( NI)有限)公司:虚拟仪器(白皮书)
[7] 美国国家仪器( NI)有限)公司: 2003年4月
LabVIEW7 Express 评估版使用指南》,
《
因篇幅问题不能全部显示,请点此查看更多更全内容