姜波 陳馨 張聰 付志超
(中國船舶重工集團公司七一二研究所,武漢 430064)
在工廠自動化、地理遙感與地球物理、鐵路鐵軌、橋梁涵洞、公路運輸等大量數據的測試與測量領域,數據采集與回放系統得到廣泛應用。本文以 LabVIEW 為開發平臺,將特定參量作為處理對象,構建出一個功能較為完善的歷史數據回放系統。
LabVIEW 是一種用圖標代替文本行創建應用程序的圖形化編程語言[1],其基本思想是“軟件即是儀器”[2],它是以計算機軟、硬件技術為核心,以自動控制技術、傳感器技術、現代信號處理技術、現代網絡技術、數值分析技術為支撐,以各專業學科為應用背景的現代測試技術。它利用高性能的模塊化集成化概念和方法,結合軟件設計平臺高效、簡便的程序編譯功能,依據用戶各類特殊需求創建出人機對話界面,實現并取代了很多特殊、昂貴的測試儀器的功能。
傳統文本編程語言根據語句和指令決定程序的執行順序,而 LabVIEW 采用數據流編程方式[3],程序框圖中節點之間的數據流向決定了程序的執行順序。LabVIEW的軟件編程界面包括前面板和程序框圖兩部分。前面板提供非常多的類示波器控件,用來創建用戶界面,方便人機交流與對話,可使用工具和控件選板。程序框圖以圖標、連線、結構框體為主體,圖標表示函數,連線表示數據流向,其顏色代表不同的數據類型,也可象VC一樣在程序中添加文字性說明,可使用工具與函數選板。前面板中的每一個控件與程序框圖中一個對象相對應,兩者的界面類似,都采用window的通用軟件界面,且可顯示單步運行、連續運行、步進運行,對用戶調試程序很有幫助。
在面向對象的編程中,將類中定義的數據稱為屬性,而函數稱為方法。LabVIEW中一切對象均有屬性,所謂屬性是指 LabVIEW 中預定義的用來描述對象狀態的數據。改變對象的屬性將改變對象相應的狀態。LabVIEW為所有用戶可能接觸到的對象預定義了非常豐富的屬性,使得 Lab VIEW 的開發具有很強的靈活性和功能性,可實現各種想象得到的高級功能和豐富效果,而某些控件必須通過屬性節點才能使用。屬性節點可以用來通過編程設置或獲取控件的屬性。
創建屬性節點有兩種方法,一種是在程序框圖中直接右擊控件圖標,選擇Create/Property No de選項,在彈出的下一級菜單中選擇想設置或獲取的屬性,即可創建該屬性節點;另一種方法是在Functions Palette中選擇Programming/Applicat ion Control/Property Node選項,右擊該屬性節點選擇 Link to到想設置或獲取屬性的控件,即可創建該屬性節點。
屬性節點由三部分組成,標簽、引用輸入和輸出端、屬性名及其輸入或輸出端。引用輸入與輸出端之間的條形顏色隨著屬性節點所屬控件輸入或輸出的數據不同而改變。在已創建的屬性節點條形顏色框上單擊左鍵可選定該屬性節點,單擊右鍵彈出下圖1所示菜單。在屬性名上單擊鼠標左鍵可改變已設置控件的屬性,如下圖2所示,單擊右鍵彈出下圖3所示菜單。對于每一個屬性節點,鼠標放在其上時會顯示上下可拉伸的標志,在該標志上按住鼠標左鍵不放,向上或向下移動鼠標即可同時顯示或設置多個屬性。
一般而言,回放系統由數據通道選擇、歷史數據加載、數據圖象變換、回放處理及參量計算等幾大部分組成。其系統框圖如下圖4所示。
一般數據存儲有多個通道構成,且通道選擇應具有實時性和可重復性。數據加載可使用的文件類型很多,這里我們選擇TDMS文件類型。T DMS是以流文件的形式存儲數據,讀取速度相對于 TDM而言更快,使用簡單方便,適合于我們目前的存儲需要。波形變換主要是獲得波形的局部特征和整體概貌。此外,參數計算也是回放中必不可少的一環。大量的數據信息必須被統計和歸整,便于使用者定量地了解回放數據的特性。




由以上幾部分組成的回放系統[4]功能完整,界面采用類示波器的設計。波形顯示區域下方為回放進度條,右側是當前波形通道的名稱與顏色信息。波形調節與控制區設有文件路徑選擇框、加載、左右移動、暫停、停止、通道選擇、參量選擇等按鈕、加載完成指示燈、時基幅基選擇下拉列表、相對與絕對時間切換開關、游標信息圖表。下圖5為該軟件完整的前面板展示。

歷史數據加載和通道選擇[5]部分如下圖6所示。程序使用了條件結構和層疊順序結構,按先選定后加載的次序進行數據加載。在存儲數據時,已經將通道賦予了名稱,因此在加載時我們就據此加載數據。
數組由布爾和字符串組成的簇元素構成,字符串作為輸入通道名,布爾值作為條件結構的選擇信號輸入。使用 for循環來給選定通道的曲線賦予編號(編號要從0開始,否則程序會報錯),將選定通道的名稱作為曲線名。圖例的寬度應該與通道數成正比,我們用移位寄存器統計選定通道的數量,以確定圖例寬度(注意,此寬度與顯示器的分辨率有關)。已選通道出for循環后形成一新數組,使用TDMS讀取函數讀取該數組,在波形圖上顯示曲線。

圖6 數據加載和通道選擇
一般回放系統應具備以下功能:圖象可雙向移動,暫停和停止,回放速度可調,回放進度條顯示,回放時間顯示,磁盤空間使用情況顯示,相對時間軸和絕對時間軸的轉換,游標定位,顯示區域跳轉。本模塊的程序框圖如下圖7所示。

在具體的程序編程中,我們使用了下圖6所示的以屬性節點為主的回放模塊。圖中兩個波形圖屬性節點XScale.Minimum和XScale.Maximum分別起到接收和發送數據的作用,同時也作為暫存器使用,結合循環結構實現數據回放。用三個條件選擇結構實現暫停鍵對左右移動鍵的控制,數據圖象的向左和向右移動,用移動按鈕布爾控件的局部變量實現雙鍵互鎖,循環結構的條件接線端用停止按鈕作為輸入,起到程序整體控制的作用。而另兩個屬性節點 XScale.Increment則獲取波形圖像的增量值,將回放速度與波形圖象增量值相匹配,達到了較好的回放效果。在數據回放的過程中,根據數據量的大小,須調節回放的速度,可用定時結構的控件改變回放速度。
在回放的過程中,對數據圖像的一系列變換具有重要意義。我們不僅要了解一段時間內數據波形的整體概貌,而且對感興趣的局部也想做進一步的觀察,以便得出特定的結論和相應的處理手段。波形變化有很多種,時基幅基變換即為其中一種,下圖8所示為時基幅基變換的程序方框圖。圖中用帶多個分支的事件結構實現時基、幅基的變換。時基和幅基的下拉列表作為條件結構的選擇信號輸入。波形圖的屬性節點XScale.Min imum獲取當前波形圖像的初始值,條件結構中的各個分支具體規定了圖像的變換方法,這些分支可隨時增加和減少,以適應廣泛的變換需求,每條分支中的數據可按要求修改,以調節圖像的具體時基與幅基值。圖9為時基和幅基均改變的波形對照圖。

圖10所示為計算有效值的程序框圖??驁D使用了Functions Palette/programming/waveform/An alog Waveform/Waveform Measurement中的基本平均直流-均方根函數,在這個地方還有很多其他函數供用戶使用,可計算平均值、瞬態值等等?;酒骄绷?均方根函數的輸入是 TDMS數據流,將其轉換為動態數據提供給創建表格函數,轉置后形成表格。

經運行與測試,本程序針對500 M以下的數據量運行狀態良好,載入速度較快,回放功能正常,波形變換具有較好的實時性,能實現回放系統的絕大部分功能。
[1] 張桐, 陳國順, 王正林. 精通 LabVIEW 程序設計.北京: 電子工業出版社, 2008, 12.
[2] 陳錫輝, 張銀鴻. LabVIEW 8.20程序設計從入門到精通. 北京: 清華大學出版社, 2007, 7.
[3] 江建軍, 劉繼光. LabVIEW 程序設計教程. 北京:電子工業出版社, 2008.3.
[4] 張寧, 王言章. 便攜式動態心電記錄儀及數據回放系統設計. 長春理工大學學報, 2006, 29(4).
[5] 劉卓, 張維競, 聶鵬瑜. 基于 LabVIEW 平臺的數據回放系統設計. 儀表技術, 2003, (6).