<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 基于LabVIEW 7.0的某實時監(jiān)控軟件設計與實時性分

          基于LabVIEW 7.0的某實時監(jiān)控軟件設計與實時性分

          作者: 時間:2011-07-25 來源:網絡 收藏

          b.JPG


          或者利用Chart的屬性節(jié)點函數(shù)編程將Chart歷史數(shù)據(jù)清空,同樣地,客戶端Chart圖表曲線正常,參數(shù)Par1,Par2實時曲線如圖3所示。
          對上述現(xiàn)象反復試驗多次,結論仍然成立。研究、對比后,得出如下結論:
          (1)軟件是網絡應用程序,它本身對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ù)清空,實際飛行試驗中,Chart圖表曲線實時顯示正常。
          (6)該實時監(jiān)控軟件,根據(jù)其設計要求,VI前面板使用了18個Chart圖表和大量字符串顯示控件,Chart圖表分別對稱置于前面板中,9個Chart圖表的垂直總高度尺寸大于顯示器屏幕的高度,這降低了VI的性能,很大程度上也影響了Chart圖表的刷新和實時顯示。
          此外,Chart圖表的y軸使用了自動刻度(Auto Scale y),圖表啟用了圖例標記(Plot Legend),這些都對Chart圖表的刷新速度有一定程度的影響,但不是主要影響因素。

          4 結語
          NI 作為一種圖形化的編程工具,以虛擬儀器、圖形化的編程語言等優(yōu)點降低了軟件的入門門檻。同時作為一種快速的軟件開發(fā)工具,縮短了軟件開發(fā)時間,節(jié)省了開發(fā)成本。本文從影響程序的性能因素出發(fā),結合手動編程巧妙地解決了Chart圖表數(shù)據(jù)實時刷新的問題。此外,在開發(fā)大型復雜的基于網絡應用的飛行試驗實時監(jiān)控系統(tǒng)方面,應將NI 軟件平臺與Microsoft Visual studio和
          Borland C++等開發(fā)工具有機結合起來,靈活地進行應用程序的開發(fā)。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();