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