摘要:針對礦用壓力變送器采集值易受環(huán)境影響而產(chǎn)生異常值,設(shè)計了一種抗干擾能力強(qiáng)的軟件方案,介紹了軟件設(shè)計流程。把采集到的壓力信號轉(zhuǎn)換為電信號,通過A/D采樣電路,將采樣模擬信號通過選定的定斜率直線分段分割,再通過選定的中位值平均濾波算法進(jìn)行軟件濾波優(yōu)化,對采樣芯片采集到的A/D值進(jìn)行換算處理,#后將這些值轉(zhuǎn)換為代碼字符串進(jìn)行通信傳輸,此算法在實際應(yīng)用中取得了良好的效果。
引言
礦用壓力變送器現(xiàn)場使用中需要安裝在不同口徑的管道上面,用不同的量程對管道里面的液體或氣體進(jìn)行壓力的采集測試,在對壓力采集的過程中,三暢變送器會受到諸如電磁、環(huán)境溫度、腐蝕、振動、沖擊等因素的影響,從而使變送器采集值產(chǎn)生誤差,例如零點飄逸、滿刻度飄逸等,如何避免或降低這些誤差的產(chǎn)生,這個關(guān)鍵的問題,就需要用不同方式的濾波和嵌入式軟件程序在算法上進(jìn)行處理,從而保證壓力變送器采集值的正確性。礦用壓力變送器抗干擾軟件設(shè)計,對3種軟件濾波算法進(jìn)行了對比,通過對比采用了中位值平均濾波算法,并闡述和講解了軟件設(shè)計中的RS485通信協(xié)議規(guī)約和系統(tǒng)的通信流程。
1 壓力變送器A/D轉(zhuǎn)換
A/D轉(zhuǎn)換是通過一定的電路將采集到的模擬量信號轉(zhuǎn)變?yōu)閿?shù)字量信號并進(jìn)行存儲的一種電路轉(zhuǎn)換方式。A/D轉(zhuǎn)換技術(shù)是現(xiàn)實各種模擬信號通向數(shù)字shijie的橋梁,作為將模擬信號轉(zhuǎn)換成數(shù)字信號的A/D有積分、逐次逼近、并行等幾種方式可以采取。
本文所研究的壓力變送器A/D采樣轉(zhuǎn)換是通過分段的方式將一定范圍內(nèi)的電壓值所對應(yīng)的壓力值,按照線性關(guān)系,以212的計數(shù)方式對采樣的電壓0.5~4.5V信號進(jìn)行分割分段處理,然后轉(zhuǎn)換為數(shù)字量,進(jìn)而存儲在12位的寄存器中,等待CPU對數(shù)據(jù)的隨時調(diào)用。對電壓采樣信號的A/D值如何進(jìn)行分割分段如圖1所示。
2 壓力變送器濾波處理
在壓力變送器進(jìn)行A/D采樣轉(zhuǎn)換過程中,會受到外界不同脈沖信號對其采樣的干擾,即造成壓力采樣值出現(xiàn)不精que甚至計數(shù)錯誤。所以,對不正常的干擾信號進(jìn)行濾波很有必要。信號濾波包括硬件濾波和軟件濾波2種方式。硬件濾波一般采用LC諧振電路或者RC網(wǎng)絡(luò)作為濾波器件,硬件濾波一般對異性波進(jìn)行過濾,而對同頻率同幅值周期不一致的難以過濾去除,那么此時采用數(shù)字濾波就會很好地處理這種情況。
數(shù)字濾波就是通過一定的計算或判斷程序減少干擾信號在有用信號中的比重,因此它實際上是一個軟件程序濾波,常用的濾波方式有算術(shù)平均值濾波法、限幅濾波、中位值平均濾波法、低通濾波、高通濾波等,通過信號濾波以及軟件程序算法對采樣信號的處理,可以把正確的采樣值存儲在寄存器中,等待核心CPU對其調(diào)用。以下重點對3種濾波法進(jìn)行詳細(xì)講述。
2.1 算術(shù)平均值濾波法
算術(shù)平均值濾波算法其流程為:采樣值進(jìn)入中斷或者查詢,然后把采到的A/D值放入緩存或寄存器Buffer,從第1次計數(shù)累計采樣次數(shù),退出中斷或者查詢;然后再進(jìn)入下一次循環(huán),等累計采樣次數(shù)達(dá)到要求時,此輪采樣結(jié)束;#后把采樣值進(jìn)行算數(shù)平均計算,從而得出一個采樣實時數(shù)據(jù)。其采樣存儲一次數(shù)據(jù)流程如圖2所示。
采樣M次完成后,程序就對所采樣的值進(jìn)行算術(shù)平均數(shù)據(jù)計算,M次數(shù)據(jù)累加和得出數(shù)據(jù)SUM,然后再進(jìn)行M次算術(shù)平均值計算,#后得出一個采樣周期的算術(shù)平均值Vale,其算法主要代碼如下:
此算法適用于對一般具有隨機(jī)干擾的信號進(jìn)行濾波,采集到的信號會在某一數(shù)值范圍附近上下波動,但是對于測量速度較慢或要求數(shù)據(jù)計算速度較快的實時控制不太適用,并且這種算法比較浪費RAM。
2.2 限幅濾波
限幅濾波算法流程:先確定2次采樣允許的#大偏差值(設(shè)為D),每次檢測到新值時進(jìn)行判斷。先把第1次的采樣值進(jìn)行存儲,每次檢測到新值就與上次的值相減,如果差值≤D,則此次值有效,如果差值>D則此次值無效,丟棄此次值,用上次采樣值代替本次值。其濾波算法流程如圖3所示。
限幅濾波算法的主要代碼如下:
此算法能有效克服因偶然因素引起的脈沖干擾,但是無法抑制那種周期性的干擾,平滑度較差。
2.3 中位值平均濾波法
中位值平均濾波算法的流程為:按照平均算術(shù)濾波算法的流程,連續(xù)采樣M個數(shù)據(jù),分別確定M個數(shù)據(jù)中的#大值和#小值,然后丟棄#大值和#小值,再計算M-2個數(shù)據(jù)的算術(shù)平均值,把此采樣周期內(nèi)的值放入寄存器,以供隨時進(jìn)行調(diào)用。中位值平均算法流程如圖4所示。
中位值平均濾波算法的主要代碼如下:
此算法可去除偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差,但是測量速度較慢,和算術(shù)平均濾波法一樣,比較占用RAM空間。
礦用壓力變送器的采樣電壓信號變化比較緩慢,信號躍變較小,采用16位RAM寄存器,采樣100次的A/D值有足夠的存儲空間,且采樣#終計算值能達(dá)到變送器的計算精度。經(jīng)過以上3種算法的比較,#終篩選采用中位值平均濾波算法作為壓力變送器的#佳算法。
3 數(shù)據(jù)通信傳輸
壓力變送器在進(jìn)行濾波采樣后,因為沒有直接的數(shù)據(jù)顯示,所以它還需要把采樣數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換為RS485傳輸?shù)淖址蛘哳l率信號進(jìn)行外部輸出。且RS485具有較好的噪聲抑制能力、較快的數(shù)據(jù)傳輸速率及較高的可靠性等優(yōu)點,制定RS485字符串通信規(guī)約后,三暢變送器才能與其他設(shè)備進(jìn)行正常的數(shù)字通信傳輸。RS485通信規(guī)約見表1和表2,就協(xié)議的規(guī)定做了詳細(xì)解釋。
RS485與其他通設(shè)備通信的流程如圖5所示。壓力變送器經(jīng)過以上通信協(xié)議的規(guī)約,就可以把濾波算法處理后的采樣值進(jìn)行編碼處理,然后通過RS485總線方式和其他外接設(shè)備進(jìn)行通信傳輸。
4 應(yīng)用效果
壓力變送器經(jīng)過開發(fā)和算法的抗干擾的優(yōu)化,以及數(shù)字化的通信方式,所采取的一系列措施,使三暢壓力變送器在實際的使用當(dāng)中取得了不錯的效果,得到了廣大客戶認(rèn)可,其中實際使用連接模擬圖和變送器數(shù)據(jù)采集中心站軟件界面如圖6、圖7所示。
5 結(jié)語
壓力變送器A/D值采樣100次以及進(jìn)行中位值平均濾波算法完成一個周期,所需要的時間在2ms左右,A/D采樣精度能達(dá)到1.5‰,能完全滿足整機(jī)計算出的壓力值精度為3.0‰的要求。
通過對壓力變送器濾波算法的詳細(xì)分析,和RS485通信協(xié)議規(guī)約及與其他通信設(shè)備的正常通信,這種礦用壓力變送器的軟件設(shè)計,很好地解決了變送器出現(xiàn)異常值以及通信不穩(wěn)定抗干擾能力差的問題,在淮北礦業(yè)集團(tuán)、桃園礦、張集礦等的廣泛應(yīng)用可知,礦用壓力變送器取得了良好的效果。