滾動(dòng)軸承強(qiáng)化壽命試驗(yàn)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
1.2 數(shù)據(jù)采集卡
由于采集系統(tǒng)要求實(shí)時(shí)快速多通道數(shù)據(jù)采集,且滾動(dòng)軸承的失效是個(gè)慢變化的信號(hào),所以要求A/D轉(zhuǎn)換的分辨率高,以提高檢測(cè)數(shù)據(jù)的精度。鑒于以上要求,本系統(tǒng)選用北京雙諾測(cè)控公司生產(chǎn)的數(shù)據(jù)采集卡AC6622,AC6622其是一款基于PCI總線中速采集卡,支持全速實(shí)時(shí)不間斷采集。主要性能參數(shù)如下:
(1)16路單端輸入。輸入電壓:5/10 V、±5 V,軟件控制。
(2)A/D轉(zhuǎn)換器:16位A/D,采樣頻率可達(dá)250 kHz。
(3)通道輸入阻抗:10 MΩ。
(4)輸入通道支持任意起始到任意結(jié)束通道的自動(dòng)掃描。
(5)系統(tǒng)精度:0.02%FSR。
(6)卡上內(nèi)置4 kB采樣FIFO緩沖器。
2 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)要求界面友好、操作方便、實(shí)時(shí)多通道采集大量數(shù)據(jù),特別是為了準(zhǔn)確測(cè)定失效時(shí)間和故障的診斷和預(yù)測(cè)提供可靠的數(shù)據(jù),要求準(zhǔn)確記錄數(shù)據(jù)及時(shí)間。根據(jù)以前統(tǒng)計(jì)經(jīng)驗(yàn)一般一次實(shí)驗(yàn)持續(xù)約為30天,連續(xù)采樣數(shù)據(jù)達(dá)幾百GB,所以準(zhǔn)確記錄數(shù)據(jù)及時(shí)間是本系統(tǒng)設(shè)計(jì)的關(guān)鍵技術(shù)。
系統(tǒng)在Windows XP下采用VC++6.0軟件實(shí)現(xiàn)數(shù)據(jù)采集。Microsoft Visual C++是一款功能強(qiáng)大的可視化應(yīng)用程序開發(fā)工具。憑借其強(qiáng)大的功能和易學(xué)等特點(diǎn)受到了廣大程序員的歡迎,在數(shù)據(jù)采集和工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。雖然VC++自身無法對(duì)計(jì)算機(jī)的底層硬件進(jìn)行訪問以及利用各種接口板進(jìn)行數(shù)據(jù)采集和時(shí)間控制,但是通過調(diào)用驅(qū)動(dòng)程序提供的動(dòng)態(tài)鏈接庫函數(shù),就可以實(shí)現(xiàn)對(duì)I/O口的訪問和控制。
AC6622采集卡以動(dòng)態(tài)鏈接庫的方式封裝了用戶在Windows環(huán)境下編程需要的函數(shù),無需用戶編寫驅(qū)動(dòng)程序,這樣就大大縮短了整個(gè)數(shù)據(jù)采集系統(tǒng)的開發(fā)周期。在這些函數(shù)中,幾個(gè)重要的函數(shù)如表2所示。本文引用地址:http://butianyuan.cn/article/194941.htm
數(shù)據(jù)采集程序設(shè)計(jì)的關(guān)鍵問題是在實(shí)現(xiàn)連續(xù)采集的同時(shí)以固定時(shí)間間隔保存固定時(shí)間長(zhǎng)度的振動(dòng)數(shù)據(jù)。AC6622采集卡是在FIFO半滿時(shí)產(chǎn)生一次中斷,驅(qū)動(dòng)接收中斷后自動(dòng)將2 kB數(shù)據(jù)保存在內(nèi)部緩沖中,而后用戶通過調(diào)用Read_A/D()函數(shù)讀取內(nèi)部緩沖中的采集數(shù)據(jù)。采集卡沒有提供用戶使用的中斷源,要實(shí)現(xiàn)精確定時(shí)寫入定量的數(shù)據(jù)到存儲(chǔ)設(shè)備中,無法通過采集卡硬件中斷實(shí)現(xiàn)。
實(shí)現(xiàn)定時(shí)數(shù)據(jù)存儲(chǔ)有兩種方案,第1種方案是利用Windows下提供直接使用的定時(shí)器函數(shù)控制數(shù)據(jù)采集卡定時(shí)自動(dòng)保存數(shù)據(jù)。第2種方案是根據(jù)采樣率一定情況下,每個(gè)采樣點(diǎn)所用時(shí)間是固定的,通過查詢采集卡讀回?cái)?shù)據(jù)的長(zhǎng)度進(jìn)行時(shí)間換算,進(jìn)而通過控制每次讀回?cái)?shù)據(jù)的長(zhǎng)度進(jìn)行時(shí)間上的定時(shí)。
第1種方案雖然有編程簡(jiǎn)單,容易實(shí)現(xiàn)的優(yōu)點(diǎn),但是利用VC6++編程時(shí),Windows下提供直接使用的定時(shí)器函數(shù)SetTimer()、KillTimer()和()nTimer()函數(shù)的定時(shí)精度只有55 ms,而且通過SetTimer()函數(shù)設(shè)置的常規(guī)定時(shí)器的定時(shí)事件是由消息引發(fā)的,而Windows是一個(gè)多任務(wù)的操作系統(tǒng),在其消息隊(duì)列中的定時(shí)器消息WM_TIMER的優(yōu)先級(jí)很低,所以較難保證所發(fā)出的定時(shí)消息能及時(shí)得到響應(yīng)和處理。此外Windows的工作方式為搶占式,其內(nèi)部的時(shí)間管理函數(shù)并不能實(shí)現(xiàn)等間隔的時(shí)間控制。因此第1種方案只適用于定時(shí)精度不高的地方,這樣就不能滿足本系統(tǒng)精確定時(shí)的要求。
評(píng)論