LABVIEW中如何正確理解EXPRESS XY GRAPH
XY圖可以說Labview數據圖形顯示控件最為靈活的控件,可以替代波形圖和波形圖表的絕大部分功能,其輸入參數形式有許多變化,在下面的兩篇文章中,具體討論了XYGRAPH的多種用法。
快速VI(EXPRESSVI)是LABVIEW提供的一套可以采用對話框快速配置的VI,非常有利于初學者使用。在快速VI中,提供了快速XYGRAPH,該VI可以實現連續的數據顯示,但是與我提及的數據緩沖區有很大區別。
上面所提及的數據緩沖區連續顯示數據類似于LABVIEW的波形圖表,本身保持一個設置為固定長度的數據緩沖區,當超過所設長度時,新的數據進入緩沖區時,原有的數據被丟棄。這樣XY圖始終顯示的最新數據,而且長度不變,控件顯示的是示波器的效果。
快速XY圖則不同,它有兩種不同的運行方式。

每次調用時是否清除數據決定了EXPRESSXYGRAPH的工作方式。
1、每次調用時清除數據,則EXPRESSXYGRAPH與一般的XYGRAPH沒有明顯的區別,輸入參數采用了兩個一維數組,這是XYGRAPH常見的工作方式。
2、每次調用不清除數據,則EXPRESSGRAPH內部記錄不斷累積的數據,也就是說它內部保持兩個不固定長度的一維數組,用來保存X數據和Y數據。
在每次調用不清除數據時要特別注意,與數據緩沖方式不同,EXPRESSXYGRAPH不是以移動的方式顯示數據,而是不斷增加數據,所用內存是不斷增加的。
為了正確理解快速XYGRAPH,我們分析一下,首先把快速XYVI轉換成一般的VI,分析一下它的工作原理,通過快捷菜單,選擇打開前面板。

下面跟蹤它的程序框圖。

從程序框圖可以看到,在連續顯示增加數據的情況下,它利用了XY圖的局部變量,取出原來的數據,利用BUILDARRAY函數不斷增加XY圖中的數據,這樣在長時間運行后,很容易導致內存濫用,而不釋放的情況,同時由于使用了局部變量,內存的使用是加倍的。這與我們所說的數據緩沖區是完全不同的。
另外,由于快速VI采用了動態數據,因此不斷地在進行數據類型轉換,這也是快速VI效率不高的原因之一。
從程序框圖上也可以看出,如果使用連續顯示的方式,我們必須監測累積數據的大小,在達到一定程度時,通過RESET,清除數據,釋放所用內存。
需要強調的是快速VI是在LABVIEW7.0后推出的,主要是簡化編程難度,但是運行效率顯然是不高的,同時也犧牲了靈活性,這也是熟悉LV的編程者一般不愿意使用快速VI的重要原因。
評論