LabVIEW开发平台简介
以下文字转载水木虚拟仪器版]LabVIEW开发平台简介
LabVIEW是一个完全的、开放式的虚拟仪器开发系统应用软件,利用它组建仪器测试
系统和数据采集系统可以大大简化程序的设计。LabVIEW与Visual C++、Visual Basic、
LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码(Code),而L
abVIEW则是使用图形化程序设计语言G(Graphic),用框图代替了传统的程序代码。Lab
VIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程
和思维过程非常的相似。
LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的函数库和开发工具库。
LabVIEW的程序设计实质上就是设计一个个的“虚拟仪器”,即“VIs”。在计算机显示屏
幕上利用函数库和开发工具库产生一个前面版(Front Panel);在后台则是利用图形化
的编程语言编制用于控制前面板的框图程序。程序的前面板具有与传统仪器相类似的界面
,可接受用户的鼠标和键盘指令。一般来说,每一个VI都可以被其他VI调用,其功能类似
于文本语言的子程序嵌套;而这种嵌套的层次,从理论上讲,是不受任何限制的。
LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。它提供了用于GPIB设
备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。
LabVIEW可方便的调用Windows动态链接库和用户自定义的动态链接库中的函数;LabVIEW
还提供了CIN (C Interface Node) 节点使得用户可以使用由C或C++语言,如ANSI C, 编
译的程序模块,使得LabVIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换
(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。此外,LabVIEW还提供了专门
用于程序开发的工具箱,使得用户能够很方便的设置断点,动态的执行程序来非常直观形
象的观察数据的传输过程,以及进行方便的调试。
LabVIEW的运行机制就宏观上讲已经不再是传统上的冯·诺伊曼计算机体系结构的执
行方式了。传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替;
从本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式
确保了程序中的函数节点(Function Node)只有在获得它的全部数据后才能够被执行。
也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计
算机等因素的影响。
既然LabVIEW程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有
输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。这样,Lab
VIEW中被连接的函数节点之间的数据流控制着程序的执行次序,而不像文本程序受到行顺
序执行的约束。从而,我们可以通过相互连接函数节点快速简洁的开发应用程序,甚至还
可以有多个数据通道同步运行,即所谓的多线程(Multithreading)。
LabVIEW的核心是VI。VI有一个人机对话的用户界面——前面板(Front Panel)和相
当于源代码功能的框图程序(Diagram)。前面板接受来自框图程序的指令。在VI的前面
板中,控件(Controls)模拟了仪器的输入装置并把数据提供给VI的框图程序;而指示器
(Indicators)则是模拟了仪器的输出装置并显示由框图程序获得或产生的数据。当把一
个控件或指示器放置到前面板上时,LabVIEW便在框图程序中相应的产生了一个终端(Te
rminals),这个从属于控件或指示器的终端不能随意的被删除,只有删除它对应的控件
或指示器时它才会随之一起被删除。
用LabVIEW编制框图程序时,不必受常规程序设计语法细节的限制。首先,从函数面
板(Function Palette)中选择需要的函数节点(Function Node),将之置于框图上适
当的位置;然后用连线(Wires)连接各函数节点在框图程序中的端口(Port),用来在
函数节点之间传输数据。这些函数节点包括了简单的计算函数、高级的采集和分析VI以及
用来存储和检索数据的文件输入输出函数和网络函数。
用LabVIEW编制出的图形化VI是分层次和模块化的。我们可以将之用于顶层(Top Le
vel)程序,也可用作其他程序或子程序的子程序。一个VI用在其它VI中,称之为subVI,
subVI在调用它的程序中同样是以一个图标的形式出现的;为了区分各个subVI,它们的图
标是可编辑的。LabVIEW依附并发展了模块化程序设计的概念。用户可以把一个应用任务
分解成为一系列的子任务,每个子任务还可以分解成许多更低一级的子任务,直到把一个
复杂的问题分解成为许多子任务的组合。首先设计subVI完成每个子任务,然后将之逐步
组合成为能够解决最终问题的VI。
图形化的程序设计编程简单、直观、开发效率高。随着虚拟仪器技术的不断发展,图
形化的编程语言必将成为测试和控制领域内最有前途的发展方向。
页:
[1]