基于LabVIEW的數(shù)據(jù)采集系統(tǒng)分析與設(shè)計(jì)
l.3 信號(hào)的保存
在信號(hào)采集模塊中,每次采集都默認(rèn)保存,而且采集信號(hào)每次保存后都會(huì)覆蓋上一個(gè),這樣,在程序運(yùn)行過程中,用戶可以隨機(jī)地保存標(biāo)準(zhǔn)信號(hào)。其方法是把默認(rèn)目錄下的test.1vb文件復(fù)制到想要保存的路徑下,然后通過讀取測(cè)量文件把該目錄下的波形提取出來。在此,標(biāo)準(zhǔn)信號(hào)的回放在信號(hào)處理的過程中已經(jīng)用波形圖的形式顯示出來,但要用到此處保存路徑的屬性節(jié)點(diǎn)。其保存標(biāo)準(zhǔn)信號(hào)的程序框圖如圖4所示。
2 設(shè)計(jì)模式的選擇
該程序的設(shè)計(jì)模式是基于事件結(jié)構(gòu)的人機(jī)界面(UI EventLoop),即用控件的事件結(jié)構(gòu)來響應(yīng)用戶操作。它可以避免因輪詢導(dǎo)致的CPU浪費(fèi),而且會(huì)自動(dòng)產(chǎn)生事件隊(duì)列,從而避免丟失事件。
事件結(jié)構(gòu)不僅使程序變得簡(jiǎn)單,提高了CPU的利用率,而且可以使幾個(gè)子程序同時(shí)運(yùn)行,從而在LabVIEW中實(shí)現(xiàn)多線程操作。這一性能取決于 LabVIEW是一種自動(dòng)多線程語言,它可自動(dòng)根據(jù)用戶編寫的程序決定線程的數(shù)目、分配、管理和切換等。而該線程的執(zhí)行系統(tǒng)則可在VI的屬性對(duì)話框中直接進(jìn)行配置。一般來說,一個(gè)獨(dú)立的循環(huán)或者子VI就是一個(gè)獨(dú)立的線程。前面板上的一個(gè)單擊事件響應(yīng)一個(gè)線程的執(zhí)行,但多個(gè)線程可以并行運(yùn)行,互不影響。
3 整體結(jié)構(gòu)
本系統(tǒng)中各個(gè)部分的模塊均可通過事件結(jié)構(gòu)來實(shí)現(xiàn),單擊前面板中相應(yīng)的操作程序,可相應(yīng)地運(yùn)行有關(guān)事件。前面板的整體結(jié)構(gòu)如圖5所示。
4 結(jié)束語
本系統(tǒng)可通過采集卡采集到由
評(píng)論