液位是許多工業生產中的重要參數之一,在化工、冶金、醫藥、航空等領域里,對液位的測量和控制效果直接影響到產品的質量。由于單片微型計算機具有體積小,耗電少,控制精度高,運行可靠等的特點,所以廣泛應用于生產實際中。本文討論了一種以AT89C51為核心研制的液位控制系統,該系統不僅能對液位進行巡回檢測、顯示和報警,同時也能對液位進行智能控制。 1 系統硬件設計 系統硬件組成框圖如圖1所示。主要由AT89S51、輸入電路組成和輸出電路組成。 圖1 系統硬件組成框圖 1.1 微機系統 系統的核心部分是一片AT89S51微處理器。這是一種與MCS –51系列芯片兼容,帶有4KB閃速可擦除只讀存儲器的低功耗、高性能CMOS結構的8位微處理器。它除正常工作外還可工作于低功耗的閑置和掉電模式,進一步減少了芯片的功耗。其內部除了配有4K的FLASH,還具有128字節的RAM、2個16位定時器/計數器,5個兩級中斷源結構,32位并行輸入/輸出口和一個全雙工的串行口,看門狗定時電路等。由于AT89C51集FLASH、RAM、I/O、串行口于一體,所以只須配置少量的外圍電路,就能構成液位智能控制系統,整個系統的結構十分緊湊。這種緊湊的結構,有助于降低功耗、提高系統的可靠性。 1.2 鍵盤、顯示和報警部分 P1.0 " P1.5作為鍵盤的接口,連接一個2×4的鍵盤。分別實現液位上、下限顯示、液位上、下限的設定等功能。顯示器由4位LED組成,用于實時顯示各個液位的高度,以及顯示液位的上、下限值。 報警功能是當液位的高度超出設定值范圍時,進行聲、光報警。 1.3 數據采集和輸出控制部分 數據采集部分由液位變送器、放大電路和A/D轉換器組成。液位變送器的輸出為4 " 20mA的電流信號,經過轉換放大電路轉換成A/D0809所能接收0 " 5V電壓信號。在AT89C51單片機的控制下,實時采集液位數據,并對數據進行處理。 輸出控制部分根據PID算法所的結果,通過步進電機對流量閥進行控制,實現液位控制的目的。 2 軟件設計 系統軟件主要由主程序、采樣程序和PID算法程序和一些子程序組成。 2.1 主程序 主程序的流程圖如圖2所示。 圖2 主程序流程圖 主程序的主要功能是完成AT89C51的初始化,設置液位的上限和下限,顯示實時液位值,鍵掃描等工作。 2.2 采樣和數據處理模塊 本系統利用定時循環輪流對8個液位進行實時采樣,對實時數據進行數據處理,并采用PID控制方案。 由于本系統的執行機構是步進電機,所以我們采用了增量式PID控制。根據遞增原理可得 根據以上推導,得到增量式PID控制算法的程序流程圖如圖3所示。 圖3 增量式PID控制算法的流程圖 2.3其他功能 用戶可以通過鍵盤設定液位的上限值和下限值,以及在任意時候顯示液位的上下限值。當液位的高度超出或低于設定值時,進行聲光報警,以提醒操作人員進行及時的處理。 3 抗干擾對策 3.1硬件抗干擾設計 系統電源是一個重要部件,又是與外部電網直接聯系的部分,為了防止從電源系統引入干擾信號,在電源輸入端設置低通濾波器,濾去高次諧波成份。另外還采用了AT89S51中的看門狗定時器,以進一步提高系統硬件抗干擾的能力。 3.2軟件抗干擾設計 在程序設計時,將各程序模塊分區存放,彼此之間空出一些存儲單元,在這些單元中填充FF(RST指令)。同時對程序中重要的跳轉和調用子程序指令前均加入三個NOP指令,以保證程序流向的正確性,因為PC只要錯一個數碼,那么整段程序就會面目全非,從而造成檢測系統的混亂。 利用滑動平均濾波法求取平均值。將最近6次采樣得到的液位值,去除最大值和最小值,剩下的4個數據求算術平均值。 4 結束 該液位智能控制系統采用了單片機作為主控制器,結構簡單,可靠性高,抗干擾性強,由于應用了PID控制方案,系統的響應速度快,超調量小,系統穩定性好,具有一定的實用價值。 |