基于LabVIEW 7.0的某實時監(jiān)控軟件設計與實時性分
或者利用Chart的屬性節(jié)點函數(shù)編程將Chart歷史數(shù)據(jù)清空,同樣地,客戶端實時監(jiān)控Chart圖表曲線正常,參數(shù)Par1,Par2實時曲線如圖3所示。
對上述現(xiàn)象反復試驗多次,結論仍然成立。研究、對比分析后,得出如下結論:
(1)實時監(jiān)控軟件是網絡應用程序,它本身對VI的內存開銷較大,影響VI的執(zhí)行速度。當服務器向客戶端發(fā)送數(shù)據(jù)的速率較高時,即單位時間內VI前面板需要更新,顯示數(shù)據(jù)的頻率較快。
(2)Chart圖表數(shù)據(jù)更新的原理是將新的數(shù)據(jù)添加在舊數(shù)據(jù)之后,該VI中Chart的y軸使用了自動刻度。當參數(shù)Par1,Par2的y值隨時間瞬時變化時,Chart繪圖的基準點在不斷變化,使得繪圖曲線呈臺階式的現(xiàn)象。
(3)Chart圖表的數(shù)據(jù)緩存區(qū)能夠記憶顯示的數(shù)據(jù)點數(shù)。所以,當服務器數(shù)據(jù)發(fā)送中斷再重新開始發(fā)送時,原VI的Chart數(shù)據(jù)緩存區(qū)累計記憶著歷史數(shù)據(jù),當歷史數(shù)據(jù)累積到一定程度,數(shù)據(jù)緩存區(qū)又沒有完全釋放。此時,雖然數(shù)據(jù)緩存區(qū)還在不斷更新數(shù)據(jù),但新到的數(shù)據(jù)在Chart圖上未及時刷新繪制,同樣使得曲線呈臺階式跳點的現(xiàn)象。
(4)當斷開服務器,將VI重新打包時,打包后的VI所有數(shù)據(jù)緩存區(qū)都是置零的原始狀態(tài),重新接收數(shù)據(jù),Chart圖表曲線恢復良好。
(5)或者利用Chart控件的屬性節(jié)點,通過編程方法定時將Chart圖表的歷史數(shù)據(jù)清空,實際飛行試驗實時監(jiān)控中,Chart圖表曲線實時顯示正常。
(6)該實時監(jiān)控軟件,根據(jù)其設計要求,VI前面板使用了18個Chart圖表和大量字符串顯示控件,Chart圖表分別對稱置于前面板中,9個Chart圖表的垂直總高度尺寸大于顯示器屏幕的高度,這降低了VI的性能,很大程度上也影響了Chart圖表的刷新和實時顯示。
此外,Chart圖表的y軸使用了自動刻度(Auto Scale y),圖表啟用了圖例標記(Plot Legend),這些都對Chart圖表的刷新速度有一定程度的影響,但不是主要影響因素。
4 結語
NI LabVIEW作為一種圖形化的編程工具,以虛擬儀器、圖形化的編程語言等優(yōu)點降低了軟件的入門門檻。同時作為一種快速的軟件開發(fā)工具,縮短了軟件開發(fā)時間,節(jié)省了開發(fā)成本。本文從影響LabVIEW程序的性能因素出發(fā),結合手動編程巧妙地解決了Chart圖表數(shù)據(jù)實時刷新的問題。此外,在開發(fā)大型復雜的基于網絡應用的飛行試驗實時監(jiān)控系統(tǒng)方面,應將NI LabVIEW軟件平臺與Microsoft Visual studio和
Borland C++等開發(fā)工具有機結合起來,靈活地進行應用程序的開發(fā)。
評論