邵林林
摘 要:在虛擬儀器領域,廣泛應用的是NI公司的LabVIEW語言。LabVIEW語言是一種圖形語言開發環境,也稱作G語言,它具有高性能的圖形化編程方法以及靈活性,其高性能配置模塊及功能特別設計用于自動控制和測試測量領域,能為數據采集、儀器控制、測量分析與數據顯示等各種應用提供必要的開發工具。本文重點介紹了LabVIEW的應用領域和新手常見錯誤。本文可作為LabVIEW的初級用戶和從事測試與計量、電子開發等行業工程技術人員的參考。
關鍵詞:LabVIEW;虛擬儀器;G語言
中圖分類號: TH14 文獻標識碼: A 文章編號: 1673-1069(2016)17-149-2
0 引言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,實驗室虛擬儀器工程平臺) 是美國NI(National Instruments,美國國家儀器)公司推出的一種基于G語言(Graphics Language,圖形化編程語言)的虛擬儀器軟件開發工具。用LabVIEW設計的虛擬儀器可以脫離LabVIEW開發環境,最終用戶看見的是和實際的硬件儀器相似的操作面板。利用LabVIEW,設計者可以像搭積木一樣,輕松組建一個測量系統和構造自己的儀器面板,而無需進行任何繁瑣的計算機代碼編寫。
1 概述
作為一個通用的編程系統,LabVIEW有一個龐大函數庫,可以完成任何編程任務,這同C語言和BASIC語言一樣。這個龐大的函數庫包括了數據采集、GPIB、串口儀器控制、數據顯示、分析與存儲等。LabVIEW可以設置斷點、可以單步執行,也可以激活程序的執行過程,以動畫方式查看數據在程序中流動,這使得調試程序十分便捷。
LabVIEW軟件的特點和優點可以歸納為:
①圖形化的編程方式,設計者無需寫任何格式的文本代碼,是真正的工程師語言;②提供了豐富的數據采集、分析、存儲庫函數;③既提供了傳統的程序調試手段,如設置斷點、單步運行,同時提供獨到的高亮執行工具,使程序動畫式運行,利于設計者觀察程序運行的細節,使程序的調試和開發更為便捷;④32bit的編譯器編譯成32bit的編譯程序,保證用戶數據采集、測試和測量方案的高速運行;⑤囊括了DAQ、GPIB、PXI、VXI、RS-232/485在內的各種儀器通信總線標準的所有功能函數,使得不懂總線標準的開發者也能夠驅動不同總線標準接口設備與儀器;⑥提供大量與外部代碼或軟件進行連接的機制,諸如DLLs(動態鏈接庫)、DDE(共享庫)、ActiveX等;⑦強大的Internet功能,支持常用網絡協議,方便網絡、遠程測控儀器的開發。
2 應用領域
LABVIEW無處不在,工作站,PC,MAC,Linux,Sun,示波器,工業計算機,PC板卡,網絡IO,無線,掌上電腦,FPAG,傳感器等都有涉及。
測試測量與控制領域:
LabVIEW被譽為“科學家與工程師”語言,它為不熟悉文本式語言編程的設計者在測控領域建立計算機儀器系統——虛擬儀器,提供了一個極為便捷、輕松的圖形化設計環境。幾乎所有的測試、測量和控制應用都可以分成三部分:采集、分析、表達。LABVIEW就是用于采集、分析、表達實際物理量的應用最早、功能強大的工程軟件。
LABVIEW能從下列設備采集數據:GPIB、串口、VXI接口儀器,數據采集卡(DAQ),PXI儀器,圖像采集卡(IMAQ),運動控制,PXI實時系列,PLC(通過OPC Server),PDA。
LABVIEW包含以下工具來分析數據:用于差分方程、曲線擬合、微積分、線性代數、統計處理的超過400個分析功能模塊,包括軟件濾波和譜分析在內的新增的12個快速VIs,用于濾波、加窗、變換、峰值測量、諧波分析、譜分析的信號處理VIs。
LABVIEW包括以下工具來表達數據:在PC上使用圖形、圖表、表格、儀表容器、3D控件、圖形控件等,通過網絡使用互聯網發布工具、Datasocket、TCP/IP、VI Server、Remote Panels、Email,企業鏈接工具SQL、FTP、Telnet、HTML。
仿真領域:
LabVIEW不但能夠完成一般的數學運算與邏輯運算和輸入輸出功能,它還有專門的用于數據采集和儀器控制的庫函數和開發工具,尤其還帶有專業的數學分析程序包,基本上可以滿足復雜的工程計算和分析需求。因此,LabVIEW在模擬和仿真領域也得到了廣泛應用。
其它領域:
LabVIEW編程耗時只有文本語言的20%左右,因此在快速開發領域,應該優先使用LabVIEW語言。
LabVIEW語言博采眾家之長,具有良好的平臺一致性,其代碼無需修改就可以在三大臺式機操作系統(Windows、Mac OS 及Linux)上運行。除此之外,LabVIEW支持第三方軟件和內嵌通信協議之多,使得在跨平臺領域,LabVIEW有重要的一席之地。
3 開發系統
LabVIEW基本版包含圖形化用戶界面開發、數據采集、儀器控制、報告生成和文件I/O。
LabVIEW完整版包含700多個數學/分析函數、外部代碼集成 (.dll) 、互聯網連接和高級用戶界面開發。
LabVIEW專業版包含應用發布 (creat.exe) 、開發管理、源代碼控制和網絡通信。
4 版本歷史
回顧LabVIEW的發展歷史可以間接的體會到LabVIEW的發展速度有多快,最初的LabVIEW 1.0 發布于1986年,而2014年8月發布的已經是LabVIEW 2014版本了。從LabVIEW的軟件版本來看,有LabVIEW 5系列、LabVIEW 6系列、LabVIEW 7系列和LabVIEW 8系列。
5 LabVIEW新手常見錯誤
犯錯誤的用戶是因為他們沒有真正理解LabVIEW框圖數據流背后的原理,另外一些用戶則是不知道哪些特性可提高LabVIEW編程質量。
錯誤1:過度使用平鋪式順序結構
許多新手并不完全了解“數據流”執行背后的概念,其中一個現象是他們往往在程序框圖中過度使用平鋪式順序結構。這些新手經常依賴平鋪式順序結構來實現程序框圖的代碼串行執行,而不是使用數據流和節點之間的連線。
錯誤2:錯誤使用局部變量
局部變量是共享內存中的一個區域,用于在計算機程序不同部分之間傳遞數據。局域變量具有非常強大的功能,通常用于文本編程語言,但如果出現競爭條件,就會產生問題。
對于文本編程語言來說,通過變量傳遞數據是必需的,但LabVIEW則提供了一種數據流方法,可將數據從程序的一個部分移動到另一個部分。LabVIEW固有的并行性機制決定著用戶不能過度使用變量。如果過度使用變量,則會出現某個讀/寫操作贏了“競爭”,而其他操作則輸了“競爭”,丟失數據的操作會被忽視,因此在LabVIEW中過度使用變量可能會最終導致數據丟失。
錯誤3:忽略代碼模塊化
通常情況下,新LabVIEW用戶創建的是“即寫即忘”應用程序去完成簡單的任務,而沒有考慮到以后是否會用到這些代碼。隨著編程工作越來越多,他們會發現自己在一遍遍地重寫同一段代碼。其實在編程同時創建一個可復用于其他應用的模塊化子VI,就可以節省大量的開發時間。
錯誤4:創建龐大繁瑣的程序框圖
許多新LabVIEW用戶都會把程序框圖編寫得非常繁瑣龐大。我們難免需要編寫較大的程序框圖,但龐大的程序框圖從也表明該程序缺乏編程架構。如果沒有一個基本架構,長期維護該程序是非常困難的,如果以后要添加新功能也會非常困難。
錯誤5:不重視文檔記錄
優秀的代碼文檔可以有效地幫助他人理解自己寫的程序,這一點從微軟公司的代碼文檔就能看出來。遺憾的是,許多新手在開發周期末期功能開發結束之后才開始進行文檔撰寫。這使得用于對代碼進行文檔記錄的時間變得非常少。正確的做法應該是在開發過程中就需抽出時間來開始進行文檔記錄。文檔對于編程人員自身也非常有用,尤其是當他們過段時間回來看代碼卻不記得當初他們為什么選擇某些代碼時。
總的來說,LabVIEW作為NI設計平臺的核心,其開發環境集成了工程師和科學家快速構建各種應用所需的所有工具,可以幫助工程師和科學家解決問題、提高生產力和不斷創新,是開發測量系統和控制系統的理想選擇。
參 考 文 獻
[1] 王超.LabVIEW2015虛擬儀器程序設計[M].2016.