1简介
与 C 和BASIC 一样,LabVIEW[1]也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW[2]的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW[2]也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LabVIEW[1](Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW 的程序模块。
LabVIEW[1] 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
2特点
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
用户可以根据自己的需要定义和制造各种仪器。
未来
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE488 或 GPIB协议。未来的仪器也应当是网络化的。[2]
LabVIEW[2](Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW [2]集成了与满足 GPIB、VXI、RS-232和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为 “G” 语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW[2]是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用 LabVIEW[2],可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW[2]提供了Windows、UNIX、Linux、Macintosh的多种版本。
它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索 CPUVIEW 会有更详细信息;)
3虚拟仪器
虚拟仪器[3](virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。[4]
虚拟仪器[3]实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器[3]的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI 公司的 LabVIEW[2]。
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在 Microsof t公司的 Windows 诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW [2]长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW 的最新版本为 LabVIEW2011,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器[3]或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI 标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较为便宜的 PXI 标准仪器。
4应用领域
LabVIEW[1]有很多优点,尤其是在某些特殊领域其特点尤其突出。
测试测量:LabVIEW[5]最初就是为测试测量而设计的,因而测试测量也就是现在LabVIEW最广泛的应用领域。经过多年的发展,LabVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。
控制:控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。
仿真:LabVIEW包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以先在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。
儿童教育:由于图形外观漂亮且容易吸引儿童的注意力,同时图形比文本更容易被儿童接受和理解,所以LabVIEW非常受少年儿童的欢迎。对于没有任何计算机知识的儿童而言,可以把LabVIEW理解成是一种特殊的“积木”:把不同的原件搭在一起,就可以实现自己所需的功能。著名的可编程玩具“乐高积木”使用的就是LabVIEW编程语言。儿童经过短暂的指导就可以利用乐高积木提供的积木搭建成各种车辆模型、机器人等,再使用LabVIEW编写控制其运动和行为的程序。除了应用于玩具,LabVIEW还有专门用于中小学生教学使用的版本。
快速开发:根据笔者参与的一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。
跨平台:如果同一个程序需要运行于多个硬件设备之上,也可以优先考虑使用LabVIEW。LabVIEW具有良好的平台一致性。LabVIEW的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW还支持各种实时操作系统和嵌入式设备,比如常见的PDA、FPGA以及运行VxWorks和PharLap系统的RT设备。
5LabVIEW产品,附加模块和工具包
开发系统
每位LabVIEW用户的起点都是开发系统[1],这一开发系统也是图形化编程的基础环境。 以下软件包的功能相辅相成,可帮助用户满足当前和未来的需求。
LabVIEW包括基本版,完整版和专业版。
LabVIEW基本版:
图形化用户界面开发
数据采集
仪器控制
报告生成和文件I/O
LabVIEW完整版:
700多个数学/分析函数
外部代码集成 (.dll)
互联网连接
高级用户界面开发
LabVIEW专业版:
应用发布 (creat.exe)
开发管理
源代码控制
网络通信
附件模块
由于LabVIEW的模块化[6]特性,可通过添加NI和第三方的附加软件来满足顾客的项目需求。 下方列出的各种LabVIEW函数和高级工具可用于帮助用户开发特定应用并将其部署至终端。
集成部署硬件:结合可编程自动化控制器(PAC),设计、原型与部署硬件终端,如实时系统和基于现场可编程门阵列(FPGA)的系统。[5]
例如:LabVIEW Real-Time模块,LabVIEW FPGA模块,用于ARM微控制器的NI LabVIEW嵌入式模块,NI LabVIEW Mobile模块,NI LabVIEW触摸屏模块,NI LabVIEW无线传感器网络模块,LabVIEW C代码生成器,NI实时管理程序
信号处理、分析和连接:添加用于声音和振动测量、机器视觉、RF通信、瞬时与短时信号分析等的专用图像和信号处理函数。[6]
例如:LabVIEW视觉应用开发模块,声音和振动测量套件,声音与振动工具包,NI LabVIEW因特网工具包,NI LabVIEW高级信号处理工具包,NI LabVIEW自适应滤波器工具包,NI LabVIEW数字滤波器设计工具包,NI LabVIEW MathScript RT模块,频谱测量工具包,NI LabVIEW调制工具包,NI LabVIEW机器人模块,LabVIEW生物医学工具包,LabVIEW电能套件,ECU测量和校准工具包,用于LabVIEW的GPS仿真工具包,用于固定WiMAX的测量套件,NI WLAN测量套件,汽车诊断指令集,LabVIEW GPU分析工具。
控制与仿真:使用高级控制算法、动态仿真与运动控制软件,设计、仿真并执行控制系统。[6]
例如:NI LabVIEW PID和模糊逻辑工具包,NI LabVIEW控制设计与仿真模块,NI LabVIEW系统辨识工具包,NI LabVIEW仿真接口工具包,LabVIEW NI SoftMotion模块。
数据管理、记录与报表生成:快速记录、管理、搜索采集的数据并将其导出至第三方软件工具(如:Microsoft Office和工业标准的数据库)。[6]
例如:NI LabVIEW数据记录与监控模块,NI LabVIEW Microsoft Office报表生成工具包,NI LabVIEW数据库连接工具包,NI LabVIEW DataFinder工具包,NI LabVIEW SignalExpress。
开发工具和验证:用户可利用代码分析仪和单元测试架构,评估图形化代码质量并根据开发需求实现回归测试和验证等操作的自动化。[6]
例如:NI LabVIEW VI分析仪工具包,NI LabVIEW状态图模块,NI LabVIEW桌面执行跟踪工具包,NI需求管理软件,NI Real-Time执行跟踪工具包,NI LabVIEW单元测试架构工具包
应用发布:通过创建可执行程序、安装程序和DLL,将LabVIEW[6]应用程序发布给用户;或者通过网络或因特网共享用户界面。
例如:NI LabVIEW应用程序生成器 (Windows版)
6版本信息
简单回顾一下LabVIEW最近的发展历史(也仅限于我能够收集到的版本),从这里也可以间接的体会到LabVIEW的发展速度有多快。从LabVIEW的软件版本来看(我能收集到的),应该有LabVIEW 5系列、LabVIEW 6系列、LabVIEW 7系列和LabVIEW 8系列。发布年份可能有误,以NI为准。
LabVIEW 1.0 发布于:1986年,运行在苹果公司的Macintosh平台上。
LabVIEW 2.0 发布于:1988年,1990年虚拟仪器面板和结构化数据流获两项美国专利。
LabVIEW 3.0 发布于:1994年
LabVIEW 4.0 发布于:1996年
LabVIEW 5.0 发布于:1998年
LabVIEW 5.1.1 发布于:2000年3月
LabVIEW 6.02 发布于:2001年2月
LabVIEW 6.1 发布于:2002年1月
LabVIEW 7.0 发布于:2003年5月
LabVIEW 7.1 发布于:2004年4月
LabVIEW 7.1.1 发布于:2004年11月
LabVIEW 8.0 发布于:2005年10月
LabVIEW 8.0.1 发布于:2006年2月
LabVIEW 8.20 发布于:2006年8月
LabVIEW 8.2.1 发布于:2007年3月
LabVIEW 8.2.1f4 发布于:2007年9月
LabVIEW 8.5 发布于:2007年8月
LabVIEW8.5.1 发布于:2008年4月
LabVIEW8.6 发布于:2008年8月
LabVIEW8.6.1 发布于:2009年2月
LabVIEW 2010 发布于:2010年8月
LabVIEW 2011 发布于:2011年8月
LabVIEW 2012 发布于:2012年8月
LabVIEW 2013 发布于: 2013年8月
2013版最新的LabVIEW主要关注以下三个方面:集成最新技术帮助用户开发更高性能的系统,改善开发环境帮助开发者提高效率,提供系统的培训和众多联盟商工具。[7]
从NI的LabVIEW版本号,可以看出:
1、 系列号:5、6、7、8表示新的系列,软件结构或功能可能有重大改进(付费升级)
2、 版本号:5.x、6.x、7.x、8.x表示软件有新的内容或比较大的改进(付费升级)
3、 版本号:5.x.x、6.x.x、7.x.x、8.x.x表示软件较上个版本进行了修补(免费升级)