基于LabVIEW的四通道多參數(shù)測試系統(tǒng)軟件設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了基于MSP430單片機(jī)的四通道多參數(shù)和測試軟件的功能模塊,討論了該軟件的設(shè)計(jì)問題。軟件是在LabVIEW開發(fā)平臺上開發(fā)的,具有友好的可視化界面和結(jié)構(gòu)化設(shè)計(jì)。軟件經(jīng)過系統(tǒng)的聯(lián)合調(diào)試后,實(shí)現(xiàn)了四通道信號曲線的實(shí)時(shí)顯示、存儲、對電路進(jìn)行編程控制,具有很好的穩(wěn)定性和可操作性,完成了系統(tǒng)所要求的各項(xiàng)指標(biāo)和功能。
關(guān)鍵詞:LabVIEW;數(shù)據(jù)采集;實(shí)時(shí)顯示
隨著工業(yè)控制技術(shù)與計(jì)算機(jī)技術(shù)的發(fā)展,基于計(jì)算機(jī)硬件和軟件的數(shù)據(jù)采集與控制系統(tǒng)已成為工業(yè)控制的主流?;贚abVIEW開發(fā)的測控系統(tǒng),在工程和科研的各個(gè)領(lǐng)域得到了廣泛應(yīng)用。LabVIEW是美國國家儀器公司推出的一個(gè)圖形化編程的軟件開發(fā)環(huán)境。是一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。由于LabVIEW功能強(qiáng)大且靈活,利用它可以方便快捷地建立自己的虛擬儀器,成為測試、測量和控制設(shè)計(jì)的專用工具,其范圍可從溫度監(jiān)控到復(fù)雜的仿真和控制系統(tǒng)。本文主要介紹了基于LabVIEW測試系統(tǒng)軟件,該軟件具有數(shù)據(jù)采集、處理、分析和電路編程能力,能夠提供豐富的數(shù)據(jù)信息,生成信號曲線,具有較高的實(shí)時(shí)性、準(zhǔn)確性和可擴(kuò)展性。通過軟件可以幫助實(shí)驗(yàn)人員實(shí)時(shí)觀察要測量的壓力、加速度、溫度、電量;確定系統(tǒng)的正常運(yùn)行,對于及時(shí)發(fā)現(xiàn)和解決問題具有重要作用。
1 系統(tǒng)的基本結(jié)構(gòu)
四通道多參數(shù)測試系統(tǒng)采用均勻采樣策略,對被測信號進(jìn)行等時(shí)間間隔采樣,在測試過程中采樣的頻率為一常數(shù)。均勻采樣頻率確定的基礎(chǔ)是采樣定理,它至少要大于被測信號最大頻率的兩倍,同時(shí),還要考慮測量時(shí)間T及存儲容量M等因素,應(yīng)滿足2fa≤fs≤M/T。
系統(tǒng)采用壓力傳感器、加速度計(jì)等對四路信號進(jìn)行采集,采集后的數(shù)據(jù)經(jīng)信號調(diào)理電路進(jìn)行濾波及放大處理后送入MSP430單片機(jī),利用單片機(jī)中自帶的A/D轉(zhuǎn)換器將模擬信號轉(zhuǎn)變成數(shù)字信號。該系統(tǒng)的采樣頻率為1 kHz,單片機(jī)通過片選(STE)信號控制按順序接收四個(gè)通道轉(zhuǎn)化的數(shù)據(jù),將數(shù)據(jù)通過單片機(jī)SPI口以100 Hz發(fā)送。采集的數(shù)據(jù)一方面存入FLASH中,另一方面通過計(jì)算機(jī)軟件進(jìn)行控制把數(shù)據(jù)經(jīng)USB接口電路讀入計(jì)算機(jī)中實(shí)時(shí)保存,并在軟件中實(shí)時(shí)顯示出四個(gè)通道的溫度曲線。系統(tǒng)的基本結(jié)構(gòu)如圖1所示。
2 系統(tǒng)的軟件設(shè)計(jì)
軟件部分是整個(gè)引信測試系統(tǒng)設(shè)計(jì)的核心,軟件的設(shè)計(jì)使得用戶可以通過計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)的采集、顯示、分析處理和存儲,并且可以對測試電路進(jìn)行編程來改變測試電路的工作參數(shù)。本系統(tǒng)的軟件部分主要包括:采樣讀數(shù)、電路編程、數(shù)據(jù)定標(biāo)、多通道顯示等。
2.1 采樣讀數(shù)
引信測試系統(tǒng)軟件的核心是采樣讀數(shù),采樣讀數(shù)模塊是通過連接USB接口來采集獲取測試儀器的數(shù)據(jù)。采樣讀數(shù)包含兩部分:讀取存儲數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)。
讀取實(shí)時(shí)數(shù)據(jù)就是在測試過程中對數(shù)據(jù)進(jìn)行實(shí)時(shí)的采集并通過USB接口傳遞給上位機(jī)軟件,軟件接收到數(shù)據(jù)后對數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理、保存,并動(dòng)態(tài)顯示信號曲線。測試實(shí)時(shí)曲線顯示用波形圖作為容器,波形圖控件包括圖形工具選板和游標(biāo)圖例,通過波形工具選板可以實(shí)現(xiàn)對波形的放大、縮小和平移;游標(biāo)圖例可以實(shí)現(xiàn)對信號曲線定點(diǎn)坐標(biāo)的獲取。這些功能可以幫助實(shí)驗(yàn)人員實(shí)時(shí)分析信號參數(shù)及發(fā)現(xiàn)問題。讀取存儲數(shù)據(jù)就是在試驗(yàn)結(jié)束之后通過USB接口將數(shù)據(jù)從儀器中的FLASH中讀出,然后將數(shù)據(jù)以文件形式保存在計(jì)算機(jī)中并在屏幕上顯示出信號曲線。采樣讀數(shù)的部分程序如圖2所示。
2.2 電路編程
根據(jù)每次試驗(yàn)的不同情況,需要根據(jù)實(shí)驗(yàn)的環(huán)境和實(shí)驗(yàn)要求對硬件電路進(jìn)行重新設(shè)置,電路編程模塊通過USB讀數(shù)口可以方便快捷地對硬件電路進(jìn)行重新設(shè)置,電路編程模塊實(shí)現(xiàn)了設(shè)定電路的存儲器容量、延遲時(shí)間、環(huán)境控制和采樣策略選擇等。
2.3 定標(biāo)讀值
定標(biāo)讀值是指通過事先對電路和傳感器標(biāo)定的靈敏度將各通道的數(shù)字量轉(zhuǎn)換成其具有物理意義的信號量,使波形圖顯示的原始曲線轉(zhuǎn)換成相應(yīng)的加速度-時(shí)間等曲線。在定標(biāo)界面中可以對標(biāo)定了的數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)處理,例如數(shù)據(jù)轉(zhuǎn)換、打印等。
2.4 導(dǎo)出波形
通過導(dǎo)出波形模塊用戶可以將波形圖中顯現(xiàn)的曲線圖以圖片的形式保存在計(jì)算機(jī)中,方便用戶打印輸出、存檔保存以便日后查閱。該功能的實(shí)現(xiàn)通過波形圖的屬性節(jié)點(diǎn)調(diào)用實(shí)現(xiàn)。
2.5 多通道顯示
多通道顯示模塊允許用戶通過對通道的選擇來顯示某一通道的數(shù)據(jù)曲線,也可以同時(shí)顯示四個(gè)通道的數(shù)據(jù)曲線并以不同的顏色來顯示各個(gè)通道的數(shù)據(jù)曲線,方便用戶對曲線進(jìn)行觀察和對比,在LabVIEW中通過復(fù)選框?qū)崿F(xiàn)各個(gè)通道的選擇。
3 軟件的關(guān)鍵問題
3.1 通道數(shù)據(jù)分離和糾錯(cuò)
在數(shù)據(jù)采集的過程中,四路信號是同時(shí)存儲的。當(dāng)在存儲數(shù)據(jù)和顯示數(shù)據(jù)曲線時(shí),需要對數(shù)據(jù)進(jìn)行處理,防止讀取或存儲的數(shù)據(jù)發(fā)生錯(cuò)位現(xiàn)象,同時(shí)便于對錯(cuò)誤進(jìn)行跟蹤查找,最終能使各通道數(shù)據(jù)能夠完整地整合到一起。因此采取了相應(yīng)的措施,在每個(gè)數(shù)據(jù)存儲的過程中給每個(gè)通道的信號加上通道信息。
當(dāng)多路信號采集完一個(gè)周期后,存儲一些通道信息作為區(qū)分每包數(shù)據(jù)的信號。這樣即使某包數(shù)據(jù)出了問題,也可以很容易地確定各個(gè)通道信號的數(shù)據(jù),不會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)位現(xiàn)象。通過判斷數(shù)據(jù)的通道號來確定數(shù)據(jù)是否正確,當(dāng)出現(xiàn)錯(cuò)誤時(shí)用相對應(yīng)的上一包的數(shù)據(jù)進(jìn)行替換,具體步驟如圖3所示。
3.2 動(dòng)態(tài)鏈接庫的調(diào)用
動(dòng)態(tài)鏈接庫(DLL)是存放在.dll文件中編譯過的小型庫文件,該文件封裝了一些功能和代碼及一組接口函數(shù)供LabVIEW調(diào)用,應(yīng)用程序可以在運(yùn)行時(shí)鏈接并使用它。在LabVIEW中提供了調(diào)用庫函數(shù)節(jié)點(diǎn),通過該節(jié)點(diǎn)進(jìn)行配置就可以調(diào)用DLL。
動(dòng)態(tài)鏈接庫的工作原理如下:當(dāng)它收到應(yīng)用程序的數(shù)據(jù)傳輸請求后,會(huì)創(chuàng)建兩個(gè)線程:數(shù)據(jù)傳輸線程和記錄、顯示線程,其中數(shù)據(jù)傳輸線程負(fù)責(zé)將數(shù)據(jù)寫到應(yīng)用程序要提交的內(nèi)存;而記錄、顯示線程則負(fù)責(zé)給應(yīng)用程序發(fā)送記錄和顯示消息。當(dāng)應(yīng)用程序接收到此消息后,便從它提交的內(nèi)存中讀取數(shù)據(jù)并存。
用戶應(yīng)用程序的主要功能是開啟或關(guān)閉USB設(shè)備、檢測USB設(shè)備、設(shè)置數(shù)據(jù)傳輸幀數(shù)、通過USB接口傳輸并顯示數(shù)據(jù),本系統(tǒng)軟件調(diào)用DLL68013.dll庫文件對USB設(shè)備進(jìn)行控制。下面就本系統(tǒng)信號采集關(guān)鍵DLL函數(shù)進(jìn)行簡單的說明,這些都在調(diào)用庫函數(shù)節(jié)點(diǎn)的配置中進(jìn)行設(shè)定,在配置過程中要注意調(diào)用規(guī)范,該系統(tǒng)采用stdcall(WINAPI)。
①TranVerCmmd(),該函數(shù)是向USB設(shè)備中發(fā)送控制命令,用于控制USB設(shè)備,該函數(shù)就一個(gè)參數(shù),向這個(gè)函數(shù)發(fā)送HB4初始化讀數(shù)口控制命令。
②BulkWrite(),該函數(shù)是控制向設(shè)備中發(fā)送數(shù)據(jù),包括三個(gè)參數(shù),第一個(gè)參數(shù)是要操作的管道號,第二個(gè)參數(shù)是要寫入的數(shù)據(jù),第三個(gè)參數(shù)是數(shù)據(jù)的大小。
③BulkRead(),該函數(shù)是控制向設(shè)備中發(fā)送數(shù)據(jù),包括三個(gè)參數(shù),第一個(gè)參數(shù)是要操作的管道號,第二個(gè)參數(shù)是要讀取的數(shù)據(jù),第三個(gè)參數(shù)是數(shù)據(jù)的大小。
采樣模塊調(diào)用庫函數(shù)節(jié)點(diǎn)的部分程序如圖4所示。
4 測試結(jié)果及結(jié)論
4.1 測試結(jié)果
在一次測試的試驗(yàn)中,對四個(gè)通道信號進(jìn)行數(shù)據(jù)采集,其結(jié)果如圖5所示。從圖中可以清楚地觀察到各個(gè)參數(shù)的變化,測試數(shù)據(jù)保存在二進(jìn)制文件中,數(shù)據(jù)還可以生成Excel報(bào)表文件以便用戶參考分析。
4.2 測試結(jié)論
四通道多參數(shù)測試軟件通過了系統(tǒng)的聯(lián)合調(diào)試,成功地實(shí)現(xiàn)了數(shù)據(jù)的接收、顯示、處理、存儲、回放等功能。聯(lián)合調(diào)試的結(jié)果充分說明系統(tǒng)可以在Windows的平臺上平穩(wěn)運(yùn)行,數(shù)據(jù)接收與顯示的實(shí)時(shí)性完全滿足要求。由于系統(tǒng)有很強(qiáng)的數(shù)據(jù)回放能力,用戶可以在每次試驗(yàn)后,反復(fù)研究本次試驗(yàn)數(shù)據(jù),這對及時(shí)發(fā)現(xiàn)、分析和排除故障、提高效率是非常有效的。