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