LabVIEW

**LabVIEW**（英語：**Lab**oratory **V**irtual **I**nstrumentation **E**ngineering **W**orkbench，實驗室虛擬儀器工程平台）是由美國國家儀器公司所開發的圖形化程式編譯平台，發明者為傑夫・考度斯基（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

LabVIEW 8.X 之版本中引入了物件導向（OOP）之程式設計概念，使 LabVIEW 更接近一個完整的程式語言。LabVIEW 8.20 版的命名是為了慶祝 LabVIEW 第 20 週年。目前最新的版本為 LabVIEW 8.6。LabVIEW 8.5 新增的功能如下：

* 輕鬆整合如多核心處理器的最新技術
* 以新功能管理軟體開發，如圖形化合併 VI 的功能
* 以新的 BLAS 訊號處理程式庫，更迅速地分析資料
* 以新的狀態圖程式設計方式，開發完整的應用

### LabVIEW 2009

### 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 2011

### LabVIEW 2012

### LabVIEW 2013

### LabVIEW 2014

### LabVIEW 2015

### LabVIEW 2016

### LabVIEW 2017

### LabVIEW 2018

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

### LabVIEW 2019

## 註

## 外部連結

* 官方網站, National Instruments