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