目前,在工業(yè)控制等領域,開發(fā)了大量實時趨勢曲線繪制軟件。但在非實時數(shù)據(jù)記錄領域,開發(fā)趨勢曲線繪制的較少,本文以非實時數(shù)據(jù)記錄儀曲線繪制軟件設計為對象,簡要介紹了數(shù)據(jù)記錄儀的數(shù)據(jù)采集過程,并在此基礎上重點介紹基于VB6.0的曲線繪制軟件的算法設計與實現(xiàn)。
本文中數(shù)據(jù)記錄儀主要是完成對某探測器獲取的目標回波信號和四路數(shù)字信號(如上電信號,識別信號等)的電壓等參數(shù)進行采樣,并將采集的數(shù)據(jù)保存在存儲器里。通過PC機串口讀出數(shù)據(jù)記錄儀存儲器中的數(shù)據(jù),經(jīng)過數(shù)據(jù)分析軟件實現(xiàn)對記錄的各路信號及相關參數(shù)的再現(xiàn)、分析和處理。系統(tǒng)工作過程如圖1所示。數(shù)據(jù)記錄儀接入探測器后,探測器和數(shù)據(jù)記錄儀同時上電。DSP在上電時完成初始化,打開捕獲中斷,為捕獲數(shù)字信號量做好準備,隨后DSP開始采樣模擬通道的數(shù)據(jù)。在采樣的過程中,如果有數(shù)字量產(chǎn)生,將產(chǎn)生捕獲中斷請求,在中斷服務程序中(捕獲中斷服務程序流程如圖2),將捕獲到的記數(shù)值寫入Flash,直到將Flash寫滿。試驗結(jié)束后,通過數(shù)據(jù)記錄儀與PC機串口通信,讀取數(shù)據(jù)并進行數(shù)據(jù)分析和
處理。捕獲中斷服務程序流程中寫入Flash的數(shù)據(jù)都大于3FFH是為了把它們從模擬信號中區(qū)分開來。因為A/D采樣結(jié)果為10位,采樣結(jié)果不會大于3FFH,而Flash為兩個8位單元存儲一個采樣結(jié)果(可存儲16位數(shù))。即巧妙的利用Flash存儲數(shù)據(jù)長度大于DSP采樣結(jié)果的數(shù)據(jù)長度來區(qū)別模擬信號與數(shù)字信號。
圖1 黑匣子工作過程
圖2 捕獲中斷服務程序流程
圖3 數(shù)據(jù)分析軟件流程圖
圖4 采樣數(shù)據(jù)在計算機中的存儲示意
圖5 文本文件數(shù)據(jù)依次全部賦值給一個數(shù)組的算法流程
圖6 多路信號的識別算法與曲線的繪制
數(shù)據(jù)記錄儀分析軟件是實現(xiàn)人機對話的界面軟件。它的核心任務是將采集到的、存儲在閃存中的數(shù)據(jù)通過計算機的串口讀入到計算機中,并繪制成曲線供設計人員參考。同時要求能通過串口發(fā)送指令,擦除閃存,以便下次采集數(shù)據(jù);能夠正確的反映采集數(shù)據(jù)的時間信息;能夠?qū)Σ杉臄?shù)據(jù)和分析結(jié)果進行管理;能夠盡量保證數(shù)據(jù)的正確性、可靠性;能夠在算法上保證分析速度快等。軟件設計的系統(tǒng)框圖如圖3所示。
首先,利用VB6.0中MSComm控件實現(xiàn)串口通信,讀取Flash中的采樣數(shù)據(jù)。要注意Flash中存儲單元數(shù)據(jù)是8位的,而A/D采樣數(shù)據(jù)是10位,在讀flash時,在算法上就必須考慮將兩個數(shù)據(jù)單元合并為一個單元。同時,F(xiàn)lash中存儲的數(shù)據(jù)是字節(jié)型的,在讀取數(shù)據(jù)的過程中,將數(shù)據(jù)直接由十六進制轉(zhuǎn)化為十進制,可以簡化算化。本設計中,首先要把動態(tài)數(shù)組定義為字節(jié)類型;其次,把InputMode屬性值設置為1,表示以二進制形式讀取。另外,把讀取的高位數(shù)據(jù)乘以256,再與低位相加,即可將數(shù)據(jù)直接由十六進制轉(zhuǎn)化為十進制。
對采樣數(shù)據(jù)進行處理,即將從Flash中讀出并保存在PC機中文本文件的數(shù)據(jù)依次全部賦值給一個數(shù)組。這樣,按照時間先后順序采集到的數(shù)據(jù),將依次放在一個數(shù)組中。這就為曲線的繪制和時間坐標的確定作好了準備。采樣數(shù)據(jù)保存在PC機中格式如圖4,數(shù)據(jù)是以文件追加的方式保存在文本文件中的。在VB6.0中,打開文本并實現(xiàn)數(shù)據(jù)依次全部賦值給一個數(shù)組的算法流程如圖6。實踐證明,采用圖4的保存格式和圖5的算法,能顯著提高數(shù)據(jù)處理速度。
圖7 某時刻模擬通道與數(shù)字通道四示波器采樣圖
圖8 某時刻模擬通道與數(shù)字通道四數(shù)據(jù)恢復圖形
繪制采樣數(shù)據(jù)曲線就是將采集到的數(shù)據(jù)以曲線的形式表現(xiàn)出來。同時將一些所需要的參數(shù)體現(xiàn)出來。在VB6.0中,畫連接線時,前一條線的終點就是后一條線的起點。繪制曲線時,每個畫面顯示10000個采樣點,第二個畫面從10001顯示下面的10000個采樣數(shù)據(jù),依次類推,完成所有采樣點的繪制。多路信號的識別算法與曲線的繪制如圖6。模擬信號和數(shù)字信號的區(qū)別是通過不同顏色來區(qū)分的。
示波器采樣圖形如圖7,分析軟件恢復圖形如圖8。從以上兩圖可以看出,分析軟件恢復出了正確的圖形。圖9中信號負壓部分被削去。這是信號調(diào)理電路作用的結(jié)果。同時,由于毫米波探測器非常靈敏,其低噪在不同外部環(huán)境中變化較大,且在飛行階段不易有示波器檢測。因此兩個圖中的低噪存在一定差異。數(shù)據(jù)記錄儀在實際應用中取得了好的效果,對于獲取有效的試驗數(shù)據(jù),分析試驗結(jié)果起到了很好的作用。
[1]王和平,等編著.TMS320LF240X DSP C語言開發(fā)應用[M].北京:北京航空航天大學出版社,2003.1.
[2]范逸之,陳立元,孫德萱,程正孚.利用Visual Basic實現(xiàn)串并行通信技術(shù)[M].北京:清華大學出版社,2001.3.