基于虛擬儀器的電梯上行超速保護(hù)裝置檢測(cè)系統(tǒng)
4 檢測(cè)系統(tǒng)的軟件設(shè)計(jì)
在虛擬儀器檢測(cè)系統(tǒng)中軟件系統(tǒng)扮演著非常重要的角色,是系統(tǒng)的關(guān)鍵。軟件平臺(tái)選擇了圖形化編程軟件LabVIEW,它是一個(gè)完全的、開(kāi)放的虛擬儀器開(kāi)發(fā)系統(tǒng)的應(yīng)用軟件,并且具有編程簡(jiǎn)單、直觀(guān)、開(kāi)發(fā)效率高等優(yōu)點(diǎn)。
該檢測(cè)系統(tǒng)軟件的主要作用是實(shí)現(xiàn):連續(xù)可靠信號(hào)的實(shí)時(shí)數(shù)據(jù)采集;將采集的數(shù)據(jù)以數(shù)字或圖形的形式實(shí)時(shí)顯示;數(shù)據(jù)存儲(chǔ)至硬盤(pán);保證信號(hào)采集的成功判別;數(shù)據(jù)的同時(shí)采集和顯示;歷史數(shù)據(jù)的查詢(xún)、再現(xiàn)和打印等功能。
軟件系統(tǒng)總體框圖如圖4所示。
由圖4可以直觀(guān)地看到主控模塊作為整個(gè)系統(tǒng)的調(diào)度中心,控制著系統(tǒng)的控制流(→)和數(shù)據(jù)流(→)的流向。數(shù)據(jù)流從數(shù)據(jù)采集模塊開(kāi)始分別流向數(shù)據(jù)存儲(chǔ)模塊和數(shù)據(jù)分析處理模塊,采集到的數(shù)據(jù)通過(guò)數(shù)據(jù)存儲(chǔ)模塊進(jìn)行存儲(chǔ),同時(shí)經(jīng)過(guò)數(shù)據(jù)分析模塊的判斷,在計(jì)算機(jī)屏幕上進(jìn)行實(shí)時(shí)顯示。如果用戶(hù)需要對(duì)歷史數(shù)據(jù)進(jìn)行查詢(xún)時(shí),則啟動(dòng)歷史查詢(xún)模塊即可對(duì)歷史數(shù)據(jù)進(jìn)行曲線(xiàn)和數(shù)據(jù)的顯示。
程序設(shè)計(jì)最重要的部分是數(shù)據(jù)采集模塊,主要任務(wù)是完成對(duì)數(shù)據(jù)的采集、波形的顯示及回放和數(shù)據(jù)的存儲(chǔ)。
數(shù)據(jù)采集模塊設(shè)計(jì)如下:
先將初始化函數(shù)、啟動(dòng)板卡函數(shù)和讀取數(shù)據(jù)等對(duì)儀器進(jìn)行配置和數(shù)據(jù)讀取的函數(shù)做成動(dòng)態(tài)鏈接庫(kù)。然后通過(guò)主程序調(diào)用動(dòng)態(tài)鏈接庫(kù)里的函數(shù)來(lái)實(shí)現(xiàn)對(duì)儀器的操作,一般調(diào)用過(guò)程如下:加載動(dòng)態(tài)鏈接庫(kù),再獲取函數(shù)的指針,之后利用指針來(lái)調(diào)用函數(shù)。系統(tǒng)的數(shù)據(jù)采集器采用的是AD8201,它是USBI.1總線(xiàn)兼容的12位32通道的數(shù)據(jù)采集器。
LabVIEW中動(dòng)態(tài)鏈接庫(kù)的調(diào)用是通過(guò)CLF(Call Library Function)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)的,并進(jìn)行采集模塊的編程。其中初始化時(shí)為了使驅(qū)動(dòng)程序能夠?qū)Φ讓拥挠布M(jìn)行初始化,應(yīng)設(shè)置中斷號(hào)、內(nèi)存分配、I/O地址等打通驅(qū)動(dòng)程序和應(yīng)用程序的通道。通過(guò)CLF節(jié)點(diǎn)調(diào)用函數(shù)DllInitial來(lái)實(shí)現(xiàn)采集程序的初始化,并選擇采集卡的中斷號(hào)和口地址。此時(shí)為了順利啟動(dòng)采集,采集卡上的中斷號(hào)和口地址要和主板上的一致,如果程序初始化成功,函數(shù)將返回1,否則返回0。
參數(shù)PhysAddr用來(lái)確定外部存儲(chǔ)的開(kāi)始地址,參數(shù)IRQNum用來(lái)確定板卡的中斷號(hào),參數(shù)DMAChn用來(lái)確定板卡的DMA通道,參數(shù)IOBase用來(lái)確定板卡的基地址。該例中其相應(yīng)值為0,5,0,320。
啟動(dòng)采集的過(guò)程:首先要設(shè)置采集通道和采集頻率,并確定數(shù)據(jù)通信方式(單緩沖或多緩沖),然后啟動(dòng)采集。接下來(lái)程序可自行驅(qū)動(dòng)硬件實(shí)現(xiàn)采集,同時(shí)把采集到的數(shù)據(jù)存儲(chǔ)到指定的緩沖區(qū)。
讀取結(jié)果:讀取結(jié)果是為了方便對(duì)數(shù)據(jù)進(jìn)行處理,把驅(qū)動(dòng)程序緩沖區(qū)中的數(shù)據(jù)讀取到應(yīng)用軟件的數(shù)據(jù)緩沖區(qū)中去。要實(shí)現(xiàn)再次采集數(shù)據(jù)量,需定義一個(gè)數(shù)據(jù)緩沖區(qū)(或用戶(hù))函數(shù)ADBuf(NumSamp*NumChn+1)和一個(gè)內(nèi)存保存數(shù)據(jù)函數(shù)RecordBuf(NumSamp*NumChn)來(lái)實(shí)現(xiàn)。
數(shù)據(jù)采集模塊的設(shè)計(jì)主要是調(diào)用動(dòng)態(tài)鏈接庫(kù)中的各個(gè)函數(shù)來(lái)實(shí)現(xiàn)的,各函數(shù)調(diào)用的順序是:
(1)調(diào)用函數(shù)。Initial();
(2)調(diào)用函數(shù)StarIntr();
(3)調(diào)用函數(shù)ADResult()或ADResuit Rece nt();
(4)調(diào)用函數(shù)QueryBuf();
(5)調(diào)用函數(shù)StopIntr()。
其中函數(shù)StarIntr()實(shí)現(xiàn)開(kāi)始采集功能,函數(shù)ADResult()或函數(shù)ADResuitRecent()實(shí)現(xiàn)獲得數(shù)據(jù)功能,函數(shù)QueryBuf()實(shí)現(xiàn)緩沖區(qū)的查詢(xún)功能,函數(shù)StopIntr()實(shí)現(xiàn)中斷采集功能。同時(shí)可以調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)特殊的功能,如調(diào)用函數(shù)ChannelFrq()來(lái)獲取各通道的采樣頻率、調(diào)用函數(shù)RegisterNotify()可在多緩沖模式下緩沖區(qū)滿(mǎn)時(shí)發(fā)出消息、調(diào)用函數(shù)IOCtrl()來(lái)實(shí)現(xiàn)A/D卡的其他功能等。
其他模塊的設(shè)計(jì)由于篇幅關(guān)系,這里不再贅述。
5 結(jié)論
采用美國(guó)NI公司的圖形化軟件平臺(tái)LabVIEW完成了基于虛擬儀器的電梯上行超速保護(hù)裝置的檢測(cè)系統(tǒng)的軟硬件設(shè)計(jì),通過(guò)該檢測(cè)系統(tǒng)以確保裝置的可靠性和有效性,提高了檢測(cè)效率,降低了測(cè)量誤差,彌補(bǔ)了傳統(tǒng)檢測(cè)技術(shù)的不足。系統(tǒng)中實(shí)時(shí)采集的數(shù)據(jù)方便了對(duì)電梯安全部件的檢測(cè)和維修。
評(píng)論