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