原騰飛,文 偉
?
基于Labview數(shù)據(jù)采集系統(tǒng)誤差校準(zhǔn)的設(shè)計
原騰飛,文 偉
(武漢船用電力推進(jìn)裝置研究所,武漢430064)
現(xiàn)代測控系統(tǒng)中,測量環(huán)節(jié)開始向智能化、靈活化和可視化方向發(fā)展。數(shù)據(jù)采集系統(tǒng)作為測控系統(tǒng)中的測量環(huán)節(jié),其性能的優(yōu)劣直接影響了控制系統(tǒng)的效果。本文旨在通過虛擬儀器(Labview)技術(shù)設(shè)計上位機(jī)程序,實(shí)現(xiàn)對被控對象進(jìn)行高速采集、校準(zhǔn)以及顯示,使用虛擬儀器中的串口模塊實(shí)現(xiàn)對下位機(jī)的控制以及數(shù)據(jù)的接收與處理,并實(shí)現(xiàn)了被采集對象的圖形化顯示,利用Excel工具包實(shí)現(xiàn)數(shù)據(jù)的保存與回放。
Labview 數(shù)據(jù)采集 圖形化顯示
數(shù)字化測控系統(tǒng)中,被控對象的反饋精度直接影響了控制系統(tǒng)的精度,數(shù)據(jù)采集環(huán)節(jié)如不加校準(zhǔn),一般很難滿足高精度測控系統(tǒng)的需求。以電壓為例,一般情況下,當(dāng)電壓大于10V時已不能直接被數(shù)據(jù)采集系統(tǒng)進(jìn)行直接采集,需要前級信號調(diào)理電路進(jìn)行信號的放大處理,而放大電路中一般會使用專用運(yùn)放(如OP27),運(yùn)放因其固有特性,會存在零點(diǎn)漂移與溫度漂移,再加上模數(shù)轉(zhuǎn)換器(ADC)使用中產(chǎn)生的誤差會導(dǎo)致采集結(jié)果對控制系統(tǒng)產(chǎn)生較大的偏差,DSP2812的典型轉(zhuǎn)換特性曲線如圖1所示,消除ADC的量化誤差可通過中值濾波的方式;消除運(yùn)放所產(chǎn)生的零點(diǎn)漂移與溫度漂移一般使用兩點(diǎn)校準(zhǔn)法,即采用兩點(diǎn)固定電壓作為基準(zhǔn),通過計算得到偏移誤差與增益誤差,并對轉(zhuǎn)換結(jié)果進(jìn)行相應(yīng)補(bǔ)償,然而,由于系統(tǒng)電源的波動或者基準(zhǔn)電源的性能不佳經(jīng)常造成基準(zhǔn)源不穩(wěn)定,因而兩點(diǎn)校準(zhǔn)有可能不但無法起到校準(zhǔn)作用,反而使采集量偏移更大。因此,對基準(zhǔn)電壓的修正顯得十分重要。
下位機(jī)一般采用嵌入式系統(tǒng),程序固化后不易修改,因此,本文以DSP為下位機(jī)硬件平臺,將校準(zhǔn)工作放于上位機(jī),通過Labview可視化操作,以一定時間間隔手動對校準(zhǔn)電壓進(jìn)行修正,從而提高數(shù)據(jù)采集系統(tǒng)的精度。
1.1下位機(jī)通信接口程序設(shè)計
本設(shè)計中系統(tǒng)底層硬件使用DSP平臺,DSP選用TI公司生產(chǎn)的TMS320LF2812,該DSP擁有豐富的片上資源[3]。

本設(shè)計中,使用片上ADC實(shí)現(xiàn)對電壓、電流以及校準(zhǔn)電壓等6路信號的采集,通過使用SCI實(shí)現(xiàn)與上位機(jī)的串口通信,通過使用事件管理器(EVA)實(shí)現(xiàn)中斷的處理。其主函數(shù)程序流程圖如圖2所示,DSP完成系統(tǒng)上電后,首先對系統(tǒng)時鐘、外設(shè)以及IO等片上資源進(jìn)行初始化,再對ADC、SCI等所需片上外設(shè)根據(jù)具體的使用要求進(jìn)行初始化。當(dāng)SCI接收寄存器標(biāo)志位置位時,通過中斷處理子函數(shù)判斷所接收的指令為采樣指令還是數(shù)據(jù)接收錯誤的反饋,當(dāng)指令為采樣指令時,ADC即進(jìn)行一次采樣,完成采樣后退出中斷并將采集數(shù)據(jù)寫入SCI發(fā)送緩沖器,當(dāng)SCI發(fā)送FIFO滿時,通過發(fā)送中斷子函數(shù)完成對數(shù)據(jù)的發(fā)送。本設(shè)計中,DSP配置為序列發(fā)生器模式,SCI使用增強(qiáng)型配置,部分核心初始化配置如下:
AdcRegs.ADCTRL1.bit.CONT_RUN=1; // 連續(xù)運(yùn)行模式
AdcRegs.ADCTRL1.bit.SEQ_CASC=0; // 雙排序模式
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
//由INT SEQ1產(chǎn)生的中斷請求被使能
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;
//在每個SEQ1序列結(jié)束時,INT SEQ1置位
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;
//允許EVA通過觸發(fā)信號啟動SEQ1
AdcRegs.ADCTRL3.bit.SMODE_SEL=0; // 順序采樣模式
AdcRegs.MAX_CONV.all=0x0005; // 6個通道
SciaRegs.SCICTL1.all=0x0001;
//接收中斷使能發(fā)送中斷禁止
SciaRegs.SCIFFCT.all=0x00; // 連續(xù)發(fā)送
SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
1.2 上位機(jī)通信接口程序設(shè)計

系統(tǒng)上位機(jī)程序由Labview實(shí)現(xiàn),Labview是由美國NI公司研制開發(fā)的一種圖形化編程工具,它具有強(qiáng)大的數(shù)據(jù)處理功能,采用靈活的編程方式可以快速構(gòu)建各種應(yīng)用[1]。上位機(jī)使用串口工具包實(shí)現(xiàn)指令的發(fā)送以及數(shù)據(jù)的接收,串口相關(guān)參數(shù)的配置如表1所示。
串口通信包含指令發(fā)送以及數(shù)據(jù)接收兩部分,其程序如圖3所示。指令包含采樣指令和數(shù)據(jù)錯誤指令。程序設(shè)定,發(fā)送不為0的控制字時,下位機(jī)進(jìn)行采樣,發(fā)送控制字為0 時,表示上位機(jī)數(shù)據(jù)接收錯誤,需要下位機(jī)復(fù)位。正常情況下,指令發(fā)送采樣定時發(fā)送的方式,本設(shè)計中發(fā)送間隔設(shè)置為30 ms。利用串口函數(shù)的屬性節(jié)點(diǎn)可以及時讀取接收緩沖區(qū)已緩存的字節(jié)數(shù),當(dāng)已緩存字節(jié)數(shù)大于等于16個字節(jié)時,啟動一次數(shù)據(jù)的讀取。Labview串口數(shù)據(jù)發(fā)送以及接收均采用字符串的形式,因此,讀取的數(shù)據(jù)以字符串的形式保存于“采集量”中,以供后續(xù)數(shù)據(jù)處理函數(shù)進(jìn)行處理。
由于DSP數(shù)據(jù)采集硬件的限制,所有模擬量輸入信號必須滿足0~3V電壓區(qū)間,由原始信號經(jīng)調(diào)理電路進(jìn)行調(diào)理后,存在較大誤差,因此,上位機(jī)需要對所采集信號進(jìn)行濾波、校準(zhǔn)以及數(shù)據(jù)的還原。數(shù)據(jù)處理流程圖如圖4所示。
2.1 數(shù)據(jù)分離
當(dāng)Labview中串口讀取數(shù)據(jù)完畢后,利用字符串轉(zhuǎn)字節(jié)數(shù)組函數(shù)可以將讀取的字符串轉(zhuǎn)換成為一維數(shù)組,本設(shè)計中,一幀數(shù)據(jù)包含了4個字節(jié)的幀頭,以及6個通道12個字節(jié)的采樣數(shù)據(jù),幀頭是下位機(jī)與上位機(jī)進(jìn)行通信時,為了驗(yàn)證數(shù)據(jù)傳輸正確性,加在一幀數(shù)據(jù)之前具有特定含義的一組數(shù)據(jù)[4]。因此,對數(shù)據(jù)進(jìn)行分析處理首先需要對數(shù)據(jù)進(jìn)行分離,限于篇幅,本文僅對其中兩個通道進(jìn)行展示,程序如圖5所示,該VI首先利用抽取一維數(shù)據(jù)函數(shù)將4個字節(jié)的幀頭剔除,然后利用拆分一維數(shù)據(jù)函數(shù)將各通道轉(zhuǎn)換數(shù)據(jù)的高八位和低八位進(jìn)行合并,利用一維數(shù)據(jù)插值函數(shù)將各通道完成合并的16位數(shù)據(jù)組成新的數(shù)組,再利用分離數(shù)組函數(shù)將各通道數(shù)據(jù)進(jìn)行分離并創(chuàng)建各通道獨(dú)立的數(shù)組。各數(shù)據(jù)每寫入10個數(shù)據(jù),均值標(biāo)志位置位,提示后續(xù)程序?qū)?shù)據(jù)進(jìn)行進(jìn)一步處理[2]。

2.2 數(shù)據(jù)校準(zhǔn)
以電網(wǎng)電壓為例,當(dāng)均值標(biāo)志位置1時,通過抽取一維數(shù)據(jù)函數(shù)將電樞電流暫存數(shù)據(jù)前10個數(shù)據(jù)進(jìn)行提取,使用數(shù)組排序函數(shù)將數(shù)組數(shù)據(jù)從小到大進(jìn)行排列,再利用刪除數(shù)組函數(shù)將最大和最小的各3個數(shù)據(jù)刪除,然后求剩余4個數(shù)據(jù)的均值,這樣可以實(shí)現(xiàn)中值濾波[5]。

根據(jù)2812ADC實(shí)際轉(zhuǎn)換特性曲線可知,假設(shè)實(shí)際增益為m,實(shí)際偏移為,則模擬量輸入與數(shù)字量輸出之間的關(guān)系滿足下式:
( 1 )
此時,通過引入兩個精準(zhǔn)基準(zhǔn)源的模擬量輸入X1和X2,則可通過解二元一次方程組(2)得到實(shí)際增益m以及實(shí)際偏移,根據(jù)表達(dá)式(1)則可計算出任意通道模擬量輸入經(jīng)過校準(zhǔn)后的數(shù)據(jù)。

系統(tǒng)主界面如圖7所示,當(dāng)基準(zhǔn)源出現(xiàn)偏差時,在前面板左側(cè)基準(zhǔn)源輸入框可以手動對基準(zhǔn)源電壓進(jìn)行修改,從而進(jìn)一步減小本數(shù)據(jù)采集系統(tǒng)的測量誤差。
2.3 數(shù)據(jù)還原
以電網(wǎng)電壓為例,當(dāng)其對應(yīng)調(diào)理量輸入為3 V時,其電壓為600 V,因此,電網(wǎng)電壓瞬時值的轉(zhuǎn)換量可以通過圖進(jìn)行計算,從而得到電網(wǎng)電壓的瞬時值,電網(wǎng)電壓瞬時值顯示變量直接驅(qū)動前面板的量表控件,進(jìn)行直觀的圖形顯示,通過數(shù)據(jù)插值函數(shù)創(chuàng)建電網(wǎng)電壓顯存數(shù)據(jù),該數(shù)組為后續(xù)數(shù)據(jù)保存進(jìn)行準(zhǔn)備。
本文以Labview為上位機(jī)開發(fā)環(huán)境,在DSP的硬件平臺上,實(shí)現(xiàn)了6路信號的數(shù)據(jù)采集,利用上位機(jī)靈活直觀的顯示界面以及其強(qiáng)大的數(shù)據(jù)處理能力,方便的實(shí)現(xiàn)了對校準(zhǔn)源的修正,從而滿足了系統(tǒng)對數(shù)據(jù)精度的需求。
[1] 楊樂平.LabVIEW程序設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社, 2001.
[2] 高向東.虛擬儀器技術(shù)綜述.中國計量,2004:4-5.
[3] 顧衛(wèi)鋼.手把手教你學(xué)DSP[M].北京航空航天大學(xué)出版社,2011.
[4] Shen B S, Chang-Ying J I, Guo Y P, et al. The design of data acquisition system based on LabVIEW[J]. Machinery & Electronics, 2009.
[5] Bera T K, Nagaraju J. A LabVIEW based data acquisition system for electrical impedance tomography (EIT)[M]// Proceedings of the Third International Conference on Soft Computing for Problem Solving. Springer India, 2014:377-389.
[6] Zhao H, Zhang S, Gu L. Real-time acquisition and preprocessing system of transient electromagnetic data based on LabVIEW[J]. Proceedings of SPIE - The International Society for Optical Engineering, 2014, 9215(12):605.
In modern measurement and control system, the measurement process begins to develop towards the direction of intelligence, flexibility and visualization. As the measuring unit of the measurement and control system, the performance of the data acquisition system has a direct impact on the control system. This paper is aimed at designing the host computer program by virtual instrument (Labview) technology in order to realize high speed acquisition, calibration and display of the controlled objects, and uses the serial port module of virtual instrument to control the slave computer, to receive and process the data of this system, to achieve a graphical display of the collected objects and data storage and playback by excel tool kit.
Labview; data acquisition; graphical display
TP206
A
1003-4862(2017)01-0061-04
2016-08-15