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/