LabVIEW

LabVIEW（Laboratory Virtual Instrumentation Engineering Workbench，实验室虚拟仪器工程平台）是由美国国家仪器公司所开发的图形化程式编译平台，发明者为杰夫·考度斯基（Jeff Kodosky），程式最初于1986年在苹果电脑上发表。LabVIEW早期是为了仪器自动控制所设计，至今转变成为一种逐渐成熟的高阶程式语言。图形化程式与传统程式语言之不同点在于程式流程采用"资料流"之概念打破传统之思维模式，使得程式设计者在流程图构思完毕的同时也完成了程式的撰写。

LabVIEW率先引入了特别的虚拟仪表的概念，使用者可透过人机界面直接控制自行开发之仪器。此外LabVIEW提供的函式库包含：讯号撷取、讯号分析、机器视觉、数值运算、逻辑运算、声音震动分析、资料储存等。目前可支援Windows，UNIX，Linux，macOS等操作系统。由于LabVIEW特殊的图形程式简单易懂的开发界面，缩短了开发原型的速度以及方便日后的软件维护，因此逐渐受到系统开发及研究人员的喜爱。目前广泛的被应用于工业自动化之领域上。LabVIEW预设以 多线程执行程式，对于程式设计者更是一大利器。此外LabVIEW通讯界面方面支援：GPIB，USB，IEEE1394，MODBUS，串列埠，并行埠，IrDA，TCP，UDP，Bluetooth，.NET，ActiveX，SMTP等界面。

近年来 LabVIEW 除了可以在 PC 上面撰写之外，另外支援即时系统（Real-time OS）以及可程式逻辑闸阵列（Field Programmable Gate Array, FPGA）。使用者可以透过 LabVIEW 开发环境设计、编译程式后下载至微处理器（Micro-processor）或 FPGA芯片，最终达到独立运作（Stand-alone）的功能。但目前主要还是支援 NI 自行生产的嵌入式系统系列产品，通称 NI-RIO 系列产品。比如：PCI/PXI R系列 DAQ卡片、CompactRIO、single-boardRIO、myRIO...等。

## 数据流编程

LabVIEW编程语言，也被称为G语言，是一种数据流编程语言。程序员通过绘制导线连接不同功能的节点，图形化的程序框图（LV源代码）结构决定程序如何执行。这些线传递变量，所有的输入数据都准备好之后，节点便马上执行。这可能出现同时使用多个节点的情况，G语言天生地具有并行执行能力。内置的调度算法自动使用多处理器和多线程硬件，可以跨平台地在可运行的节点上复用线程。

## 图形化编程

LabVIEW将创建用户界面（称为前面板）的工作自然地融合到开发周期当中。LabVIEW的程序/子程序被称为虚拟仪器（VI）。每个VI都有三个组成部分：程序框图（Block Diagram）、前面板（Front Panel）和图标/连接器（Icon/Connector）。连接器是用来供其他的程序框图调用本VI之用。程序员可以利用前面板上的控制控件将数据输入正在运行的VI，或者用显示控件将运算结果输出。前面板还可以作为程序的接口：每个虚拟仪器（VI）既可以把前面板当作用户界面，作为一个程序来运行；也可以作为一个节点放到另一个VI程序框图中，通过连接器面板连接起来，而前面板则定义VI的输入和输出。这意味着每个VI，在作为子程序嵌入到一个大型的项目之前，都可以很方便地进行测试。

图形化的方法还允许非程序员通过拖放虚拟化形式的VI的方法来生成程序，控制他们已经熟悉的实验室设备。在LabVIEW编程环境下，借助已经提供的大量例程和文档，可以很容易地创建小型应用程序。这是好的一方面。编写复杂的算法或大规模的代码时，程序员需要对LabVIEW特殊的语法具有广泛的了解，并且通晓LabVIEW内存管理的拓扑结构。最先进的LabVIEW开发系统提供了创建独立应用程序的可能性。此外，还可以创建分布式应用，通过客户机/服务器模式进行通信。由于G语言天生的并行性特性，这很容易实现。

## 计时系统

LabVIEW使用1904年1月1日（Epoch参考日期）作为“零”（起始）时间。使用1904年1月1日作为起始时间的软件还有苹果公司的Mac OS 9，Palm OS，MP4，Microsoft Excel（可选）。

## 版本

### LabVIEW 8.X

<image>

<image>

<image>

LabVIEW 8.X之版本中引入了物件导向（OOP）之程式设计概念，使LabVIEW更接近一个完整的程式语言。LabVIEW 8.20版的命名是为了庆祝LabVIEW第20周年。目前最新的版本为LabVIEW 8.6。LabVIEW 8.5新增的功能如下：

- 轻松整合如多核心处理器的最新技术
- 以新功能管理软件开发，如图形化合并VI的功能
- 以新的BLAS讯号处理程式库，更迅速地分析资料
- 以新的状态图程式设计方式，开发完整的应用

### LabVIEW 2010

NI LabVIEW 2010新特性LabVIEW 2010平台类软件在更新时，新特性直接由客户请求驱动、具有更强大的定时与同步功能、获得改进的后端编译器可生成经优化的机器码并将应用程序在运行时的执行性能提升20%。这款最新版LabVIEW增加了编程特性，为应用程序注入更多效能与性能；无论您是首次使用还是长期使用NI LabVIEW 2010的专家，都能获得效率的提升。

NI LabVIEW 2010内含：LabVIEW的新功能、各类LabVIEW模块、LabVIEW因特网工具包、针对其余LabVIEW平台的更新和缺陷修复。NI标准服务项目的用户可立即下载LabVIEW 2010。访问服务资源中心，以便下载其他LabVIEW产品并了解特殊且随需应变的培训模块。

LabVIEW 2010平台特性LabVIEW 2010开发系统特性

- 凭借新型后端编译器技术和自定义代码优化, 加快运行代码的速度
- 通过14类直接源于用户反馈的新型改进, 简化开发
- 消除与子VI调用相关的开销
- 将经编译的源代码保存至单独文件内, 简化团队开发
- 通过将源代码封装至配有打包的项目库的单一文件内, 简化代码部署和发布

NI LabVIEW 2010 Real-Time模块特性

- 经优化的主机/目标终端数据传输, 搭配网络流
- 联网目标里新的、基于Web的监测与配置
- 能够通过Web服务发布变量

NI LabVIEW 2010 FPGA模块特性

- 新型选件针对分布式编译
- 可导入Xilinx内核生成器 (CORE Generator) IP
- 通过程序生成规范, 更好地管理位流文件 (bitfile)与设置
- 精确至周期的仿真结合ModelSim

NI LabVIEW 2010 MathScript RT模块特性

- NI实时 (Real-Time)目标上的确定性执行
- 自动检测针对MathScript节点输出变量
- 优化的LabVIEW MathScript窗口文本编辑器

### LabVIEW 2018

此版LabView加入了对于Python的支援，可于Labview呼叫Python程式。

### LabVIEW 2020

此版本加入了物件的界面功能，也让AF的抽象讯息透过界面进行继承。

## 基本资料

- 开发者：美国国家仪器公司
- 发行日期：1986年
- 软件版本周期：LabVIEW NXG 5.0 LabVIEW 2020
- 软件版本周期：2020年
- 编程语言：视觉化程式设计语言
- 操作系统：Windows、macOS、Linux
- 平台：跨平台
- 语言：英语、简体中文
- 许可协议：专有软件
- 网站：http://www.ni.com/labview/