高智杰,鄭玉航,王仕成
1 引言
1986年,美國NI公司提出了虛擬儀器概念,從而引起儀器和自動(dòng)化工業(yè)的一場(chǎng)革命,當(dāng)前,虛擬儀器技術(shù)已廣泛應(yīng)用到各種自動(dòng)化測(cè)試與測(cè)量領(lǐng)域,虛擬化已經(jīng)成為儀器領(lǐng)域的發(fā)展方向。虛擬儀器(Virtual Instruments簡(jiǎn)稱VI)是基于計(jì)算機(jī)的數(shù)字化測(cè)量測(cè)試儀器,能夠充分利用和發(fā)揮現(xiàn)有計(jì)算機(jī)先進(jìn)技術(shù),使儀器的測(cè)試和測(cè)量變得異常方便和快捷。未來的VI將可能完全覆蓋計(jì)算機(jī)輔助測(cè)試(CAT)的全部領(lǐng)域。
LabVIEW是NI公司推出的一種虛擬儀器開發(fā)平臺(tái)。它利用其自身包含的分析軟件包,可直接對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、濾波等分析處理;還整合了滿足GPIB、VXI、RS-232和RS-485以及數(shù)據(jù)采集卡等硬件通訊的功能。
應(yīng)用LabVIEW開發(fā)環(huán)境設(shè)計(jì)滿足目前導(dǎo)彈測(cè)試計(jì)量需求的虛擬測(cè)試系統(tǒng)無疑是一種很好的選擇。但在對(duì)某大型地對(duì)地導(dǎo)彈地面測(cè)試設(shè)備計(jì)量中,由于各種參數(shù)繁多,時(shí)域和頻域內(nèi)信號(hào)屬性不一,且精度要求高,導(dǎo)致數(shù)據(jù)處理量比較大,且在數(shù)據(jù)采集、標(biāo)準(zhǔn)信號(hào)引入時(shí)需要用到一些專門的模塊或儀器。由于LabVIEW不適于進(jìn)行大量數(shù)據(jù)處理,又不能完全提供用戶所需要的驅(qū)動(dòng)子程序,對(duì)底層操作不易實(shí)現(xiàn),所以借助其他語言(C語言)或利用其它軟件開發(fā)環(huán)境(如Visual C++)開發(fā)滿足特殊功能的動(dòng)態(tài)鏈接庫文件成為可以考慮的解決途徑。“代碼接口節(jié)點(diǎn)(CIN)”和“調(diào)用庫函數(shù)節(jié)點(diǎn)(CLF節(jié)點(diǎn))”就是LabVIEW提供的與傳統(tǒng)編程語言的接口,通過接口調(diào)用其他語言彌補(bǔ)其不足之處,從而達(dá)到擴(kuò)充LabVIEW功能,滿足虛擬測(cè)試系統(tǒng)測(cè)試計(jì)量要求的目的。
在一些情況下,通過這兩種途徑運(yùn)用C語言完成數(shù)據(jù)轉(zhuǎn)換與處理,也可達(dá)到虛擬儀器軟件的結(jié)構(gòu)簡(jiǎn)化。
2 兩種途徑的可行性分析
2.1 CIN的功能概述
在LabVIEW中,CIN處于功能模板中“Advanced”子模板里面,如圖1所示,右邊被選中的即為CIN節(jié)點(diǎn),其帶有輸入輸出端口,通過改變大小可相應(yīng)改變輸入輸出端口個(gè)數(shù)。節(jié)點(diǎn)彈出菜單中有各項(xiàng)命令,其中“Creat.c File...”項(xiàng)用于創(chuàng)建C語言程序模板,在模板中用C語言編寫相應(yīng)代碼。當(dāng)執(zhí)行CIN節(jié)點(diǎn)時(shí),LabVIEW調(diào)用已編譯好的外部可執(zhí)行代碼,進(jìn)行數(shù)據(jù)處理最終完成數(shù)據(jù)的傳遞。CIN代碼的編譯支持Visual C++、Microsoft C/C++等編譯器。
圖1 LabVIEW功能模板示意圖
2.2 CLF節(jié)點(diǎn)的功能概述
此節(jié)點(diǎn)是LabVIEW提供的調(diào)用庫函數(shù)(Call Library Function)節(jié)點(diǎn),它用于用戶對(duì)動(dòng)態(tài)鏈接庫(DLL)的調(diào)用。DLL是一個(gè)函數(shù)庫,在運(yùn)行時(shí)才完成對(duì)函數(shù)的調(diào)用。動(dòng)態(tài)鏈接相應(yīng)于靜態(tài)鏈接,是一種程序在運(yùn)行時(shí)與庫函數(shù)連接起來的技術(shù)。CLF節(jié)點(diǎn)就是用于在LabVIEW環(huán)境中實(shí)現(xiàn)對(duì)用戶自己開發(fā)的動(dòng)態(tài)鏈接庫文件的調(diào)用,從而完成一些特殊功能。
3 CIN的功能實(shí)現(xiàn)
下面以LabVIEW中兩數(shù)相乘的實(shí)例說明CIN的應(yīng)用,利用CIN的功能調(diào)用C源代碼求兩個(gè)數(shù)的積,以此說明CIN的創(chuàng)建過程。
圖2 前面板示意圖
(1) 前面板與框圖程序如圖2、圖3所示,A