目前,在工業控制等領域,開發了大量實時趨勢曲線繪制軟件。但在非實時數據記錄領域,開發趨勢曲線繪制的較少,本文以非實時數據記錄儀曲線繪制軟件設計為對象,簡要介紹了數據記錄儀的數據采集過程,并在此基礎上重點介紹基于VB6.0的曲線繪制軟件的算法設計與實現。
本文中數據記錄儀主要是完成對某探測器獲取的目標回波信號和四路數字信號(如上電信號,識別信號等)的電壓等參數進行采樣,并將采集的數據保存在存儲器里。通過PC機串口讀出數據記錄儀存儲器中的數據,經過數據分析軟件實現對記錄的各路信號及相關參數的再現、分析和處理。系統工作過程如圖1所示。數據記錄儀接入探測器后,探測器和數據記錄儀同時上電。DSP在上電時完成初始化,打開捕獲中斷,為捕獲數字信號量做好準備,隨后DSP開始采樣模擬通道的數據。在采樣的過程中,如果有數字量產生,將產生捕獲中斷請求,在中斷服務程序中(捕獲中斷服務程序流程如圖2),將捕獲到的記數值寫入Flash,直到將Flash寫滿。試驗結束后,通過數據記錄儀與PC機串口通信,讀取數據并進行數據分析和
處理。捕獲中斷服務程序流程中寫入Flash的數據都大于3FFH是為了把它們從模擬信號中區分開來。因為A/D采樣結果為10位,采樣結果不會大于3FFH,而Flash為兩個8位單元存儲一個采樣結果(可存儲16位數)。即巧妙的利用Flash存儲數據長度大于DSP采樣結果的數據長度來區別模擬信號與數字信號。

圖1 黑匣子工作過程

圖2 捕獲中斷服務程序流程

圖3 數據分析軟件流程圖

圖4 采樣數據在計算機中的存儲示意

圖5 文本文件數據依次全部賦值給一個數組的算法流程

圖6 多路信號的識別算法與曲線的繪制
數據記錄儀分析軟件是實現人機對話的界面軟件。它的核心任務是將采集到的、存儲在閃存中的數據通過計算機的串口讀入到計算機中,并繪制成曲線供設計人員參考。同時要求能通過串口發送指令,擦除閃存,以便下次采集數據;能夠正確的反映采集數據的時間信息;能夠對采集的數據和分析結果進行管理;能夠盡量保證數據的正確性、可靠性;能夠在算法上保證分析速度快等。軟件設計的系統框圖如圖3所示。
首先,利用VB6.0中MSComm控件實現串口通信,讀取Flash中的采樣數據。要注意Flash中存儲單元數據是8位的,而A/D采樣數據是10位,在讀flash時,在算法上就必須考慮將兩個數據單元合并為一個單元。同時,Flash中存儲的數據是字節型的,在讀取數據的過程中,將數據直接由十六進制轉化為十進制,可以簡化算化。本設計中,首先要把動態數組定義為字節類型;其次,把InputMode屬性值設置為1,表示以二進制形式讀取。另外,把讀取的高位數據乘以256,再與低位相加,即可將數據直接由十六進制轉化為十進制。
對采樣數據進行處理,即將從Flash中讀出并保存在PC機中文本文件的數據依次全部賦值給一個數組。這樣,按照時間先后順序采集到的數據,將依次放在一個數組中。這就為曲線的繪制和時間坐標的確定作好了準備。采樣數據保存在PC機中格式如圖4,數據是以文件追加的方式保存在文本文件中的。在VB6.0中,打開文本并實現數據依次全部賦值給一個數組的算法流程如圖6。實踐證明,采用圖4的保存格式和圖5的算法,能顯著提高數據處理速度。

圖7 某時刻模擬通道與數字通道四示波器采樣圖

圖8 某時刻模擬通道與數字通道四數據恢復圖形
繪制采樣數據曲線就是將采集到的數據以曲線的形式表現出來。同時將一些所需要的參數體現出來。在VB6.0中,畫連接線時,前一條線的終點就是后一條線的起點。繪制曲線時,每個畫面顯示10000個采樣點,第二個畫面從10001顯示下面的10000個采樣數據,依次類推,完成所有采樣點的繪制。多路信號的識別算法與曲線的繪制如圖6。模擬信號和數字信號的區別是通過不同顏色來區分的。
示波器采樣圖形如圖7,分析軟件恢復圖形如圖8。從以上兩圖可以看出,分析軟件恢復出了正確的圖形。圖9中信號負壓部分被削去。這是信號調理電路作用的結果。同時,由于毫米波探測器非常靈敏,其低噪在不同外部環境中變化較大,且在飛行階段不易有示波器檢測。因此兩個圖中的低噪存在一定差異。數據記錄儀在實際應用中取得了好的效果,對于獲取有效的試驗數據,分析試驗結果起到了很好的作用。
[1]王和平,等編著.TMS320LF240X DSP C語言開發應用[M].北京:北京航空航天大學出版社,2003.1.
[2]范逸之,陳立元,孫德萱,程正孚.利用Visual Basic實現串并行通信技術[M].北京:清華大學出版社,2001.3.