基于LabVIEWRT的數(shù)據(jù)實(shí)時(shí)傳輸系統(tǒng)
( 2) 連接啟動(dòng)宿主機(jī)與目標(biāo)計(jì)算機(jī), 并使目標(biāo)機(jī)運(yùn)行在實(shí)時(shí)狀態(tài)下。宿主機(jī)與目標(biāo)機(jī)的連接可以是普通的網(wǎng)絡(luò)連接。使目標(biāo)計(jì)算機(jī)運(yùn)行在實(shí)時(shí)狀態(tài)下則有從硬盤(pán)啟動(dòng)和從軟盤(pán)啟動(dòng)兩種方式, 啟動(dòng)軟盤(pán)及硬盤(pán)的設(shè)置均在 NI產(chǎn)品隨帶的硬件操作環(huán)境 MAX下設(shè)置, 具體步驟可見(jiàn)文獻(xiàn) [ 4]。本文所設(shè)置的目標(biāo)機(jī)是一個(gè)數(shù)據(jù)采集計(jì)算機(jī), 由研華工控機(jī)和 N I公司的基于 PC I總線的數(shù)據(jù)采集卡 PC I6036E組成。目標(biāo)機(jī)啟動(dòng)模式采取了制作啟動(dòng)軟盤(pán)的方式。
( 3) 在宿主機(jī)上進(jìn)入 LabVIEW RT編程模式, 選定將要運(yùn)行程序的目標(biāo)機(jī), 編制宿主機(jī)和目標(biāo)機(jī)要運(yùn)行的程序。 LabVIEW RT的不同版本在這一部分的環(huán)境可能有差別, 本文用的 8 1 0版本是目前最新的版本, 它直接應(yīng)用了一個(gè) RT工程管理窗口, 使得對(duì)子程序模塊 ( VI) 的管理十分方便、直觀。
( 4) 完成程序的編制以及相應(yīng)的設(shè)置后, 直接把程序下載到目標(biāo)機(jī)上即可以運(yùn)行。應(yīng)用 LabV I EW RT編制的程序只要下載到目標(biāo)機(jī)上就可以自己獨(dú)立運(yùn)行, 而只要沒(méi)有特殊的設(shè)置, 縱使宿主機(jī)崩潰關(guān)機(jī)了, 其運(yùn)行依然不受影響。而且, 通過(guò)設(shè)置可以把目標(biāo)機(jī)上的程序設(shè)置成開(kāi)機(jī)即自動(dòng)運(yùn)行狀態(tài), 這樣宿主機(jī)就可以不需控制目標(biāo)機(jī)而進(jìn)行其它目標(biāo)機(jī)的開(kāi)發(fā)。這在很多自動(dòng)測(cè)試、控制網(wǎng)絡(luò)等系統(tǒng)中有著極大的優(yōu)點(diǎn), 可以極大地提高系統(tǒng)開(kāi)發(fā)效率并節(jié)省很多的資源。另外, 文中系統(tǒng)開(kāi)發(fā)所應(yīng)用的 LabVIEW RT的 810版本還增加了一個(gè) /共享變量 0 的新功能。它采用了一個(gè) / 先進(jìn)先出0 的內(nèi)存棧列機(jī)制, 通過(guò)應(yīng)用共享變量可以方便、可靠的實(shí)現(xiàn)控制計(jì)算機(jī)與目標(biāo)機(jī)計(jì)算機(jī)之間的數(shù)據(jù)傳送以及邏輯控制。比起以前版本為實(shí)現(xiàn)網(wǎng)絡(luò)通訊所必須采取的 DataSocket技術(shù)等, 共享變量的邏輯以及代碼極其簡(jiǎn)單。也正因?yàn)榇? 共享變量的出現(xiàn)也大大提升了 LabVIEW 以前并不受贊揚(yáng)的網(wǎng)絡(luò)通
訊性能 [5]
。
2 12 軟件組成與實(shí)時(shí)性控制
2 1211 軟件組成及流程
一般情況下, 非 N I公司的產(chǎn)品, 即第三方硬件產(chǎn)品, 并不能直接應(yīng)用在 LabV IEW RT環(huán)境之下。而此時(shí)就必須自行開(kāi)發(fā)板卡在 LabV IEW RT環(huán)境下的驅(qū)動(dòng), 其包括很多的過(guò)程 [ 6]。
然而 NI公司恰好開(kāi)發(fā)出了 VM IPCI- 5565的驅(qū)動(dòng), 作為例程發(fā)布在 N I主頁(yè)上供開(kāi)發(fā)者學(xué)習(xí)。實(shí)驗(yàn)證明, 在對(duì)目標(biāo)機(jī)進(jìn)行一定設(shè)置后, 此驅(qū)動(dòng)可以應(yīng)用在 LabV IEW 的 RT環(huán)境下。系統(tǒng)軟件的組成分為宿主機(jī)控制程序和目標(biāo)機(jī)采集程序兩部分, 功能可以實(shí)現(xiàn)由控制界面控制采樣時(shí)間限、采樣模式及點(diǎn)數(shù)、采樣率等參數(shù)設(shè)置的任意通道的數(shù)據(jù)采集和直接發(fā)送。軟件的流程如圖 3所示。
2 1212 軟件中的實(shí)時(shí)性考慮
圖 3 系統(tǒng)軟件流程圖
為盡量提升軟件運(yùn)行的效率和數(shù)據(jù)處理的實(shí)時(shí)性, 軟件從總體方案和具體函數(shù)的選擇應(yīng)用上都進(jìn)行了優(yōu)化考慮。具體表現(xiàn)在: 在總體方案上, 程序盡量在開(kāi)始采集命令下達(dá)之前實(shí)現(xiàn)所有的硬件參數(shù)配置以及控制變量的復(fù)位, 而在數(shù)據(jù)采集開(kāi)始后使目標(biāo)機(jī)上運(yùn)行的代碼盡量少。而在具體函數(shù)的應(yīng)用上, 也以運(yùn)行代碼的簡(jiǎn)潔高效為原則。這包括了對(duì)數(shù)據(jù)采集函數(shù)的改進(jìn)組合和對(duì)數(shù)據(jù)發(fā)送時(shí)函數(shù)的選擇。數(shù)據(jù)采集函數(shù)在運(yùn)行時(shí),通過(guò)判斷采集模式 (是連續(xù)還是定點(diǎn) ) 選擇在 DAQm x函數(shù)模
塊基礎(chǔ)上改進(jìn)的采集子 VI[ 7- 8]。另外需要注意的是, 在數(shù)據(jù)發(fā)送時(shí)必須根據(jù)反射內(nèi)存卡函數(shù)的運(yùn)行特點(diǎn)和發(fā)送數(shù)據(jù)的模式, 合適選擇編制的數(shù)據(jù)發(fā)送子V I 。由于反射內(nèi)存卡的驅(qū)動(dòng)函數(shù)是由 LabVIEW 中的 V ISA底層函數(shù)綜合應(yīng)用而成的[ 6], 尤其是數(shù)據(jù)讀寫(xiě)函數(shù), 全部由 VISA中寄存器讀寫(xiě)函數(shù)組成。所以一般的浮點(diǎn)型采集數(shù)據(jù)無(wú)法直接寫(xiě)進(jìn)寄存器, 而必須開(kāi)發(fā)合適的數(shù)據(jù)轉(zhuǎn)換函數(shù)。此時(shí)有兩種方法: 一即把所有數(shù)據(jù)通過(guò) LabV IEW 的 datafl a ttern子 VI轉(zhuǎn)化成字符型 ( 8位精度整形 ) 數(shù)據(jù) (此時(shí)又分兩種情況, 有適用于連續(xù)數(shù)據(jù)的單點(diǎn)轉(zhuǎn)化和適用于定量序列的向量轉(zhuǎn) ) , 發(fā)出后再通過(guò)相反的方法轉(zhuǎn)換回原始數(shù)據(jù); 二則是把浮點(diǎn)數(shù)據(jù)判斷正負(fù)后設(shè)置代表負(fù)數(shù)的標(biāo)志位, 再通過(guò)一個(gè)固定的數(shù)學(xué)變換全部轉(zhuǎn)換成整形數(shù)據(jù), 把轉(zhuǎn)換后的數(shù)據(jù)和對(duì)應(yīng)標(biāo)志位數(shù)據(jù)一同發(fā)送, 接收后再結(jié)合標(biāo)志位進(jìn)行數(shù)據(jù)反變換即可。
可見(jiàn), 第一種方法把一個(gè) 32位浮點(diǎn)數(shù)變成了 4個(gè) 8位整形數(shù)來(lái)發(fā)送, 而第二種方式增加了一倍的數(shù)據(jù)量, 但完成一個(gè)數(shù)據(jù)發(fā)送卻只發(fā)送兩次。于是, 如若是少量的數(shù)據(jù)序列, 則推薦采取第一種方式來(lái)發(fā)送; 而若是大批量數(shù)據(jù)發(fā)送, 則可以在預(yù)先分配標(biāo)志位內(nèi)存區(qū)的情況下采用第二種方法。而隨后的實(shí)驗(yàn)則證明, 這樣的選擇在實(shí)際上是正確的。
3 系統(tǒng)測(cè)試及結(jié)果分析
系統(tǒng)搭建完畢后, 對(duì)其的功能和性能進(jìn)行了測(cè)試。測(cè)試方案為:
( 1) 數(shù)據(jù)采集計(jì)算機(jī)上在 LabVIEW RT環(huán)境下直接產(chǎn)生定量數(shù)據(jù), 通過(guò)寫(xiě)入反射內(nèi)存發(fā)送, 計(jì)算出平均耗時(shí), 以得到軟件的性能指標(biāo);
( 2) 數(shù)據(jù)采集計(jì)算機(jī)上在 LabVIEW RT環(huán)境下產(chǎn)生模擬數(shù)據(jù), 經(jīng)自我采回后再寫(xiě)入反射內(nèi)存發(fā)送, 計(jì)算出平均耗時(shí);
( 3) 利用 /銀河 - SI M 仿真工作站0 產(chǎn)生數(shù)據(jù), 由數(shù)據(jù)采集計(jì)算機(jī)節(jié)點(diǎn)采集數(shù)據(jù)并向數(shù)據(jù)接收計(jì)算機(jī)節(jié)點(diǎn)發(fā)送, 比較仿真工作站的模擬波形和接收計(jì)算機(jī)的數(shù)據(jù)波形, 以驗(yàn)證系統(tǒng)功能。
測(cè)試結(jié)果表明:
( 1) 軟件發(fā)送 10000個(gè) 32位浮點(diǎn)數(shù)時(shí), 通過(guò)第一種處理方式耗時(shí) 7 m s , 第二種處理方式耗時(shí)5m s , 性能達(dá)到了預(yù)期要求, 且耗時(shí)上的差異與理論上的推斷相符。
( 2) 軟件完全可以在同時(shí)輸出 2路模擬信號(hào)的情況下,實(shí)現(xiàn)可控制的任意多路 ( 1~ 7)、任意通道 ( 0~ 8) 同一采樣率下的數(shù)據(jù)采集與傳送, 且準(zhǔn)確性較高、可靠性好。
( 3) 整個(gè)系統(tǒng)可以實(shí)現(xiàn)數(shù)據(jù)較好的實(shí)時(shí)傳輸, 完成數(shù)據(jù)的實(shí)時(shí)處理。
4 結(jié)束語(yǔ)
本文實(shí)現(xiàn)的系統(tǒng)是實(shí)驗(yàn)室開(kāi)發(fā)的 / 智能集成仿真網(wǎng)絡(luò)接口系統(tǒng)0 的一部分, 整體系統(tǒng)可以實(shí)現(xiàn)反射內(nèi)存網(wǎng)絡(luò)和廣播內(nèi)存網(wǎng)絡(luò)的實(shí)時(shí)數(shù)據(jù)通訊 [9- 10]。而本子系統(tǒng)除能完成總體的任務(wù)外, 由于具有網(wǎng)絡(luò)結(jié)構(gòu)開(kāi)放、工作模式簡(jiǎn)潔高效的特點(diǎn),更具有較大的發(fā)展空間和拓展應(yīng)用前景。在系統(tǒng)投入應(yīng)用后,在某制導(dǎo)武器的仿真試驗(yàn)中工作良好, 在武器的開(kāi)發(fā)定型中發(fā)揮了積極的作用。
評(píng)論