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