陳改霞 ,楊亞洲 ,吳保寧 ,李國鵬
(1.天水電氣傳動研究所有限責任公司,甘肅天水741020;2.大型電氣傳動系統與裝備技術國家重點實驗室,甘肅天水741020;3.西部鉆探青海鉆井公司,青海芒崖816400)
目前,在鍋爐控制器的市場上,利用單片機作為主控芯片的鍋爐控制器因其高可靠性、成本低廉、維修費用低、人性化的操作界面等優點,已逐漸取代傳統的繼電器型和 PLC 型的鍋爐控制器[1][2]。采用微型控制芯片單片機作為主控制芯片的鍋爐控制器,改造傳統PLC和低配置工控機的鍋爐控制系統已成必然趨勢。
鍋爐控制系統是一個典型的大慣性、大滯后、多變量的非線性過程控制器系統,系統中既有連續量的反饋控制,又有開關量的順序控制,各個模塊之間獨立編程,卻互相關聯,傳統的編程方式是在主程序中順序執行各個功能模塊,但是由于系統各個模塊以及控制過程的耦合性,程序順序執行可能產生邏輯錯誤,導致程序跑飛,控制器發生故障,并且給軟件開發初期的測試帶來了較大的難度[3]。
利用單片機靈活的編程方式[10],將有限狀態機的概念引入鍋爐控制軟件的設計,并分別將傳統順序控制和基于有限狀態機的程序控制的鍋爐控制器的長期穩定性做實驗測試,證明基于有限狀態機的智能鍋爐控制器其可靠性、穩定性以及可維護性都更為突出。該智能鍋爐控制器已完成科研開發及調試,正在投入市場使用。
鍋爐控制器要完成相關參數的采集、設置、控制及顯示功能,其硬件電路通常包括以下幾個模塊:單片機最小系統、模擬量采集模塊、AD轉換模塊、按鍵輸入模塊、時鐘控制模塊、掉電存儲模塊、繼電器控制模塊、液晶顯示模塊、報警模塊、電源模塊[9]。如圖1所示為智能鍋爐控制系統框圖,硬件電路的設計即各個功能模塊的電路實現,下面逐一簡單介紹。

圖1 鍋爐控制系統原理框圖
單片機最小系統是控制器的核心模塊,使用常見的51系列單片機,為便于擴展串口通信,使用11.0592MHz的晶振。其硬件電路的設計參考傳統單片機最小系統的設計即可[4]。
溫度采集模塊包括出水溫度和回水溫度的采集,使用兩路DALLAS公司的DS18B20溫度傳感器。DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,不需要額外的AD轉換,可直接與單片機進行通信。具有體積小,硬件接線簡單,抗干擾能力強,精度高的特點。?封裝好后可直接放置在鍋爐水中,與控制器的連接只需要一根線即可[5]。
AD轉換模塊使用12位串行多通道AD芯片TLC2543,將鍋爐中壓力和液位傳感器采集到的0~5V電壓信號或者4~20mA電流信號轉換成數字信號送給單片機。由于AD芯片只能接受0~5V的電壓信號,因此,文中采用了可將電流信號轉換成電壓信號的數字芯片RCV420,它可以將4~20mA電流信號轉換成AD轉換芯片可接受的0~5V的電壓信號。
按鍵輸入模塊包括六個獨立按鈕:電源鍵、自動啟停鍵、參數設置鍵、時間設置鍵、增加鍵(循環泵手動開啟鍵)、減少鍵(補水泵手動開啟鍵),使用CMOS8級靜態移位寄存器CD402B將六路按鍵狀態轉換成串口數據輸出給單片機進行相應動作。
時鐘控制模塊使用時鐘芯片PCF8563,用于實現控制器時鐘顯示。

圖2 時鐘控制電路
掉電存儲模塊使用E2PROM芯片AT24C04,用于保護相關參數的歷史信息,或者報警信息等。還可以實現控制器掉電參數的保存。
繼電器控制模塊包括鼓風機繼電器、給煤機繼電器、循環泵繼電器、補水泵繼電器、報警繼電器,使用MC1413達林頓管驅動繼電器,用于控制所述設備的啟停。
液晶顯示模塊使用約5寸大小的筆段式液晶屏。筆段式價格低廉,驅動簡單,一般使用HT1621驅動,HT1621可以驅動 32×4=128個筆段,相當于16 個"8"字,其接口是串行的,有 CS,WR,RD(RD也可以不用),DATA幾個引腳,與單片機的連接較點陣式液晶簡潔[6]。用于顯示溫度、時間、液位、壓力、控制器狀態、設備運行狀態和報警信息。
報警模塊用于檢測溫度、液位、壓力,當檢測值超過設置的報警值時,控制器驅動蜂鳴器報警,并連鎖關閉相應設備。
電源模塊是整個控制器的動力來源,用于將交流220V電壓轉換成5V,12V,±15V直流電壓,以滿足控制器相關數字芯片的供電。圖3所示為電源模塊電路設計,采用某公司LH20-10D0512,將220V的交流電直接轉換成5V和12V的直流電壓,采用A0515S將5V的電壓轉換成±15V的直流電壓。

圖3 電源電路
有限狀態機(FSM)是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型[7][8]。本文將有限狀態機的概念引入單片機鍋爐控制器的軟件設計,將鍋爐系統狀態分為空閑狀態、開機停止狀態、自動運行狀態、手動運行狀態、參數設置狀態、時間設置狀態、報警狀態,各狀態之間根據相應的條件相互轉移并執行相應動作。同時,利用有限狀態機設計按鍵輸入子模塊的程序,其狀態有:彈起狀態(released)、正在按下狀態(pressing)、確認按下狀態(pressed)、釋放狀態(releasing)。圖 4所示為程序主流程圖。

圖4 程序主流程圖
如圖5所示,使用基于有限狀態機的智能鍋爐控制器進行控制時,包括以下步驟:
A、控制器上電后,初始化溫度采集模塊、按鍵輸入模塊、液晶顯示模塊、A/D轉換模塊、繼電器控制模塊、時鐘控制模塊、掉電存儲模塊、復位時鐘模塊和報警模塊,等待電源鍵按下,此狀態定義為空閑狀態,若無按鍵按下,則一直掃描等待。
B、若電源鍵按下后,鍋爐系統進入開機停止狀態,液晶顯示模塊顯示出水溫度、回水溫度、時間、壓力、液位、控制器狀態和設備運行狀態,若出水溫度、回水溫度、壓力、液位中的某項超過設置的報警值,則進入報警狀態,驅動蜂鳴器進行報警;若出水溫度、回水溫度、壓力、液位均沒有超過設置的報警值,等待有按鍵按下時執行相關動作。
C、按下自動啟停鍵,進入自動運行狀態,根據出水溫度以及設置的上下限溫度通過繼電器控制模塊控制鼓風機和給煤機的啟停,根據開關泵溫度的大小以及出水溫度通過繼電器控制模塊控制循環泵的啟停,根據液位狀態通過繼電器控制模塊控制補水泵的啟停,自動運行狀態中也需實時監測溫度,壓力,液位的大小,若出水溫度、回水溫度、壓力、液位中的某項超過設置的報警值,則進入報警狀態,驅動蜂鳴器進行報警。
D、若再次按下自動啟停鍵則結束自動運行狀態并回到開機停止狀態,關閉相應設備的運行,在開機停止狀態下,可進入手動運行狀態,通過增加鍵(循環泵手動開啟鍵)和減少鍵(補水泵手動開啟鍵)手動啟停循環泵和補水泵。
E、在開機停止狀態下,按下參數設置鍵,進入參數設置狀態,第一次按下參數設置鍵,顯示報警溫度,此時可通過增加鍵和減小鍵設置報警溫度,再次按下參數設置鍵,報警溫度設置完成,第三次按下參數設置鍵,顯示上限溫度,此時可通過增加鍵和減小鍵設置上限溫度,再次按下參數設置鍵,上限溫度設置完成,依次類推,可分別設置下限溫度、開泵溫度、關泵溫度,關泵溫度設置完成后,再次按下參數設置鍵,則退出參數設置狀態并回到開機停止狀態。
F、在開機停止狀態下,按下時間設置鍵,進入時間設置狀態,第一次按下時間設置鍵,顯示定時時間段,此時可通過增加鍵和減小鍵設置定時時間段,再次按下時間設置鍵,定時時間段設置完成,第三次按下時間設置鍵,顯示實時時間,可通過增加鍵和減小鍵設置實時時間,再次按下時間設置鍵,實時時間設置完成,設置完成后再次按下時間設置鍵,退出時間設置狀態,回到開機停止狀態。

圖5 鍋爐控制系統狀態轉換圖
圖6是按鍵輸入子模塊狀態圖。圖中:(301)釋放狀態(released);(302)正在按下狀態(pressing);(303)確認按下狀態(pressed);(304)正在釋放狀態(releasing)。

圖6 按鍵輸入子模塊狀態轉換圖
按鍵的工作狀態如下:
A、釋放狀態,按鍵在空閑時為釋放狀態,此時等待是否有按鍵按下;
B、有鍵按下后,等待一定的延時,若在此延時時間段內一直有鍵按下,則確認有鍵按下,進入確認按下狀態,若在此延時時間段內,按鍵消失,則認為是按鍵抖動,進入釋放狀態繼續等待;
C、確認有鍵按下后,等待按鍵是否被釋放,此時同樣設定一定的延時,若在此延時時間段內按鍵確認被釋放,則進入釋放狀態,若在延時時間段內,按鍵仍在確認按下狀態,則認為是按鍵抖動,仍為確認按下狀態。
控制器的試驗調試按模塊化測試、系統測試分步進行。在完成控制器PCB設計、器件焊接后,對控制器的各個模塊進行逐個調試。
電源模塊輸入交流電壓85~264V,頻率47~63Hz,電流 80Ma;
輸出直流電壓:DC-5V/2500mA,DC-12V/600mA,DC-±15V/2W;
經示波器對電源模塊輸出電壓進行監測,輸出電壓波形穩定,幅值滿足設計要求。
在電源滿足要求的基礎上,給控制器上電,單片機最小系統正常起振,檢查各個芯片供電電壓滿足需求。
液晶顯示模塊采用定制段碼液晶,供電電源3V,HT1621B驅動。初始上電后,液晶背光源LED亮,液晶無任何顯示。段碼液晶包含8個七段數碼管,58個筆段,編寫測試用例,液晶上各個筆段可以正確顯示或不顯示。液晶的正確顯示是測試其它模塊的必要基礎。
溫度采集使用兩片全數字溫度轉換芯片DS18B20分別采集鍋爐出水溫度和回水溫度,編寫測試用例,讓兩個溫度顯示在液晶屏上,將溫度采集端子分別放在常溫和溫度較高的水中,從液晶屏上可以看出兩種溫度的實時值。
AD轉換模塊使用某公司11路模擬量輸入的12位分辨率模數轉換芯片TLC2543,該芯片的模擬量輸入為0~5V電壓,為滿足輸出為4~20mA電流信號的傳感器和0~5V電壓信號的傳感器,本控制器設計有4~20mA電流信號轉換成0~5V電壓信號電路。
測試時,在模擬量輸入端加一個滑動變阻器,使其電壓從0~5V變化,編寫測試用例,觀察液晶顯示器上液位變化或壓強變化,顯示正確。
時鐘控制模塊是控制器用來定時的,采用四位數碼管顯示小時和分鐘,可在程序中設置時鐘初始值,也可以通過時間設置鍵設定當前時間,以及定時時間段的設置。
系統測試是在上述各個模塊測試都通過的基礎上聯合按鍵輸入和繼電器控制器模塊一起進行的,按鍵輸入模塊的測試主要是按鍵功能測試和按鍵消抖測試。
按鍵功能測試:詳細測試步驟按本文2.1節所述進行,控制器在開機運行狀態下的液晶顯示界面如圖7所示。

圖7 控制器開機啟動狀態實物圖
按鍵消抖測試:分別編寫采用傳統延時法消抖和基于有限狀態機消抖的測試用例,測試按鍵靈敏度和抗干擾情況,通過實驗驗證,基于有限狀態機編寫的按鍵消抖程序其穩定性和抗干擾能力更好,且占用CPU資源較小,程序效率更高。
在上述測試的基礎上,對控制器進行長時間的穩定性測試,測試時間連續運行為72小時,在工作時間每隔一個小時對控制器進行操作和監控,查看記錄相關數據。實驗證明,該控制器連續運行72小時期間,各個功能正常,未發生異常現象。
本文分析了采用微型控制器單片機代替傳統PLC控制改造鍋爐控制系統所能帶來的優勢,介紹了一種基于有限狀態機的智能鍋爐控制器,詳細闡述了該控制器的硬件電路設計,以及采用有限狀態機概念的軟件程序設計,最后對控制器做了實驗調試,驗證了其各個模塊功能的正確性,并對整個控制做了系統的穩定性調試,實驗驗證本文設計的智能鍋爐控制器在小型燃煤鍋爐系統中長期運行的安全性和穩定性。該控制器不僅能廣泛應用于偏遠山區家庭燃煤鍋爐供暖設備的控制,而且經過技術升級后可應用于大型鍋爐控制系統。