>
首页 » 技术文章 » 认识LabVIEW图形化开发平台

认识LabVIEW图形化开发平台

作者:  时间:2008-12-08 20:45  来源:52RD硬件研发

 

本文分三部分介绍LabVIEW:首先是20年来LabVIEW如何维持其一贯的开放平台特性;其次是针对LabVIEW核心元素,如直觉式的图形化程式设计语言等进行解释;最后则针对LabVIEW横跨的三大应用程式领域,包括自动化量测、工业控制、嵌入式设计及原型制作等,做一广泛且完整的说明。LabVIEW走过20年
将近二十年来,科学家和工程师一直使用LabVIEW来制作自动化资料撷取及仪器控制解决方案,供设计实验室、验证实验室以及生产工厂使用。在这段时间里,LabVIEW根据使用者的回馈及经验,透过许多次的新版本及扩充功能,不断地改良,现在LabVIEW已经成为这些应用领域的实质业界标准 (参阅图一)。在这项标准的核心中,LabVIEW 图形化程式设计语言让不具备正式程式设计训练或背景的技术专业人员得以非常迅速地制作先进的自动化量测及控制系统。但是LabVIEW已经演进到远远超越程式设计语言的地步。

LabVIEW以广泛的工具组合建构成一个图形化开发平台,供设计、控制及测试之用。本文摘要说明使LabVIEW平台得以在过去二十年间为许多使用者提供前所未有之生产力的核心技术元件,并检视推动LabVIEW平台进入新行业及市场中的各种应用程式工具及函式库。
 

 



图一:使用最广泛的资料撷取及仪器控制软件。
资料来源:Product Awareness Study Conducted by Reed Research Group, Sponsored by National Instruments, Q1 2004
(註:MATLAB是The MathWorks, Inc.的註册商标)
 

此外,使用网际网路搜寻引擎进行搜寻,可以发现LabVIEW提供与以下资源的整合:
• 超过150家厂商,提供4000种以上的仪器
• 超过65家厂商,提供1000种以上的PXI设备
• 透过IVI驱动程式,支援200种以上的设备
• 18家厂商提供150种以上的摄影机
• 100种以上的PLC
• 40多种运动阶段控制器
• 10家以上Sensors Plug&Play厂商
• 800多家具备LabVIEW经验的系统整合商

由于以平台的角度来发展,使LabVIEW已经获得许多不同的领域採用并获致成功。

 虚拟和实体资料渐渐结合的世界
随着过去二十年来工程技术的爆炸性发展──无论是摩尔定律所指称的半导体效能提升和体积缩小,电脑及微处理器普及于各项行业,或是通信标准及网路的进步──工程师在设计、制造或测试新产品时,都会面对复杂度大量提高的挑战。在这些领域中的手动程序已经被电脑的自动化设计、模拟、控制、检验及测试工具所取代。随着技术的进步,挑战从将个别的步骤或程序加以自动化,转变成整合不同的工具和技术,再转变为将整个过程自动化及流畅化。当个别功能的最佳工具无法与过程中的其它工具整合时,这个工具就会失去优势。由于这种复杂度,现在的工程师和科学家需要的不只是处理其必须完成的各种工作的最佳点状方案,而是需要一个可以提供一贯相容性和生产力的开发平台。

朝着自动化发展最明显的行业就是设计领域。无论是设计电子晶片和印刷电路板、机械架构,或是通信信号连结,这个领域中的大部份设计师会先用一套软件工具来设计产品。常见的第二个步骤是透过模拟工具来执行这些设计,尝试在多种层面上预测其效能。利用许多这一类的设计工具,使用者可以将设计内容输入至不同的模拟工具,进行早期的设计评估。从这个步骤开始,下一个步骤包括自动化佈线(layout)或模型制作及修整,以及将实际制造过程自动化。

在任何一个设计及发展流程中,以软件为基础进行设计的虚拟世界和以电子或机械测量的实体世界中的模拟工具之间存在着极为明显的差异。虚拟和实体之间的差异正是LabVIEW平台的价值最为明显之处。实体测量和设计及模拟是完全不同类型的挑战;实体测量需要和多种量测及控制硬件密切地整合,需要最佳化的效能,以处理大量的通道(机翼的压力测试需要大规模的资料记录)或极高速度的资料流通率(RF通讯测试)。LabVIEW平台已经发展至能在实体测量方面提供无与伦比的效能和弹性。更重要的是,LabVIEW平台是开放的,因此设计师可以将测量资料与其模拟结果比对,甚至交换其模拟及实体资料,以便制作设计的行为模型,或是使用模拟诱因来驱动实体测试。即使是採用最新运算法及电脑科技的最先进设计及模拟平台也没有考虑到解决实体测量这个部份的挑战。

发现必须弥补虚拟及实体量测和控制之间差异的工程师最先体会到以平台的角度来进行技术设计、模拟、测量及控制的重要性。如图二所示,实体测量的资料在整个产品的生命週期里呈现全新的重要性,而且不限于晚期流程中才发生的生产控制或验证测试步骤。
 

 



图二:设计及开发生命週期中的量测资料
   开放平台的重要性
如果工程师要运用实体测量资料,就必须使用一个开放而且与其所选择的设计及模拟平台相容的量测平台。LabVIEW平台已经在许多不同的设计领域中获得广泛的採用,亦因而产生大量的整合工具、函式库及档案格式,将LabVIEW资料与不同的设计和模拟工具结合(见图三)。除了和这些特别的工具整合之外,LabVIEW亦容纳许多软件标准,以期能在等式的两端提供整合──和其它的软件工具及套件整合,或是和多种量测资源整合,包括:
• DLL,共用函式库
• ActiveX,COM,以及.NET (Microsoft)
• DDE,TCP/IP,UDP,乙太网路,蓝芽
• CAN,DeviceNet,ModBus,OPC
• USB,IEEE 1394 (FireWire),RS232/485,GPIB
• 资料库(ADO,SQL等等)

透过这些通用标准来和硬件及软件资源通信,LabVIEW的使用者通常可以在必要时找到一个方法来交换及重覆使用其资料。
 

 



图三:LabVIEW与工程工具的整合
   一贯的重要性
当工程产品的生命週期迁移到使用软件进行设计及开发的虚拟世界之后,它越发容易受到软件生产力的两刃利剑的影响──透过自动化使得生产力获得难以置信的提升,同时也必须面对软件技术以惊人的速度在变化。现在工程师和科学家使用软件及个人电脑做为获得更佳结果的工具,但是其它行业(例如IT及网际网路或以企业为主的方案)则以软件为目标。软件业的竞争驱使厂商建立起由技术、开发工具,以及专业人员组成的生态系统──最后再将这个系统拆毁,以全新的技术和基础取而代之。虽然这种做法对软件业而言或许行得通,但是其它参与设计及制造产品的行业(汽车、通讯、材料等等)却只是在寻找方法,使他们在设计及开发方面的核心能力更加流畅。这些行业的工程师必须採用一个能够在横跨多代产品之际保证提供长期稳定性和一贯性的平台。设计师必须能够在多年间重复使用并改良其设计,而不需要更换整组工具,或是重新学习不同的设计及测量方法。
 

 



图四:作业系统、整合,以及程式设计语言等方面的技术集合
 

自从LabVIEW平台于1986年问世以来,长期一贯性一直是其特色之一。LabVIEW首先在麦金塔上推出,因为它是当时惟一能够提供LabVIEW图形化程式设计语言所需要的绘图功能的平台。此后的二十年间,LabVIEW经歷软件、通信及作业系统技术的巨幅改变──永远保护使用者在程式设计方面的投资不受影响。LabVIEW的多平台哲学是要提供一个共用的基础,使用者可以在其上制作解决方案,并轻易地在不同的作业系统上执行──Mac OS X、Windows,或是UNIX (Linux)。但是在每一种平台上,LabVIEW的使用者都可以运用作业系统所独有的技术(例如Windows的ActiveX或.NET)来加强其解决方案。只要遵循这个途径,使用者可以在两个层次上将其解决方案最佳化──在一款特定的作业系统上发挥其全部的功能,或是提供最大的可携性,以确保能够长期保护其投资。LabVIEW随时提供一个机制,让使用者得以在不断变动的技术之间转移,因此在发展的过程中不断地增加新使用者,同时也不会将特定技术的使用者边缘化或加以放弃(参见图四)。这一点对于科学家或工程师而言尤其重要,因为他们需要利用最新的技术,同时不致于发展至死胡同。

 LabVIEW开发平台的核心元素
LabVIEW是一个开放的开发平台,获得许多不同的应用领域和行业採用。为什么呢?在其核心中,LabVIEW 图形化程式设计语言让数以千计的科学家及工程师得以非常迅速而简易地开发复杂的量测及控制系统。但是程式语言只是在过去二十年间推动其接受度的平台元件之一。有四项关键元件,被视为LabVIEW开发平台的重要元素:

• 直觉式的图形化程式设计语言
• 高阶的应用程式专用工具
• 整合的量测及控制专用功能
• 多重运算目标

◆ 直觉式的图形化程式设计语言
你可以想像得到,在过去二十年来,LabVIEW程式语言已经推出大量的函式库及结构,并且加以改良。本文的范围无法详细说明图形化程式设计语言的所有层面,以及它为何能供科学家和工程师使用。在本文中,我们要着重介绍几项使这种程式语言与众不同的关键概念:

1. 资料流(Dataflow)
LabVIEW是一个以图形化程式设计语言为基础的开发环境。这种开发应用程式的方法大幅降低学习曲线,因为对工程师和科学家而言,图形呈现要比文字程式码更加自然。你可以透过互动式面板、对话方块、选单,以及数百种函数程式区(称为VI,虚拟仪器)来存取工具及功能。你可以将这些VI拖拉至程式区中,以定义应用程式的行为。这种点选的方式大幅降低从初步设定到最终方案之间所花的时间。
 

 



图二:LabVIEW的程式区范例
 

你透过一种称为资料流程式设计(dataflow programming)的概念来设定资料的流程,以及应用程式的执行。资料从一个VI传送到下一个VI,最后决定了执行的顺序以及整个应用程式的功能。资料流的本质可以比拟为阅读流程图。程式区中包括函数(以图示表示)、连接这些图示的接线,以及控制执行逻辑的结构。资料从一个函数流到下一个函数,而函数和VI要等到所有的端子(terminal)或接线连接都有资料可以处理时才会执行(见图二)。

2. 模组化
LabVIEW在本质上即鼓励模组化及程式码重覆使用。使用者利用图形化的人机界面建立VI(即程式模组);在人机界面中,以图形化的控制器和指示器呈现函数程式码的输入及输出。图形化的控制器及指示器(旋钮,量表,仪表,图表显示,长条图等等)代表传入及传出函数的资料的类型。使用者可以轻易地将这些VI加入其它VI中,因此可以产生模组化、阶层化的程式码,让使用者得以一次制作一个元件,并在发展过程中重覆使用共用的操作做为subVI,逐渐地建立复杂系统。应用程式中使用的覆层或subVI的数量没有限制,因此程式语言可以随着应用程式所需的复杂度而扩充。

3. 多执行绪及平行执行
LabVIEW除去传统程式语言所必须的低阶程式写作工作,例如记忆体管理(变数宣告等等)。LabVIEW亦具备直觉式的图形化架构,供文字式程式语言中的一般性程式设计架构使用。举例来说,While迴圈及For迴圈以方块的形式呈现──以图形方式位于方块内的程式码就是迴圈重复执行的程式码。

再深入一层来检视这个程式语言,LabVIEW的设计就是作为一种平行语言,也就是说这个图形化程式语言架构在本质上即呈现出平行执行的简单概念。但是要在文字式程式语言中设计这种简单概念却非常困难,因为它们传统上就是採取循序执行(一行接一行)的方式。利用LabVIEW,使用者可以开发平行执行的应用程式,只需在其程式码中加入多个迴圈架构即可。如图三所示的两个独立迴圈也会平行地独立执行。这项功能是用非常简单的方式来解决非常困难的程式设计挑战。平行执行在自动化测试系统中非常重要,因为可能同时测试多部设备;在即时控制系统中则可能在需要严格控制时间的迴圈撷取资料及控制输出的同时,资料也同步传送到主机;或是在嵌入式应用中,多种类型的输入必须以可确定的方式来加以回应。
 

 



图三:LabVIEW图形化程式设计语言的设计是为了用比顺序型文字程式语言更加直觉的方式来呈现平行执行。
 

在开发平行执行应用程式时,程式设计师必须拥有工具,以设定不同操作的优先顺序。举例来说,程式的I/O部份就比使用者界面重要得多。利用LabVIEW,使用者可以使用直觉式的对话方块及设定,在作业系统层级上设定执行绪的优先顺序。

4. 互动式执行及除错
LabVIEW语言也是互动式的,也就是说使用者在开发过程中可以轻松地尝试函式库中不同的函数,这在设计I/O资源程式时尤其重要。举例来说,在设定资料撷取(DAQ)操作时,使用者可以直接从内建的DAQ函式库中选择一个撷取函数,再让它独立执行。这个操作会实际从电脑的DAQ介面卡上取得资料,因此使用者可以检视资料,看看它的运作是否适合程式之用。若是如此,只需将该VI拉进程式中并继续进行开发即可。如果不适合,再试试函式库中的其它VI,直到你找到需要的函数为止。

在LabVIEW中除错也是採用互动方式,它具备所有传统程式设计工具的常见功能,例如中断点、step over/into/out of等等。LabVIEW独特的除错功能之一是将运算法中任何一处的资料予以视觉化,而不会降低运算法的效能或需要复杂的程式设计。举例来说,如果你在LabVIEW中开发一个复杂的信号处理运算法,你可以将图表控制器放进人机界面,将它们连接到资料路径上,以检视运算法中该点的资料。或者你也可以连接一个控制器(例如旋钮或滑轴控制器),用来更动运算法的输入参数值。这种互动式检查资料和参数值的能力使得在LabVIEW中除错的速度提高许多,也更加直。

◆高阶的应用程式专用开发工具
LabVIEW图形化程式语言为科学家及工程师提供一个直觉的方式,以开发其量测和控制应用程式。除了容易学习及使用之外,这种语言也提供先进应用程式所需要的效能。编译后的程式执行速度可与传统文字式程式语言的编绎结果相比。但是对许多应用程式而言,可能有更高阶的方式可以呈现解决方案(或是解决方案的一部份),而不需要使用低阶程式码。LabVIEW的高阶工具日渐增多,其目标在于用更快的速度解决特殊类型的结构需求。利用大部份的工具,使用者可以在较高阶的概念层次进行开发,然后再转换成低阶的LabVIEW程式码,以提供编译后之LabVIEW语言所具备的开放性、弹性及效能。这些开发工具包括:
• 控制程式区──用于设计线性、非线性、离散性,以及连续性控制系统。使用者可以使用传统的控制观念来进行开发,例如传送函数区块、积分器、微分器及回馈迴圈。
 

 



图四:LabVIEW的模拟图解
 

• 状态图表──使用图形化的状态图表呈现,定义多项状态及状态间的转换逻辑
 

 



图五:状态图表
 

• 公式/脚本节点──用于在文字中使用复杂公式,或输入以传统数学工具(例如The MathWorks, Inc. MATLAB或MATRIXx)定义的运算法
• 使用者界面设计──使用LabVIEW的事件架构,在图形化程式码中管理非常复杂的使用者界面。架构接收与每一个使用者事件有关的资讯,可以在事件架构中的不同面板上进行处理。

运用这些高阶观念来制作特定的应用程式,加上LabVIEW程式语言的弹性,使用者就可以在一个平台上发挥这两种方式的最大功能。

◆整合的I/O功能
LabVIEW最广为人知的就是它是一套资料撷取及仪器控制工具。这些功能皆内建于程式语言中,而且普见于整个环境之中。语言本身可以自然地管理连续性、迴圈式的资料撷取作业,并为开发人员节省大量的时间,因为这项工具在以下所列的领域当中,以工程师和科学家的角度提供各种功能:

I/O函式库
• 插入式资料撷取设备
• 模组化仪器
• 独立仪器(GPIB,RS232等等)
• 视觉/影像撷取
• 运动控制

分析
• 信号处理
• 声音及震动
• 命令分析(轮流式机器分析(rotational machinery analysis))
• 频谱测量及调变

显示
• 图表,长条图
• 旋钮,计量器,量规
• 帮浦,活阀,管路
• 温度计,水槽
 

 



图六:LabVIEW的人机界面
 

这些不同类型的工程专用控制器和函式库的整合功能不容低估。

◆ 多重运算目标
LabVIEW平台的另一个优势是它的开放后端,可以用多种运算平台为目标。LabVIEW的原生编译器可以在所有普遍的桌上型作业系统上执行,例如Windows、Mac OS X,以及Linux。. LabVIEW也可以在工业用即时平台上执行,供需要可确定性或额外稳定性的应用环境使用。LabVIEW程式也可以以执行Windows Mobile、Windows CE或Palm OS的手持型设备为目标。除了显而易见的手持型PDA或智能型电话设备之外,这些技术也常见于机器或工业系统所使用的触控显示器。最后,LabVIEW的嵌入式系统产品将LabVIEW程式转变成C程式码,可以在32位元微处理器上执行。

透过如此广泛的运算目标,LabVIEW使用者可以为其应用程式选择正确的执行时段环境, 并随着需求改变而变动规模。

 LabVIEW是横跨设计、控制及测试应用的整合平台
LabVIEW开发平台将本文中所描述的技术优势引进许多不同的应用领域及行业。但是,这款程式语言已经藉由广泛的附加模组及工具组扩大其功能,将其一般性的功能延伸,得以解决应用领域所独有的挑战。大致上来说,这个平台横跨三种不同的水平应用程式领域,如图二所示:

• 自动化测试及测量
• 工业测量及控制
• 嵌入式设计及原型制作
 

 



图二:一般用途的LabVIEW平台
 

◆LabVIEW自动化测试及量测平台
在自动化测试应用方面,LabVIEW提供在不同领域中进行量测所需的多种硬体I/O相容性及专用分析功能。除了硬件相容性之外,此平台亦在所需的系统自动化及量测分析方面提供多种工具。举例来说,在自动化方面,LabVIEW平台提供的工具包括:

互动式量测──利用SignalExpress,使用者可以在实验桌上用互动的方式来使用虚拟仪器(使用一部PC进行控制的插入式或独立仪器)。至于连简单的程式设计都显得小题大做的快速简易测量,SignalExpress让使用者得以设定量测、将结果与模拟资料比对,并将量测结果存在电脑中。

自动化测试系统──利用NI TestStand,使用者可以使用复杂的通过/失败逻辑来定义详尽的测试顺序(开发成为个别的LabVIEW程式),以推动执行流程。此外,NI TestStand和企业系统整合,可将测试结果存放在资料库中,或透过MES系统追踪单位。

在自动化量测方面──LabVIEW在特定量测领域所需的分析常式中加入垂直智慧属性,例如:
• 通信测试──可以选用调变工具及先进频谱量测常式,做为LabVIEW核心程式的附加工具
• 声音及震动──用于监督动态声音信号的声音品质,或在验证测试中的结构反应
• 机器状态监督──使用特殊的循环命令分析运算法(小波(wavelet),联合时频分析(joint time-frequency analysis))
• 影像处理──用于自动化检验及机器视觉应用
 

 



图三:LabVIEW自动化测试及量测平台
 

◆LabVIEW工业量测及控制平台
在控制应用方面,LabVIEW有一组不同的附加工具,以延伸LabVIEW的功能。明确地说,LabVIEW为图形化核心平台提供的延伸功能包括控制方法、分散式监督及控制功能,以及即时工业平台等领域。

利用LabVIEW,控制工程师可以使用同样的平台,透过不同的方法和技术来开发及发展其控制策略,例如:

• PID控制──用于相当单纯的控制应用程式
• 先进控制设计──在先进控制方面,LabVIEW工具包括工厂及控制器模型工具,可以用传统控制运算法为基础,或是以使用先进系统辨识法的I/O信号为基础。此外,LabVIEW具备一个连续性动态系统执行附加工具,可以配合传统控制程式(例如传送函数、积分器、微分器及回馈迴圈)来使用这些模型
• 运动控制──用于控制需要信号控制的工业机器
• 再生──LabVIEW内建的I/O功能使它自然而然成为取得负载资料(汽车的道路负荷,通信中的信号等等)以便用于驱动模拟或新型硬件的工具

至于在生产系统中执行控制运算法方面,可以在工业平台上执行的LabVIEW即时延伸功能非常受欢迎。此外,机器设计和工业控制领域中有许多使用者认为LabVIEW能够设定I/O介面卡上的FPGA,是佈署控制运算的一项更加可靠的方法。透过在FPGA上设定硬件本身,系统在生产过程中更为安全及可靠──这是LabVIEW的独特优势,它能够使用同样直觉的程式设计环境,为嵌入式FPGA程式设计和工业控制建立连结。

至于分散式监督及控制系统,LabVIEW为特定的控制流程工具加入更高阶系统层级的功能,例如:

• 资料记录及歷史资料库
• 警讯
• 趋势分析
• 安全性
 

 



图四:LabVIEW工业测量及控制平台
 

◆LabVIEW嵌入式设计及原型制作平台
设计师明白LabVIEW是一个量测工具。其中有许多人重视以LabVIEW收集实体量测资料的能力,并在设计过程中将它加入其设计及模拟工具,以进行行为模型建立或设计验证之用。但是,基于以下的原因,LabVIEW也渐渐在许多设计领域中被科学家和工程师视为一般用途的设计工具,而渐受欢迎:

• 庞大的分析和数学函数函式库──LabVIEW具备数以百计的函数,涵盖数学、信号处理、可携性及统计性等广泛的传统运算法,并且具备构成自定运算法之程式区的控制器
• 原生I/O整合──由于真实世界的实体资料非常容易透过LabVIEW取得,使用者发现以真实的资料来测试其运算法,做为进行调整的覆核方法,是极具价值的
• 即时执行平台──LabVIEW可以将所开发的原生运算法佈署在具备整合I/O的即时平台上。当测试和设计过程结合时──例如在动态控制系统中,硬件迴路测试者必须动态地模拟控制运算法所尝试控制的环境时,这项功能尤其具有价值。(在这个范例中,LabVIEW也可以将The MathWorks, Inc. Simulink®的运算法佈署在即时平台上)

Simulink®是The MathWorks, Inc.的註册商标。
 

 



图五:LabVIEW嵌入式设计及原型制作平台
   结论
从最简单的工作檯设计实验室,到嵌入式设计的先进世界,LabVIEW图形化开发平台为科学家及工程师提高生产力。直觉式图形化程式设计语言、与多种I/O的相容性、容易开发的分散式系统,以及越来越多以LabVIEW平台为制作基础的使用者,这些因素互相结合,使LabVIEW更进一步深入垂直应用领域中。透过改用生产力更佳的图形化开发方法,同时继续使用开放性的LabVIEW环境以保留及再使用旧的运算法,或是与其设计和模拟工具交换资料,工程师可以将开发工具现代化,并将整个产品的生命週期流线化,而不需要全部重新开始。(本文由NI美商国家仪器提供)

相关推荐

MathWorks推出新款代码生成工具Simulink

MathWorks  Simulink  2012-04-27

LabVIEW天下会广召天下英雄

NI  LabVIEW  2012-04-16

NI携手FIRST共同推出第二届FTC科技挑战赛

NI  FTC  LabVIEW  2012-03-14

NI与清华大学精密仪器与机械学系共建教学创新基地

NI  LabVIEW  2011-11-23

开发一款用于锥形球磨机的预防性维护监视系统

LabVIEW  传感器  2011-09-21

使用LabVIEW与PXI进行蓝光播放机视频和音频测试

蓝光播放机  LabVIEW  2011-09-13
在线研讨会
焦点