伍先春
(1.合肥工業(yè)大學(xué),安徽合肥230009;2.蕪湖市鐵山賓館,安徽蕪湖241000)
多點溫度檢測控制
伍先春
(1.合肥工業(yè)大學(xué),安徽合肥230009;2.蕪湖市鐵山賓館,安徽蕪湖241000)
結(jié)合鐵山賓館多處生活熱水控溫的需求,提出采用PC機(jī)和單片機(jī)相結(jié)合的控制方案,由PC機(jī)進(jìn)行多點溫度集中監(jiān)控和管理,單片機(jī)現(xiàn)場實時溫度顯示和自動控溫。實踐表明,該控制方案在工、農(nóng)業(yè)生產(chǎn)和日常生活等諸多領(lǐng)域有非常廣闊的應(yīng)用前景,值得推廣。
多點溫度;PC;單片機(jī);自動控制;串行通信;管理
蕪湖市鐵山賓館的每幢客房樓設(shè)置有獨立的生活熱水加熱裝置,以前生活水溫控制全靠員工不停巡視來控制、記錄水溫,員工的值班工作量很大,而且經(jīng)常出現(xiàn)水溫過高或過低的現(xiàn)象。因此我們對該系統(tǒng)進(jìn)行改造:
一、在值班點設(shè)置一臺PC機(jī),對所有的六幢客房樓的生活熱水加熱裝置進(jìn)行溫度顯示、監(jiān)控、設(shè)置的集中管理;任何一處出現(xiàn)超、低溫時,發(fā)出聲光報警。
二、在每幢客房樓的生活熱水加熱管道上安裝電動閥門,現(xiàn)場安裝單片機(jī)實時顯示溫度,根據(jù)溫度變化自動控制閥門開、閉;超溫或低溫時發(fā)出聲光報警。
三、可以現(xiàn)場對單片機(jī)進(jìn)行溫度等的設(shè)定;亦可以遠(yuǎn)程對單片機(jī)進(jìn)行管理。
本設(shè)計運(yùn)用主從分布式思想,由一臺上位機(jī)(PC機(jī)),多臺下位機(jī)(單片機(jī))多點溫度數(shù)據(jù)采集,組成兩級分布式多點溫度測量的巡回檢測系統(tǒng)。該系統(tǒng)采用RS-485串行通訊標(biāo)準(zhǔn),通過上位機(jī)控制下位機(jī)進(jìn)行現(xiàn)場溫度采集。溫度值既可以送回主控PC進(jìn)行數(shù)據(jù)處理,由顯示器集中顯示。也可以由下位機(jī)單獨工作,實時顯示當(dāng)前各點的溫度值,并對各點進(jìn)行實時溫度控制,并具有超、低溫聲光報警功能。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
每路單片機(jī)帶有四路溫度傳感器,負(fù)責(zé)溫度數(shù)據(jù)的現(xiàn)場采集、處理、實時溫度值顯示。可以給每路溫度傳感器設(shè)置溫度上、下限值,并根據(jù)此上、下限值進(jìn)行溫度的實時控制。如果超溫、低溫均可進(jìn)行聲光報警。根據(jù)功能要求,可以設(shè)計單片機(jī)的硬件電路如下:
圖2 單片機(jī)系統(tǒng)結(jié)構(gòu)示意圖
近十年來在工業(yè)測控領(lǐng)域,國內(nèi)運(yùn)用最多的是Atmel公司的AT89系列,它的標(biāo)準(zhǔn)型產(chǎn)品在指令上,在管腳上都兼容Intel公司的MCS-51系列的第一代CPU8031,并在片內(nèi)存儲器、振蕩電路、功耗、軟件加密以及內(nèi)置看門狗等技術(shù)水平上有很大程度的提高。因此選用ATMEL的8位單片機(jī)AT89S52。
下位機(jī)溫度采集傳感器采用的是數(shù)字溫度傳感器DS18B20。DS18B20利用單總線的特點可以方便的實現(xiàn)多點溫度的測量,輕松的組建傳感器網(wǎng)絡(luò),系統(tǒng)的抗干擾性好、設(shè)計靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場溫度測量。
DS18B20的內(nèi)部結(jié)構(gòu)如下圖所示:
圖3 DS18B20內(nèi)部結(jié)構(gòu)圖
DS18B20支持“一線總線”接口,測量溫度范圍為-55° C~+125°C,在-10~+85°C范圍內(nèi),精度為±0.5°C。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。
鍵盤電路比較簡單,設(shè)置四個鍵K1,K2.K3,K4。其中:
K1(“■”鍵):用來選擇顯示方式,循環(huán)切換可以選擇循環(huán)輪流顯示各個傳感器的實時溫度或選擇顯示指定傳感器的實時溫度兩種方式。
K2:循環(huán)切換,可以選擇設(shè)定不同溫度傳感器的上,下限溫度報警值。
K3(“▲”鍵):在選擇顯示指定傳感器的實時溫度方式時,按“▲“鍵,傳感器號加1。在選擇設(shè)定傳感器的上,下限溫度報警值時,按“▲”鍵,設(shè)定值加1。
K4(“▼”鍵):在選擇顯示指定傳感器的實時溫度方式時,按“▼”鍵,傳感器號減1。在選擇設(shè)定傳感器的上,下限溫度報警值時,按“▼”鍵,設(shè)定值減1。
圖4 89S52單片機(jī)鍵盤和報警電路圖
圖5 溫度控制電路圖
該系統(tǒng)由上位機(jī)和下位機(jī)組成,系統(tǒng)中單片機(jī)負(fù)責(zé)數(shù)據(jù)采集、處理和控制,上位機(jī)負(fù)責(zé)對單片機(jī)的數(shù)據(jù)進(jìn)行處理,非常直觀地對所有溫度值進(jìn)行顯示、監(jiān)控。通信協(xié)議采用半雙工異步串行通信方式,通過RS485的RTS信號進(jìn)行收發(fā)轉(zhuǎn)換,上位機(jī)與下位機(jī)之間采用主從式通訊。
(1)PC機(jī)程序結(jié)構(gòu)
采用的VB環(huán)境下PC機(jī)與單片機(jī)之間實現(xiàn)串行通訊的軟硬件方案。PC微型機(jī)程序結(jié)構(gòu)示意圖如下:
圖6 PC機(jī)程序結(jié)構(gòu)框圖
(2)PC機(jī)多點溫度控制報警顯示系統(tǒng)主界面:
圖7 PC機(jī)程序界面
主要的程序代碼如下:
PrivateSubTimer1_Timer()
Ifnumb>=3Thennumb=0
numb=numb+1
Callorder_num
EndSub
Suborder_num()'周期發(fā)出請求指令,自動連續(xù)采集
Ifnumb=1Then
a(0)=&H81
a(1)=&H81
a(2)=&HA1
a(3)=&HA1
MSComm1.Output=a
ElseIfnumb=2Then
a(0)=&H82
a(1)=&H82
a(2)=&HA2
'讀取各單片機(jī)返回的數(shù)據(jù)串
'獲取實時溫度值
temp=Left(buffer1,25)
data1=Val("&H"<rim(Mid(temp,4,2)))*16+ Val("&H"&Mid(temp,1,1))+Val("&H"&Mid(temp, 2,1))*0.0625
data2=Val("&H"<rim(Mid(temp,10,2)))*16+ Val("&H"&Mid(temp,7,1))+Val("&H"&Mid(temp, 8,1))*0.0625
data3=Val("&H"<rim(Mid(temp,16,2)))*16+ Val("&H"&Mid(temp,13,1))+Val("&H"&Mid (temp,14,1))*0.0625
data4=Val("&H"<rim(Mid(temp,22,2)))*16+ Val("&H"&Mid(temp,19,1))+Val("&H"&Mid (temp,20,1))*0.0625
其余程序代碼略。
(1)單片機(jī)主程序
整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,軟件由監(jiān)控軟件和執(zhí)行軟件組成。其中監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊。而執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。
主程序調(diào)用了9個子程序,分別是溫度轉(zhuǎn)換開始子程序、讀出溫度值子程序、根據(jù)溫度進(jìn)行控制子程序、溫度顯示模式設(shè)定子程序、溫度數(shù)據(jù)計算處理子程序、顯示數(shù)據(jù)BCD碼刷新子程序、數(shù)碼管顯示子程序、鍵盤掃描以及按鍵處理程序、單片機(jī)與PC機(jī)串口通訊程序。各子程序功能如下:
1)溫度轉(zhuǎn)換開始子程序:通知各溫度傳感器開始進(jìn)行溫度轉(zhuǎn)換。
2)讀出溫度值子程序:從各個DS18B20的高速暫存器中讀出溫度值。
3)溫度控制子程序:根據(jù)各個溫度傳感器設(shè)定的上下限報警值和實時溫度值來控制各個繼電器的通斷,并進(jìn)行聲光報警。
4)溫度顯示模式設(shè)定子程序:用來選擇是順序循環(huán)檢測顯示,還是選擇指定的溫度傳感器進(jìn)行溫度顯示。
5)溫度數(shù)據(jù)計算處理子程序:用于將DS18B20讀出的二進(jìn)制溫度轉(zhuǎn)化為十進(jìn)制數(shù)值。
6)顯示數(shù)據(jù)BCD碼刷新子程序:用于顯示區(qū)BCD碼溫度值刷新子程序。
7)數(shù)碼管顯示子程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。
8)鍵盤掃描電路及按鍵處理程序:實現(xiàn)鍵盤的輸入按鍵的識別,主要用于對各個溫度傳感器上下限報警值的設(shè)定。
9)中斷控制程序:實現(xiàn)循環(huán)顯示功能。
10)串口通訊程序:實現(xiàn)PC機(jī)與單片機(jī)通訊,將溫度數(shù)據(jù)傳送給PC機(jī)。
主程序流程圖如下:
圖8 主程序流程圖
圖9 讀出溫度值和溫度上下限值流程圖
2)溫度控制子程序(見圖10):
3)(4)溫度數(shù)據(jù)計算處理子程序(見圖11):
圖10 溫度控制子程序流程圖
圖11 溫度數(shù)據(jù)計算處理子程序流程圖
其余程序略。
該系統(tǒng)能夠輕松地實現(xiàn)多點溫度檢測控制,PC機(jī)可以形象直觀地進(jìn)行集中監(jiān)控和管理;單片機(jī)在現(xiàn)場實時、可靠地進(jìn)行自動控制。操作方便,有效地節(jié)省了人力和物力。該系統(tǒng)具有通用性,可用于多種場合,具有很好的實用價值。
[1]彭為,黃科.雷道仲單片機(jī)典型系統(tǒng)設(shè)計實例精講[M].北京:電子工業(yè)出版社,2007.
[2]王為青,邱文勛.51單片機(jī)開發(fā)案例精選[M].北京:人民郵電出版社,2007.
[3]李江全,張麗,岑紅蕾.VisualBasic串口通信與測控應(yīng)用技術(shù)實戰(zhàn)祥解[M].北京:人民郵電出版社,2007.
[4]余永權(quán).ATMEL89系列單片機(jī)應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
[5]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2002.
[6]周云波.由DS18B20單線數(shù)字溫度計構(gòu)成的單線多點溫度測量系統(tǒng)[J].電子技術(shù)應(yīng)用,1996,(2):15-20.
[7]周月霞,孫傳友.DS18B20硬件連接及軟件編程[J].傳感器世界,2001,(12).
(責(zé)任編輯:袁清萍)
book=1,ebook=1
TP272
A
1671-752X(2012)02-0061-04
2002-01-24
伍先春(1969-),男,安徽蕪湖人,合肥工業(yè)大學(xué)機(jī)械與汽車學(xué)院教師,蕪湖市鐵山賓館工程師。