1 引言
隨著計算機技術(shù)的飛速發(fā)展和自動化技術(shù)的廣泛應(yīng)用,通用監(jiān)控組態(tài)軟件逐步蓬勃發(fā)展起來并涌現(xiàn)出一些極具競爭力的產(chǎn)品。組態(tài)軟件作為一種連續(xù)過程控制的通用監(jiān)控平臺極大的縮短了計算機監(jiān)控系統(tǒng)軟件的開發(fā)周期、增強了軟件產(chǎn)品的穩(wěn)健性,顯著提高了經(jīng)濟效益。
組態(tài)軟件自從出現(xiàn)以來,一直以其通用性、易用性的優(yōu)點深得廣大工程技術(shù)人員的青睞,但是組態(tài)軟件的連續(xù)慢變過程監(jiān)控的特點使它很難滿足中高頻信號的測試需求。在組態(tài)軟件的發(fā)展過程中,對于高速大容量數(shù)據(jù)采集的需求逐漸明朗起來。
2 總體方案設(shè)計
一般的,高速大容量數(shù)據(jù)采集需要處理三個方面的問題,即高速數(shù)據(jù)采集、批量數(shù)據(jù)存盤和實時數(shù)據(jù)顯示。但是由于在組態(tài)軟件運行過程中需要同時處理很多任務(wù),使得組態(tài)軟件對于實時性要求很高的場合不能很好的滿足,而高速大容量數(shù)據(jù)采集又必須使數(shù)據(jù)采集獲得更高的優(yōu)先權(quán),從而保證實時不間斷數(shù)據(jù)采集。綜合考慮高速大容量數(shù)據(jù)采集的需求和組態(tài)軟件的特殊性可選用一種折中的方案,即高速大容量數(shù)據(jù)采集,非實時數(shù)據(jù)顯示,從而既保證了高速大容量數(shù)據(jù)信號的采集,又不至于占用太多的CPU時間。
高速大容量數(shù)據(jù)采集分為兩部分,即在組態(tài)軟件的硬件設(shè)備驅(qū)動程序中實現(xiàn)高速大容量數(shù)據(jù)采集,然后在組態(tài)環(huán)境下利用插件等形式將數(shù)據(jù)文件展開。
3 高速大容量數(shù)據(jù)采集
板卡類設(shè)備性能穩(wěn)定、使用便捷、采樣速度高,是高速數(shù)據(jù)采集系統(tǒng)中常用的外部設(shè)備。在開物2000組態(tài)軟件中數(shù)據(jù)采集部分主要在硬件設(shè)備的驅(qū)動程序中實現(xiàn)??紤]到高速數(shù)據(jù)采集系統(tǒng)的特殊性,在驅(qū)動程序中建立了一個寫標(biāo)簽,在執(zhí)行寫標(biāo)簽的過程中將完成兩部分工作,即高速大容量數(shù)據(jù)采集和批量數(shù)據(jù)存儲。為了提高數(shù)據(jù)采集的優(yōu)先權(quán)并有效降低CPU的占用率,在數(shù)據(jù)采集時使用了FIFO(First In First Out)、中斷和DMA(Direct Memory Access)等技術(shù)并使數(shù)據(jù)采集程序運行在內(nèi)核模式。當(dāng)執(zhí)行寫標(biāo)簽時,驅(qū)動程序?qū)⒊跏蓟蹇ㄔO(shè)備,主要包括設(shè)定采樣長度和采樣頻率,然后觸發(fā)板卡設(shè)備進行數(shù)據(jù)采集,并將采集到的數(shù)據(jù)存儲到板卡的FIFO中,當(dāng)FIFO中的數(shù)據(jù)半滿時,將產(chǎn)生一個中斷信號,然后通過DMA方式將FIFO中的數(shù)據(jù)存儲到內(nèi)存區(qū)域。當(dāng)采樣長度達到預(yù)定的要求時,停止板卡設(shè)備的數(shù)據(jù)采集,并將內(nèi)存區(qū)域的數(shù)據(jù)寫入數(shù)據(jù)文件,從而完成高速大容量的數(shù)據(jù)采集和存儲。
4 非實時數(shù)據(jù)顯示
基于組態(tài)軟件很難實現(xiàn)中高頻信號實時波形的顯示,一般需采用非實時數(shù)據(jù)波形回放的方法。為了滿足數(shù)據(jù)波形回放的要求,基于圖靈開物環(huán)境開發(fā)了數(shù)據(jù)采集插件。圖靈開物中的插件類似于ActiveX控件,但與ActiveX控件相比,圖靈開物中的插件結(jié)構(gòu)小巧,運行安全可靠,具有更強的功能,并且由于其僅在使用時被動態(tài)加載,可以有效的節(jié)省系統(tǒng)資源。
數(shù)據(jù)采集插件功能豐富,可以滿足數(shù)據(jù)波形回放的多種功能要求,如打開數(shù)據(jù)文件、保存數(shù)據(jù)文件、波形放大、縮小、自定義縮放、設(shè)置和打印輸出等各種功能。在數(shù)據(jù)采集插件中通過設(shè)置工程值和測量值的最大最小值可以實現(xiàn)數(shù)據(jù)量綱的轉(zhuǎn)換。
5 工程實例
基于上面提到的方案,在螺栓應(yīng)力測試系統(tǒng)中取得了很好的實驗效果。實驗過程中需要測量的高速信號為螺栓的動態(tài)應(yīng)力變化。在實際實驗過程中基于圖靈開物環(huán)境建立寫標(biāo)簽“WRITE_FILE0”,代表板卡設(shè)備第0通道的數(shù)據(jù)信號,設(shè)定采樣長度為8192點,采樣頻率為5000Hz。
在圖靈開物組態(tài)環(huán)境中實現(xiàn)板卡類設(shè)備數(shù)據(jù)采集非常方便。例如可以建立一個數(shù)據(jù)采集按鈕,點擊按鈕就可以完成數(shù)據(jù)的采集,如果需要基于一定的條件進行數(shù)據(jù)采集則可以通過腳本語言來實現(xiàn)。例如 If AD0.Value<=3.5 then WRITE_FILE0.Value=True,使用非常方便。下圖給出了整個實驗系統(tǒng)的數(shù)據(jù)波形,從圖中可以看出,數(shù)據(jù)波形還原完好,沒有任何失真現(xiàn)象,很好的跟蹤了螺栓應(yīng)力的動態(tài)變化,滿足了系統(tǒng)的測試要求,取得了良好的實驗效果,同時也驗證了本文提出的高速大容量不間斷數(shù)據(jù)采集方案的正確性。
6 結(jié)束語
本文綜合考慮組態(tài)軟件和高速大容量不間斷數(shù)據(jù)采集的要求,提出了實時數(shù)據(jù)采集,非實時數(shù)據(jù)顯示的解決方案,很好的滿足了中高頻信號的測試需求,擴展了圖靈開物組態(tài)軟件的使用范圍,對于高速大容量數(shù)據(jù)采集具有一定的指導(dǎo)意義。