王延年,李雄飛
(西安工程大學電子信息學院,陜西西安 710048)
隨著現(xiàn)代化工業(yè)的飛速發(fā)展,越來越多的工業(yè)生產(chǎn)領域需要對液位進行實時監(jiān)測以及對安全運行數(shù)據(jù)進行實時反饋,如常見的鍋爐液位、油罐液位、化工原料液位等,這對正常安全生產(chǎn)起著至關重要的作用[1]。由于被檢測液體本身可能具有腐蝕性、毒性和刺激性,不能依靠人為去獲取液位數(shù)據(jù)。在現(xiàn)代化工控領域中不僅要求可以實現(xiàn)液位實時監(jiān)測和報警,甚至更多時候需要系統(tǒng)進行自我液位調(diào)節(jié),使得整個系統(tǒng)始終保持在安全生產(chǎn)液位[2]。這對系統(tǒng)控制的設計提出了更高的要求,設計出符合企業(yè)生產(chǎn)的全自動液位監(jiān)控系統(tǒng)既可以提高企業(yè)生產(chǎn)效率又可以降低生產(chǎn)成本[3]。集成化網(wǎng)絡和通信技術的迅速發(fā)展,為液位監(jiān)控技術提供了良好的軟件編程和硬件設計平臺[4]。新的液位監(jiān)控系統(tǒng)趨于便捷化、自動化和智能化,有利于提高測量的準確度和安全性[5]。
文中設計了一種差壓式液位數(shù)據(jù)采集與監(jiān)控系統(tǒng),采用AT89S52 單片機作為系統(tǒng)的主控芯片,使用差壓傳感器進行液位信號的采集,將采集信號進行相應的數(shù)制轉換,通過單片機與上位機進行數(shù)據(jù)傳送,實現(xiàn)顯示與控制的功能。利用MCGS 軟件制作相應的監(jiān)控畫面,實現(xiàn)對液位的變化進行預報警,提高液位監(jiān)控的實時性[6]。整個設計中需要完成三大塊:液位監(jiān)控系統(tǒng)的硬件電路設計、液位監(jiān)控系統(tǒng)的軟件設計、調(diào)試仿真。
考慮到實際設計需求與成本,由于PLC 的價格昂貴且體系結構封閉,各PLC 廠家硬件體系互不兼容,編程語言及指令系統(tǒng)也各異[7],當用戶選擇了一種PLC 產(chǎn)品后,必須選擇與其相應的控制規(guī)程,并且學習特定的編程語言[8]。而單片機的體積較小、集成度較高、編程比較方便、功耗和價格都很低、操作簡單、通用性好,在工業(yè)生產(chǎn)中應用比較廣泛[9]。因此該文選取單片機來實現(xiàn)液位監(jiān)控系統(tǒng)的設計。該系統(tǒng)包含電源、晶振、復位、鍵盤、顯示、液位信號采集、模數(shù)轉換、報警、電機控制等模塊,以及相應模塊的軟件系統(tǒng),其硬件系統(tǒng)核心采用單片機,系統(tǒng)框圖如圖1 所示。
圖1 基于單片機的液位監(jiān)控系統(tǒng)框圖
該設計選取AT89S52 單片機為控制核心,選取ZPM430 傳感器進行數(shù)據(jù)采集。AT89S52 單片機的功能非常多,存儲容量很大,定時器可以實現(xiàn)多種功能,內(nèi)置8kROM,足以容納通用程序,價格低,編程比較方便,ISP 比較簡單可靠而且可下載,閃存ROM下載次數(shù)多,高達10 000 次以上,可靠性高[10]。ZPM430 傳感器精度高、穩(wěn)定性好,而且它有很多種壓力接口和電氣接線形式供選擇,廣泛應用于電力、石油、化工、水文等領域的各種氣體和液位的差壓測量[11]。
該系統(tǒng)需要顯示當前液位值以及預報警值,所以在該設計中選用了LCD1602 顯示模塊,該模塊可以將顯示屏和驅(qū)動集成電路作為一個整體來使用[12]。字符型LCD1602 的驅(qū)動器一般是HD44780,其一般有16 條外部接口信號。其中有8 條數(shù)據(jù)總線,3 條控制線分別為RS、R/W 和E。RS 是輸入端,其功能是選擇寄存器,當RS 為高電平時,選擇數(shù)據(jù)寄存器;為低電平時,選擇指令寄存器。R/W 為讀寫選擇端,當R/W 為高電平時,選擇讀操作;為低電平時,選擇寫操作。E 是使能信號端。
LCD1602顯示模塊與單片機直接相連,LCD1602的八位數(shù)據(jù)線D0~D7 與單片機的P0.0~P0.7 口對應連接,另外,因為單片機的P0 口內(nèi)部不帶上拉電阻,所以需要外接上拉電阻來增強輸出能力??刂凭€RS 與單片機的P1.0 口相連,當輸入高電平時,為數(shù)據(jù)信號;當輸入低電平時,為命令信號。R/W 與單片機的P1.1 口相連,當輸入高電平時,為讀數(shù)據(jù)信號;當輸入低電平時,為寫數(shù)據(jù)信號。使能信號E 與單片機的P1.2口相連,管腳GND 接地,管腳VCC 接+5 V電源,管腳VEE 外接一個電位器,用來調(diào)節(jié)液晶顯示屏的對比度。
該系統(tǒng)是一個液位監(jiān)控系統(tǒng),必須在液位超出或低于正常使用范圍時及時提醒工作人員,這就必須要用到報警電路。該設計采用雙重報警的方式來有效清晰地提醒工作人員,該報警電路包括音頻報警電路和信號燈報警電路。
2.2.1 音頻報警電路
音頻報警電路由蜂鳴器發(fā)聲報警,當液位處于非正常范圍時發(fā)出警報聲,便于工作人員及時查明并排除故障。電路中蜂鳴器的正極接到三極管8550的集電極C 端,三極管的發(fā)射極E 接到電源VCC 上,三極管的基極B 通過一個限流電阻R6后由單片機的管腳P2.2 控制,即接到接線口P2.2 上。當引腳P2.2為高電平時,三極管無法導通,故沒有電流流過線圈,這時蜂鳴器不發(fā)聲;當引腳P2.2 為低電平時,三極管導通,有電流流過蜂鳴器,構成了閉合的回路,蜂鳴器可以發(fā)聲。所以,只要編好程序來控制單片機P2.2 端口的電平高低,就可實現(xiàn)報警功能。蜂鳴器報警電路如圖2 所示。
圖2 蜂鳴器報警電路
2.2.2 信號燈報警電路
蜂鳴器報警只能讓工作人員知道液位此時不在正常范圍內(nèi),但是并不能讓工作人員知道液位究竟是高了還是低了。而信號燈報警就可以彌補這個缺失,其與蜂鳴器配合使用達到完美報警。當液位低于下限報警值時,單片機的引腳P2.3 為低電平,發(fā)光二極管D2 導通,低位報警信號燈點亮,為高電平時,信號燈滅。當液位高于上限報警值時,引腳P2.4 為低電平,發(fā)光二極管D3 導通,高位報警信號燈點亮,為高電平時,信號燈滅。R3和R4是兩個限流電阻,保護發(fā)光二極管不被燒壞。信號燈報警電路如圖3 所示。
圖3 信號燈報警電路
控制電路主要控制的是供水電機的啟停,當液位低于報警下限值時,供水電機啟動,開始補水;當液位高于上限報警值時,電機停止補水。其工作原理:當三極管的基極與單片機的P2.0 端口連接并處于低電平時,三極管導通,此時RL1 繼電器的線圈得電,常開開關吸合,電機接入電源,開始補水。當三極管的基極與單片機的P2.0 端口連接并處于高電平時,三極管截止,此時RL1 繼電器的線圈失電,常開開關彈開,電機與電源斷開,停止補水。由于系統(tǒng)的I/O 端口的輸出太弱,因此使用三極管來控制繼電器的連接??刂齐娐啡鐖D4 所示。
圖4 控制電路
主程序是控制單片機進行工作的程序,是整個程序設計中最關鍵的[13]。主程序是固化到單片機中的,其工作過程首先是負責將單片機進行端口初始化,然后跳轉到差壓式液位傳感器的采集子程序上并執(zhí)行該程序,將采集到的模擬量信號傳送到模數(shù)轉換器進行數(shù)據(jù)轉換,以便單片機處理,然后執(zhí)行數(shù)碼顯示子程序,使系統(tǒng)的LCD 顯示屏進入工作狀態(tài)。主程序流程如圖5 所示。
圖5 主程序流程
報警控制子程序的工作原理如下:由主程序調(diào)用報警控制子程序,首先判斷檢測到的液位值是否低于下限值,如果低于下限值,則執(zhí)行電機啟動程序,下限報警指示燈亮,在檢測值恢復到限值范圍內(nèi)后,下限報警指示燈滅并返回;然后判斷檢測到的液位值是否高于上限值,如果高于上限值,則執(zhí)行電機停止程序,上限報警指示燈亮,同時蜂鳴器啟動報警,檢測值恢復到設置范圍后,上限報警指示燈滅,蜂鳴器停止報警并返回,然后延時等待,直到下次調(diào)用該子程序。報警控制子程序的流程如圖6 所示。
圖6 報警控制子程序流程
該系統(tǒng)設計使用Keil5 程序軟件以及Proteus 模擬軟件。Keil5 軟件使用C 語言開發(fā)系統(tǒng),兼具架構優(yōu)勢、能力優(yōu)勢、讀取優(yōu)勢、可編譯源程序,連接和定位目標文件庫,創(chuàng)建HEX 文件,調(diào)試目標程序[14]。Proteus 軟件可以實現(xiàn)原理圖繪制、代碼調(diào)試、單片機與外圍電路仿真,還能一鍵切換到PCB 的設計[15]。
將所有元器件連接好后,在調(diào)試下拉菜單欄中點擊開始仿真。顯示屏上顯示默認設定值:當前液位為5 m,上限報警值SH為7 m,下限報警值為3 m,電源指示燈D1 亮。將電位器的值調(diào)大,顯示屏上的當前液位隨之變大,將其調(diào)小,當前液位隨之減小。當液位高于7 m 時,蜂鳴器報警,同時D4 指示燈亮,水泵停止供水。當液位低于3 m 時,D3 指示燈亮,同時水泵開始補水。按下S1 鍵,報警燈閃爍,處于編輯狀態(tài),按一次S2 鍵,報警值加1,按一次S3 鍵,報警值減1,S1 可以選擇設置H 和L。
該設計使用MCGS 模擬運行軟件[16],制作了液位監(jiān)控畫面來模擬實時報警畫面運行結果,報警畫面主要由實時曲線、歷史曲線和計劃曲線組成,其模擬運行結果如圖7 所示。實時曲線是對當前液位情況作出報警的,歷史曲線可以用來查看之前的報警情況,計劃曲線是用來設定預期的報警值的。
圖7 報警畫面顯示
該文以工業(yè)控制生產(chǎn)為背景,設計了基于單片機的差壓式液位監(jiān)控系統(tǒng),完成了系統(tǒng)的硬件電路設計和軟件編程設計,進一步完成了系統(tǒng)配套監(jiān)控畫面的制作,實現(xiàn)了液位的實時監(jiān)測、調(diào)整、報警以及數(shù)據(jù)報表上傳,符合現(xiàn)代化生產(chǎn)要求,提高了安全生產(chǎn)效率的同時節(jié)約了企業(yè)生產(chǎn)成本。