
1.2 LabVIEW简介
本节主要介绍了图形化编程语言LabVIEW,并对当前最新版本LabVIEW 2018简体中文版的新功能和新特性进行了介绍。
1.2.1 LabVIEW概述
LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境之一,又称为G语言。和Visual Basic、Visual C++、Delphi、Perl等基于文本型程序代码的编程语言不同,LabVIEW采用图形模式的结构框图构建程序代码,因而,在使用这种语言编程时,基本上不需要写程序代码,取而代之的是用图标、连线构成的流程图。它尽可能地利用了开发人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强用户构建自己的工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
LabVIEW是一个标准的图形化开发环境,它结合了图形化编程方式的高性能与灵活性以及专为测试、测量与自动化控制应用设计的高端性能与配置功能,能为数据采集、仪器控制、测量分析与数据显示等各种应用提供必要的开发工具,因此,LabVIEW通过降低应用系统开发时间与项目筹建成本帮助科学家与工程师们提高工作效率。
LabVIEW被广泛应用于各种行业中,包括汽车、半导体、航空航天、交通运输、科学实验、电信、生物医药与电子等。无论在哪个行业,工程师与科学家们都可以使用LabVIEW创建功能强大的测试、测量与自动化控制系统,在产品开发中进行快速原型创建与仿真工作。在产品的生产过程中,工程师们也可以利用LabVIEW进行生产测试,监控各个产品的生产过程。总之,LabVIEW可用于各行各业产品开发的阶段。
LabVIEW的功能非常强大,它是可扩展函数库和子程序库的通用程序设计系统,不仅可以用于一般的Windows桌面应用程序设计,而且还提供了用于GPIB设备控制、VXI总线控制、串行口设备控制,以及数据分析、显示和存储等应用程序模块,其强大的专用函数库使得它非常适合编写用于测试、测量以及工业控制的应用程序。LabVIEW可方便地调用Windows动态链接库和用户自定义的动态链接库中的函数,还提供了CIN(Code Interface Node)节点使得用户可以使用由C或C++语言,如ANSI C等编译的程序模块,使得LabVIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。此外,LabVIEW还提供了专门用于程序开发的工具箱,使得用户可以很方便地设置断点,动态的执行程序可以非常直观形象地观察数据的传输过程,而且可以方便地进行调试。
当人们困惑基于文本模式的编程语言,陷入函数、数组、指针、表达式乃至对象、封装、继承等枯燥的概念和代码中时,迫切需要一种代码直观、层次清晰、简单易用且功能强大的语言。G语言就是这样一种语言,而LabVIEW则是G语言应用的杰出代表。LabVIEW基于G语言的基本特征——用图标和框图产生块状程序,这对于熟悉仪器结构和硬件电路的硬件工程师、现场工程技术人员及测试技术人员来说,编程就像是设计电路图一样。因此,硬件工程师、现场技术人员及测试技术人员学习LabVIEW可以驾轻就熟,在很短的时间内就能够学会并应用LabVIEW。
从运行机制上看,LabVIEW—这种语言的运行机制就宏观上讲已经不再是传统的冯·诺伊曼计算机体系结构的执行方式了。传统的计算机语言(如C语言)中的顺序执行结构在LabVIEW中被并行机制所代替;从本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式确保了程序中的函数节点(Function Node),只有在获得它的全部数据后才能够被执行。也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。
LabVIEW的程序是数据流驱动的。数据流程序设计规定,一个目标只有当它的所有输入都有效时才能执行;而目标的输出,只有当它的功能完全时才是有效的。这样,LabVIEW中被连接的方框图之间的数据流控制程序的执行次序,而不像文本程序受到行顺序执行的约束。因而,可以通过相互连接功能方框图快速简洁地开发应用程序,甚至还可以有多个数据通道同步运行。
1.2.2 LabVIEW 2018的新功能
LabVIEW 2018 是 NI 公司推出的 LabVIEW 软件的最新版本,是目前功能最为强大的LabVIEW系列软件。
与原来的版本相比,新版本的LabVIEW有以下一些主要的新功能和更改。
1.针对不同数据类型自定义自适应VI
● 比较选板新增检查类型子选板。
● 使用“检查类型”VI 和函数可强制让自适应 VI(.vim)只接受满足特定要求的数据类型。
● 使用类型专用结构可为指定数据类型自定义自适应VI(.vim)中的代码段。
2.使用LabVIEW的命令行接口运行操作
LabVIEW 2018允许使用LabVIEW的命令行接口(CLI)执行命令在LabVIEW中运行操作。用于LabVIEW的CLI支持以下操作:
● MassCompile:批量编译指定目录中的文件。
● ExecuteBuildSpec:使用指定生成规范中的设定生成应用程序、库或比特文件,并返回输出文件的路径。
● RunVI:使用预定义连线板接口运行VI,并返回输出或错误信息。
● CloseLabVIEW:关闭LabVIEW,无提示。
● (VI Analyzer工具包) RunVIAnalyzer:LabVIEW VI Analyzer工具包中运行指定的VI分析器任务,并将测试报告保存到指定位置。
● (Unit Test Framework工具包) RunUnitTests:在LabVIEW Unit Test Framework工具包中对指定文件运行测试,并将JUnit文件保存到指定位置。
3.从LabVIEW调用Python代码
互连接口选板新增Python子选板,从LabVIEW代码中可以调用Python代码。Python选板包含以下函数:
● 打开Python会话:用特定版本的Python打开Python会话。
● Python节点:直接调用Python函数。
● 关闭Python会话:关闭Python会话。
4.应用程序生成器的改进
LabVIEW 2018对LabVIEW应用程序生成器和程序生成规范进行了下列改进。
1)在Windows和Linux Real-Time终端上创建程序包。
2)LabVIEW生成的.NET程序集的向后兼容性支持。
5.环境改进
LabVIEW 2018包含以下对LabVIEW环境的改进:
(1)创建自定义类型的功能改进
LabVIEW 2018提供更多创建自定义类型的方式,可将自定义控件的所有实例链接到已保存的自定义控件文件。
(2)用于格式化文本的键盘快捷键
在LabVIEW环境中编辑文本时,使用以下键盘快捷键来格式化字体样式:
●〈Ctrl-B〉:加粗文本。
●〈Ctrl-I〉:斜体文本。
●〈Ctrl-U〉:下划线文本。
6.程序框图的改进
LabVIEW 2018对程序框图和相关功能进行了以下改进:
(1)并行For循环中错误处理的改进
LabVIEW 2018新增了错误寄存器以简化启用了并行循环的For循环的错误处理。错误寄存器取代了并行For循环上错误簇的移位寄存器。
(2)删除并重连对象的改进
删除并重连选中的程序框图对象时,LabVIEW也会移除选择矩形中的任何装饰,包括自由标签。在程序框图对象周围拖拽矩形选择框。
7.前面板改进
NXG风格控件:控件选板包含新的NXG风格前面板控件。使用NXG风格的控件,创建LabVIEW NXG风格的前面板。
8.新增VI和函数
LabVIEW2018中新增了下列VI和函数:
1)比较选板新增检查类型子选板,包含以下VI和函数:
● 检查数组维数是否一致。
● 检查数组维数大小是否一致。
● 检查是否为复数数值型。
● 检查是否为错误簇型。
● 检查是否为定点数值型。
● 检查是否为浮点数值型。
● 检查是否为小数数值型。
● 检查是否为整型。
● 检查是否为实数浮点数值型。
● 检查是否为实数数值或波形类型。
● 检查是否为实数数值型。
● 检查是否为相同类或子孙类。
● 检查是否为标量数值或波形类型。
● 检查是否为标量数值型。
● 检查是否为有符号整型。
● 检查结构类型是否匹配。
● 检查是否为无符号整型。
● 类型专用结构。
2)互连接口选板中新增Python子选板,包含以下函数:
● 打开Python会话。
● Python节点。
● 关闭Python会话。
3)转换选板新增强制转换至类型函数。使用该函数可将输入数据转换为兼容的数据类型,同时保留数据值。与强制类型转换函数不同,该函数不会重解析输入数据。在下列场景使用该函数:
● 消除强制转换点。
● 将不带有类型自定义的数据转换为兼容类型自定义,反之亦然。
● 重命名线上数据(如用户事件引用句柄)。
4)定时选板新增高精度轮询等待VI。使用该VI可等待指定秒数,其精度高于等待(ms)函数的精度。
9.新增和改动的属性和方法
LabVIEW2018包含下列新增和改动的属性和方法:
● LeftShiftRegister 类新增“是错误寄存器”属性。使用该属性可读取某个移位寄存器是否为错误寄存器。
● VI 类新增“将前面板配置为隐藏顶层”方法。当VI 作为顶层VI 运行时,使用该方法可隐藏VI的前面板,并可选择在任务栏中隐藏该VI。
● DisableStructure类新增“禁用样式”属性。使用该属性可读取一个结构是程序框图禁用结构、条件禁用结构还是类型专用结构的信息。
● 更改禁用样式(类:DisableStructure)方法的禁用样式参数新增 Type Specialization Style 选项。使用该选项可将程序框图禁用结构或条件禁用结构更改为类型专用结构。
1.2.3 LabVIEW的使用
LabVIEW作为目前国际上优秀的编译型图形化编程语言,是把复杂、烦琐和费时的语言编程简化成用菜单或图标提示的方法选择功能(图形),使用线条把各种功能连接起来的简单图形编程方式。LabVIEW中编写的框图程序,很接近程序流程图,因此,只要把程序流程图画好,程序也就基本编好了。
LabVIEW中的程序查错不需要先编译,若存在语法错误,LabVIEW会马上告诉用户。只要用鼠标单击两三下,用户就可以快速查到错误的类型、原因以及错误的准确位置,这个特性在程序较大的情况下使用特别方便。
LabVIEW中的程序调试方法同样令人称道。程序测试的数据探针工具最具典型性。用户可以在程序调试运行的时候,在程序的任意位置插入任意多的数据探针,检查任意一个中间结果。增加或取消一个数据探针,只需要单击两下鼠标就行了。
同传统的编程语言相比,采用LabVIEW图形编程方式可以节省大约60%的程序开发时间,并且其运行速度几乎不受影响。
除了具备其他语言所提供的常规函数功能外,LabVIEW中还集成了大量的生成图形界面的模板、丰富实用的数值分析、数字信号处理功能以及多种硬件设备驱动功能(包括RS232、GPIB、VXI、数据采集板卡和网络等)。另外,免费提供的几十家仪器厂商的数百种源代码仪器级驱动程序,可为用户开发仪器控制系统节省大量的编程时间。