基于STM32的多功能流量計控制儀表的設(shè)計
多功能流量控制儀是一種智能化二次儀表.該儀表采用DM12864M中文字庫液晶屏,ARM內(nèi)核的STM32f103做為主控芯片,AD694做為4~20 mA電流輸出芯片,特殊的瞬時流量算法,克服了傳統(tǒng)中數(shù)碼管顯示不直觀、普通單片機機器周期太長,控制儀反應(yīng)不快捷、電流輸出不準確、瞬時流量不穩(wěn)定的特點.該控制儀與脈沖式電信號的流量計配套,在配合電液閥實現(xiàn)液體介質(zhì)的自動化定值體積或質(zhì)量的灌裝目的.實際使用過程中,在智能化、顯示直觀性、操作便利性、灌裝精度等方面取得了良好的效果.
0.引言
在工業(yè)或?qū)嶒炇覒?yīng)用中,對流量計的控制儀表提出了越來越多的要求,準確度高、攜帶方便、集成度、高接口齊全、使用方便等都成了選購的主要考慮因素。該控制儀配置足夠的系統(tǒng)內(nèi)部通道和數(shù)據(jù)存儲區(qū)(帶掉電保護),方便結(jié)構(gòu)和功能擴展,可靈活組成不同型號不同用途(例如屏裝、隔爆、大屏幕、繼電控制、電流環(huán)4~20 m A等)的二次計量/控制儀表。該儀表結(jié)構(gòu)簡單、可靠性高、功能齊全、型式多樣,特別適用與流量計和電液閥配套,對流量進行質(zhì)量或體積的自動化計量;并且可以通過面板置入?yún)?shù),自動控制各種類型閥門的開啟與閉合,實現(xiàn)自動控制發(fā)料作業(yè)。具有可視化中文界面顯示,平穩(wěn)的瞬時流量顯示功能。該控制儀具有單次流量、累計流量、瞬時流量、溫度、壓力、時間、定值流量、提前流量等顯示功能。其***大的特點是,能對泵、閥進行流量的定值,批次控制,并且有脈沖輸入、模擬信號輸入、4~20 m A電流輸出,MAX485通訊等功能。
1.電液閥工作原理及控制系統(tǒng)組成
電液閥由1個提前量電磁閥、1個定值量電磁閥和1個主閥組成,主閥響應(yīng)速度的控制是2個柱塞閥,安裝于主閥的入口和出口。通過2個柱塞閥細微調(diào)節(jié)主閥的啟閉速度。調(diào)整柱塞閥以控制流入和流出活塞上方介質(zhì)的液體流量。達到主閥啟閉速度能基于介質(zhì)的黏度及壓力調(diào)整的目的。
提前量電磁閥和定值量電磁閥分別安裝在主閥的進油回路和出油回路中,便于控制主閥的啟閉動作,當(dāng)兩電磁閥通電時,進油孔( 上游閥) 回路關(guān)閉,先導(dǎo)孔( 下游閥) 回路打開,活塞上腔泄壓,主閥活塞上行,主閥打開。反之,主閥活塞下行,主閥關(guān)閉。在主閥開啟和關(guān)閉過程中,可將流量( 流速) 信號傳送給流量計控制儀表,經(jīng)過控制儀處理后發(fā)出相應(yīng)的指令,控制 2 個電磁閥的通、斷電狀態(tài),使主閥活塞的上下腔的液壓差產(chǎn)生變化,從而將主閥活塞控制在所需的開啟度上,實現(xiàn)對管道液體介質(zhì)流量的控制。
控制系統(tǒng)主要由若干球閥、過濾器、溫度傳感器、流量計、電液閥、流量定值控制儀系統(tǒng)及其用作控制電液閥的中間繼電器等組成,其組成及工作示意圖見圖 1。
2.流量控制儀的硬件設(shè)計
流量 定 值 控 制 儀 以 STM32f103RB 作 為 核 心 部 件,STM32f103 系列屬于中低端的 32 位 ARM 微控制器,該芯片內(nèi)核是 Cortex-M3 。控制儀在設(shè)置參數(shù)時 需要將 12864 屏反白一部分內(nèi)容,以區(qū)別不需要修改的參數(shù),如設(shè)置儀表系數(shù)時,將儀表系數(shù)反白,以區(qū)別其他參數(shù)。普通的 C51 系列單片機工作效率不高,周期長,當(dāng) C 程序反復(fù)地調(diào)用 12864 屏反白掃描子程序時,時間過長,使人產(chǎn)生一種停頓感覺。而 STM32 ***高工作頻率為 72 MHz,在存儲器的 0 等待周期訪問時可達 1. 25 DMisp / MHz,完全可以克服 12864 屏反白掃描時人感覺到停頓。利用芯片內(nèi)部的 DMA 來存儲多個瞬時流量,并計算平均值,減輕 CPU 的負擔(dān)。
流量控制儀的設(shè)計主要包括硬件設(shè)計和軟件設(shè)計。硬件電路中主要包括 STM3 芯片的***小系統(tǒng),12864 中文字庫的液晶屏、4 × 4 的薄膜按壓開關(guān)、開關(guān)電源模塊電路、LM358M 運算放大器、24C16 數(shù)據(jù)掉電存儲芯片電路、三路驅(qū)動中間繼電器電路、MAX485、232 通訊芯片電路、用于檢測管道中液體溫度進行溫度補償?shù)?DS18B20 溫度傳感器電路,5651DAC 數(shù)字量轉(zhuǎn)化為模擬量芯片電路、AD694 芯片電路( 其功能是實現(xiàn) 4 ~ 20 mA 輸出) 。將上述各子電路連接到 STM32 芯片對應(yīng)的管腳上,硬件原理圖如圖 2 所示。
其工作原理是,控制儀接收到流量計的脈沖信號后,將其送入 LM385 整形電路進行整形,再送入單片機中 PA8 管腳的中斷端口對脈沖信號進行采樣,計數(shù)脈沖數(shù),計算的公式如下:
m=VF20 =Vλ[1 - f( t - 20) ]F20
式中: m 為質(zhì)量,kg; V 為流量變送器發(fā)出的脈沖數(shù); λ 為脈沖當(dāng)量,min; F20 為 20 ℃ 時物料密度,kg / m3 ; t 為物料溫度,t=20 ℃ ( 無需外溫度傳感器) ; f 為物料體積補償系數(shù),f = ( 1 ~ 999) ×10 - 6 。
當(dāng)密度值設(shè)定為 1 時,公式即為 m = Vλ,此時 m 為體積數(shù)。計算后,所得出***終結(jié)果送入 12864 帶中文字庫的液晶顯示器,顯示實時數(shù)據(jù)。
控制儀初始上電時,主控芯片從 EEPROM 中取出流量計傳感器標(biāo)定系、定值量、提前量、密度、物料的體積補償系數(shù)據(jù),由單片機轉(zhuǎn)換成浮點數(shù),實時參與運算。單片機內(nèi)部看門狗電路隨時監(jiān)測供電電壓和單片機的程序。主控在運行時出現(xiàn)電壓大幅波動或程序跑飛時,將及時復(fù)位單片機,重新進入正常工作狀態(tài)。
在各部分電路的硬件設(shè)計中,脈沖輸入的整形電路作為信號的前級,其穩(wěn)定和可靠對保證整個儀表的準確度非常重要。整形電路采用 LM358 放大器通過對脈沖的電壓調(diào)整和邊緣修正,使原來幅值為 24 V 的脈沖信號調(diào)整為 3. 3 V,以適應(yīng)后級CMOS 電路的需要,經(jīng)邊緣修正后的脈沖信號邊緣更整齊,為后級的采樣和周期計算打下了良好的信號基礎(chǔ)。
液晶屏的顯示、按鍵、3 路中間繼電器驅(qū)動電路上,以單片機以串行傳輸數(shù)據(jù)方式進行掃描顯示,顯示器主要是 128 × 64點陣的漢字圖形型液晶顯示模塊,可顯示中文漢字及圖形??膳c STM32 直接相接,該屏提供兩種界面來連接微處理機: 8 位并行及串行兩種連接方式。該控制儀采用串行通訊方式,其管腳鏈接到 PB4 ~ PB7。按鍵電路采用 4 × 4 矩陣式電路,共有 16個按鍵,鏈接在 PB8 ~ PB15 口。3 路中間繼電器驅(qū)動電路采用的是三極管 BD237 驅(qū)動中間繼電器,一路控制油泵電機,另外兩路分別控制電液閥的定值閥和提前閥,以達到的定值控制。
看門狗電路上采用了單片機內(nèi)部看門狗,其擁有電壓實時監(jiān)控和看門狗功能。電壓監(jiān)控在電壓波動大電壓過高或過低時都會產(chǎn)生一個復(fù)位信號 。其原理是在單片機程序上設(shè)定每隔一定時間間隔復(fù)位看門狗一次,若程序跑飛或陷入死循環(huán),芯片得不到及時復(fù)位芯片將產(chǎn)生一個復(fù)位信號,使單片機復(fù)位到正常工作狀態(tài)。
控制儀有 RS485 通信方式和 RS232 通信方式,具有 4 ~ 20 mA電流輸出,以便于上位機控制。通訊方式是通過MAX485 芯片和 MAX232 芯片分別于 STM32f103rb 的 2 個通訊口相連實現(xiàn)通訊功能,在采用 modbus 開放式通訊協(xié)議,實時的與上位機通訊。單片機控制芯片 5651 進行數(shù)值量與模擬量的轉(zhuǎn)換,實現(xiàn)模擬量電壓的輸出,在通過 5651 芯片的電壓輸出口于 AD694 的 3 腳鏈接現(xiàn)實 4 ~ 20 mA 輸出,其模擬量電壓和電流輸出與瞬時流量實現(xiàn)的線性對應(yīng)??刂苾x的溫度采集是使用 DS18B20,它是一線式數(shù)字式溫度計芯片,它具有結(jié)構(gòu)簡單,不需外接元件,采用 1 根 I / O 數(shù)據(jù)線即可供電又可傳輸數(shù)據(jù)、并可由用戶設(shè)置溫度報警界限等特點,可廣泛用于管道介質(zhì)的溫度補償。外接壓力傳感器通過 LM358 運算放大器的電壓跟隨器特性,實行外接電路與主芯片的隔離作用。
3.軟件部分設(shè)計
該設(shè)計的核心部件為具有 ARM 內(nèi)核的 STM32f103 單片機,其除了控制整個系統(tǒng)的運算外,還參與了采樣控制、顯示控制、通訊、模擬量、電機,電磁閥等的控制過程,而軟件的控制直接關(guān)系到整個控制儀表的各項性能。設(shè)計的軟件運行流程圖如圖 3 所示。
脈沖信號的采集采用中斷方式,當(dāng)單片機脈沖輸入引腳檢測到有下降沿發(fā)生時,隨即啟動中斷子程序,累計脈沖數(shù),同時定時器計算以 s 為單位的時間,在單位時間內(nèi),計算出脈沖數(shù)。在主程序里,單位時間的脈沖數(shù)乘以脈沖系數(shù)再乘以相應(yīng)的補償,就是瞬時流量。中斷程序在整個系統(tǒng)的軟件設(shè)計中較關(guān)鍵,在設(shè)計中應(yīng)注意一個問題: 在計算瞬時流量時,一定要取多個瞬時流量的值進行累加,再求平均值,這才能真實的反應(yīng)管道介質(zhì)中的實際瞬時流量。取值的方法是丟掉前面一個瞬時值,加上后面一個瞬時值,再求平均。這樣即保證了瞬時流量的連續(xù)性。
4.結(jié)束語
該控制儀在電路設(shè)計和軟件設(shè)計上多方面采用了抗干擾技術(shù),并采用主控芯片內(nèi)部的看門狗實時監(jiān)控,從而使整機系統(tǒng)穩(wěn)定、工作可靠、抗干擾能力強。STM32f103 的采用及合理配置,使其功能齊全,操作使用方便,形成一個內(nèi)涵豐富的智能化流量儀表,可廣泛用于油庫、加油站、化工等部門的液體灌裝。