基于LabVIEW 7.0的某實時監(jiān)控軟件設(shè)計與實時性分
摘要:針對某試飛課題,在NI LabVIEW 7.0平臺下進行了某試飛科目實時監(jiān)控軟件系統(tǒng)開發(fā)。飛行試驗中,實驗分析了影響該系統(tǒng)試飛參數(shù)時間歷程圖實時刷新的原因,提出了在飛行試驗實時監(jiān)控中,采用優(yōu)化VI及對Chart控件二次編程的方法解決Chart曲線圖實時刷新的問題。在此充分挖掘LabVIEW中Chart控件的屬性進行二次編程,解決試飛參數(shù)時間歷程圖實時刷新、顯示問題,具有很高的實用價值。
關(guān)鍵詞:VI的性能;VI執(zhí)行速度;數(shù)據(jù)更新;實時顯示
0 引言
LabVIEW軟件是一種可視化程度較高的圖形化編程工具,以其直觀清晰、簡明易學(xué)的優(yōu)點被作為初級編程者的首選。迄今為止,LabVIEW軟件已在石油、煤炭、工業(yè)自動測量與控制、航空及醫(yī)學(xué)儀器等領(lǐng)域相繼得到了成功應(yīng)用。飛行試驗實時監(jiān)控軟件是針對具體試飛科目而開發(fā)的專用型軟件,它要求數(shù)據(jù)傳輸安全、穩(wěn)定可靠及實時性好。目前,我院飛行試驗遙測實時監(jiān)控數(shù)據(jù)處理系統(tǒng)的客戶端實時監(jiān)控軟件,絕大多數(shù)情況下是采用NI LabVIEW的軟件開發(fā)平臺進行開發(fā)。該類型客戶端軟件,一般滿足了試飛課題的需求,保障了科研試飛。但是,針對一些實時性要求較高,試飛風(fēng)險較大的特定試飛科目,如何開發(fā)高性能的試飛科目時間歷程實時監(jiān)控軟件是本文研究的重點。
1 影響VI性能的因素
VI性能的好壞主要由VI的執(zhí)行時間、數(shù)據(jù)的刷新速度和VI內(nèi)存的使用三方面決定。
文件讀和寫、使用GPIB、數(shù)據(jù)采集及網(wǎng)絡(luò)應(yīng)用都影響VI的執(zhí)行時間。數(shù)據(jù)在屏幕上的刷新速度與程序中控制控件、顯示控件及與控制控件相關(guān)聯(lián)的控件數(shù)目有關(guān)。此外,合理使用和高效管理VI的內(nèi)存可以提高VI的性能。
2 提高VI執(zhí)行效率的方法
針對以上影響VI性能的因素,為提高VI的執(zhí)行效率,在進行某客戶端實時監(jiān)控軟件系統(tǒng)設(shè)計時,采用了以下編程技術(shù)來增強程序的可讀性。
(1)程序避免在循環(huán)體里計算。能在循環(huán)體外計算時,盡量將公式計算安排在循環(huán)體外。
(2)在滿足軟件設(shè)計要求的前提下,將前面板顯示控件較多,畫面布局大于屏幕尺寸的VI分割成幾個VI進行設(shè)計;或者將大的VI分割成子VI。
(3)當(dāng)VI程序框圖中使用較多矩陣(Array)或字符串(string)函數(shù)時,程序框圖中盡量少用全局變量或局部變量;且輸入矩陣和輸出矩陣盡量使用相同的數(shù)據(jù)類型。
(4)設(shè)計程序框圖時,盡量使輸出函數(shù)能復(fù)用輸入函數(shù)的內(nèi)存空間,尤其是使用矩陣、矩陣子集或字符串函數(shù)時。
(5)如果子VI的前面板不需要顯示,去掉子VI中不用的屬性節(jié)點。
(6)設(shè)計VI時,避免使用復(fù)雜的數(shù)據(jù)類型,開發(fā)高效的程序結(jié)構(gòu)。
(7)在VI屬性的“執(zhí)行”選項里面,將子VI的優(yōu)先級設(shè)置成“子程序”(subroutine),將主VI的優(yōu)先級設(shè)置為“優(yōu)先執(zhí)行”(time criti-cal Priority)的最高優(yōu)先級。
3 實時監(jiān)控中的應(yīng)用
在NI LabVIEW 7.0平臺下基于以上編程思想,進行了某課題實時監(jiān)控軟件的系統(tǒng)開發(fā)。以下是其中的部分監(jiān)控畫面。監(jiān)控畫面中用Waveform Chart控件來實時顯示參數(shù)的時間歷程曲線。根據(jù)軟件的設(shè)計要求,將Chart圖表的y軸設(shè)置成自動,x軸利用控件本身的可見屬性x Scrollbar來及時刷新圖表顯示。
圖1描述了數(shù)據(jù)源以1倍速率從服務(wù)器向客戶端VI發(fā)送網(wǎng)絡(luò)數(shù)據(jù),正常條件下,兩參數(shù)Par1和Par2的典型Chart趨勢圖。
保持客戶端與服務(wù)器的網(wǎng)絡(luò)通信狀態(tài)不變,將數(shù)據(jù)源以4倍速率從服務(wù)器向客戶端發(fā)送網(wǎng)絡(luò)數(shù)據(jù),客戶端監(jiān)控畫面中兩個參數(shù)曲線出現(xiàn)臺階式的跳點,對此現(xiàn)象不做任何處理,該現(xiàn)象一直持續(xù)。實時監(jiān)控中兩參數(shù)的曲線效果如圖2所示。產(chǎn)生圖2現(xiàn)象后,斷開服務(wù)器,停止向客戶端發(fā)送數(shù)據(jù),同時將客戶端VI重新打包生成.exe可執(zhí)行文件,然后服務(wù)器重新開始以4倍速率向客戶端發(fā)送網(wǎng)絡(luò)數(shù)據(jù)。VI執(zhí)行時,圖2所示現(xiàn)象消失,客戶端實時監(jiān)控畫面恢復(fù)良好。
評論