基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PrivateDeclareFunctiontimeGetTimeLib"winmm.dll"()AsLong延時(shí)函數(shù)單位是毫秒支持小數(shù)PublicFunctionYanShi(HaoMiaoAsDouble)Dimt1t1=timeGetTimeWhile(timeGetTime-t1)<HaoMiaoDoEventsWendEndFunction基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)控系統(tǒng)設(shè)計(jì)〔二〕-上位機(jī)設(shè)計(jì)院系自動(dòng)化學(xué)院專業(yè)自動(dòng)化班級(jí)5407202學(xué)號(hào)200504072064姓名姚維丹指導(dǎo)教師王昱負(fù)責(zé)教師王昱沈陽航空工業(yè)學(xué)院2023年6月摘要溫度是一個(gè)根本的物理量,它是工農(nóng)業(yè)生產(chǎn)過程中最普遍、最主要的工藝參數(shù)之一,實(shí)時(shí)精確的溫度監(jiān)控是產(chǎn)品質(zhì)量的重要保證。隨著現(xiàn)代科技的開展,電子計(jì)算機(jī)已越來越多地應(yīng)用于溫度的監(jiān)控中。本文針對(duì)下位機(jī)多點(diǎn)溫度測控系統(tǒng)的各點(diǎn)溫度值,通過VB建立一個(gè)溫度信息管理系統(tǒng)。詳細(xì)闡述了系統(tǒng)的設(shè)計(jì)方法及功能。實(shí)現(xiàn)了與溫度測控電路進(jìn)行實(shí)時(shí)數(shù)據(jù)通信,完成溫度信息的上傳和溫度設(shè)定值的下傳功能。采用Access設(shè)計(jì)數(shù)據(jù)庫,記錄用戶信息和溫度信息。用VB連接數(shù)據(jù)庫,完成溫度信息的查詢、顯示、趨勢圖、報(bào)表生成等功能。到達(dá)了實(shí)時(shí)記錄溫度信息,定時(shí)傳送溫度設(shè)定值的技術(shù)指標(biāo)要求。該多點(diǎn)監(jiān)控系統(tǒng)擁有良好的人機(jī)界面,通用性好,操作簡單、方便、易于實(shí)現(xiàn)溫度的集中監(jiān)控和管理等特點(diǎn),具有較廣泛的應(yīng)用前景。關(guān)鍵詞:VB;數(shù)據(jù)庫;溫度;監(jiān)控AbstractTemperatureisafundamentalphysicalquantity,itisoneofthemostgeneralandimportantprocessparametersinindustrialandagriculturalproduction.Accuratereal-timetemperaturemonitoringisanimportantguaranteeforthequalityofproducts.Withthedevelopmentofmodernscienceandtechnology,electroniccomputerhasbeenusedintemperaturemonitoringfrequently.Therefore,inthispaperaninformationmanagementsystemoftemperatureisestablishedformulti-pointtemperaturemonitoringsystembyVB.Thedesignmethodsandfunctionsofthesystemisilluminatedindetail.Thesystemhasnotonlyachievedreal-timedatacommunicationwithtemperaturemonitoringandcontrolcircuitsbutalsoaccomplishedthetransferoftemperatureinformationandtemperaturesettings.Anaccessdatabaseisusedtorecordusers’informationandtemperatureinformation.UsingVBtoconnecttothedatabasethesystemhasmanyfunctionssuchasthequery,display,trend,reportgenerationandsoon.Thetechnicaltargetoftherecord,thetransmissionofreal-timetemperatureinformationandthetemperaturesettingsisalsoachieved.Themulti-pointtemperaturemonitoringsystemhasgoodhuman-computerinterface,goodcommon,simpleandconvenientoperation.Itiseasytoimplementcentralizedmonitoringandmanagementofthetemperature.Thesystemhasaveryextensiveapplicationprospect.Keywords:VB;database;temperature;monitoring目錄第1章緒論11.1課題背景11.2多點(diǎn)溫度監(jiān)控系統(tǒng)開展現(xiàn)狀11.3課題研究內(nèi)容及技術(shù)指標(biāo)41.4本文安排5第2章多點(diǎn)溫度監(jiān)控系統(tǒng)總體方案的設(shè)計(jì)62.1系統(tǒng)描述62.2總體方案設(shè)計(jì)62.3課題主要技術(shù)指標(biāo)7第3章VB與單片機(jī)通信的建立83.1串行通信及RS—232總線8串行通信83.1.2RS-232總線標(biāo)準(zhǔn)103.2VisualBasic6.0中的串行通信控件MSComm113.2.1MSComm控件處理通信的方式123.2.2MSComm控件的常用屬性123.2.3MSComm控件的使用143.3PC機(jī)與AT89S51單片機(jī)的通信15硬件連接線路15通信協(xié)議153.3.3VB程序編制16第4章多點(diǎn)溫度信息管理系統(tǒng)194.1多點(diǎn)溫度信息管理系統(tǒng)功能194.2數(shù)據(jù)庫的設(shè)計(jì)204.2.1Access數(shù)據(jù)庫的設(shè)計(jì)204.2.2VB操作Access數(shù)據(jù)庫的方法21數(shù)據(jù)庫的生成224.3應(yīng)用程序的設(shè)計(jì)22用戶登陸模塊設(shè)計(jì)23系統(tǒng)功能模塊設(shè)計(jì)24主界面的設(shè)計(jì)25顯示模塊以及數(shù)據(jù)庫顯示模塊的設(shè)計(jì)28查詢模塊的設(shè)計(jì)29通信及趨勢圖模塊的設(shè)計(jì)30報(bào)表模塊的設(shè)計(jì)314.3.8“關(guān)于〞模塊的設(shè)計(jì)32保存應(yīng)用程序33建立可執(zhí)行文件34結(jié)論35社會(huì)經(jīng)濟(jì)效益分析36參考文獻(xiàn)37致謝39附錄程序清單40緒論溫度是表征物體冷熱程度的物理量,在日常生活、工業(yè)自動(dòng)化、家用電器、環(huán)境保護(hù)、平安生產(chǎn)和汽車工業(yè)等中都是根本的檢測控制參數(shù)之一。所以對(duì)溫度的監(jiān)控管理在現(xiàn)代化生產(chǎn)中顯得尤為重要。課題背景在我們的日常生活中,尤其是在北方,居民小區(qū)內(nèi)冬季的供暖設(shè)備一般采用鍋爐燒水供應(yīng)。大多數(shù)的鍋爐房只單純的對(duì)出水溫度進(jìn)行了控制,而沒有針對(duì)各個(gè)用戶房間溫度進(jìn)行分別控制,從而不能有效的調(diào)節(jié)用戶的溫度,也造成了資源的浪費(fèi)。多點(diǎn)溫度監(jiān)控系統(tǒng)那么針對(duì)各個(gè)用戶,分別采集各個(gè)用戶的溫度,上傳給計(jì)算機(jī),計(jì)算機(jī)通過該溫度與設(shè)定值之間的差值對(duì)各個(gè)用戶進(jìn)行分別有效地調(diào)節(jié)控制,實(shí)現(xiàn)了溫度的自動(dòng)化控制,同時(shí)也防止了不必要的資源浪費(fèi)。此外,在農(nóng)業(yè)的生產(chǎn)中,大棚種植現(xiàn)在已經(jīng)成為了農(nóng)業(yè)生產(chǎn)中的主要局部。蔬菜作物的生長是需要一定溫度的,這就要求大棚需要保持著恒定的一個(gè)溫度以便使蔬菜等作物最好,最快的生長,以獲得最大的經(jīng)濟(jì)效益。多點(diǎn)溫度監(jiān)控系統(tǒng)在大棚中的應(yīng)用就方便了農(nóng)民的生產(chǎn),節(jié)省了資源。溫度的測量和控制是許多行業(yè)的重要工作目標(biāo)之一,不管是日常取暖、大棚種植還是糧食倉庫、中藥材倉庫、圖書保存,都需要在符合規(guī)定的溫度環(huán)境條件之中。然而溫度又是最不易保障的一項(xiàng)指標(biāo),針對(duì)這一情況,研制可實(shí)用的多點(diǎn)溫度檢測與控制系統(tǒng)就顯得非常重要??偠灾?,在現(xiàn)在的生活、生產(chǎn)中,多點(diǎn)溫度監(jiān)控系統(tǒng)都有著很廣闊的應(yīng)用前景。多點(diǎn)溫度監(jiān)控系統(tǒng)開展現(xiàn)狀隨著微型計(jì)算機(jī)和傳感器技術(shù)的迅速開展,自動(dòng)檢測領(lǐng)域發(fā)生了巨大變化,針對(duì)溫度的自動(dòng)檢測控制方面的研究有了明顯的進(jìn)展。對(duì)于溫度監(jiān)控系統(tǒng)來說,由傳統(tǒng)的單點(diǎn)溫度監(jiān)控到現(xiàn)在的多點(diǎn)溫度監(jiān)控;由傳統(tǒng)的集散控制到現(xiàn)在的現(xiàn)場總線控制等都是一個(gè)很大的進(jìn)步。尤其是多點(diǎn)溫度監(jiān)控系統(tǒng)在現(xiàn)如今人們的生活、生產(chǎn)中越來越發(fā)揮著它所獨(dú)有的優(yōu)勢:集中化管理,現(xiàn)場總線式監(jiān)控。比方,中國是一個(gè)糧食大國,對(duì)糧食的儲(chǔ)藏是農(nóng)業(yè)生產(chǎn)過程中的一個(gè)非常重要的環(huán)節(jié)。為此設(shè)計(jì)了糧食倉庫溫度自動(dòng)化監(jiān)控系統(tǒng)。它的控制系統(tǒng)由中央控制裝置、終端控制設(shè)備、傳感器等組成。先編制出倉庫存放糧食最優(yōu)環(huán)境條件的管理程序表,存儲(chǔ)于電子計(jì)算機(jī)的記憶裝置中,電子計(jì)算機(jī)根據(jù)程序表確認(rèn)、修正各倉庫的參數(shù),并給終端控制系統(tǒng)指令。終端控制設(shè)備向中央控制裝置輸送檢測信息,根據(jù)中央控制裝置的指令輸出控制信號(hào),使電器機(jī)械設(shè)備執(zhí)行動(dòng)作,實(shí)現(xiàn)糧食倉庫的環(huán)境調(diào)節(jié)。該種系統(tǒng)可以到達(dá)自動(dòng)控制降溫、除濕、通風(fēng)。根據(jù)需要,通過鍵盤將信息輸入中央管理室,根據(jù)情況可隨時(shí)調(diào)節(jié)倉庫溫度。糧食倉庫溫度濕度自動(dòng)化控制系統(tǒng)在大型現(xiàn)代化糧食倉庫中的使用,是現(xiàn)代化高新技術(shù)的表達(dá)。美國、日本的倉庫監(jiān)測設(shè)施近20年來開展很快,他們結(jié)合本國條件做出了具有創(chuàng)新特色的成就,其中倉庫環(huán)境調(diào)控技術(shù)均有較高水平,但其監(jiān)控設(shè)備價(jià)格昂貴。我國近年引進(jìn)了多達(dá)16個(gè)國家和地區(qū)的倉庫環(huán)境控制系統(tǒng),對(duì)吸收國外先進(jìn)經(jīng)驗(yàn)、推動(dòng)倉庫溫度濕度自動(dòng)檢測產(chǎn)生了積極的作用,但多因能耗過大,造價(jià)高,品種未能配套,未能到達(dá)很好的效果。中國的倉庫環(huán)境綜合控制系統(tǒng)必須走適合中國國情的開展道路,在引進(jìn)、消化、吸收國內(nèi)外先進(jìn)技術(shù)和科學(xué)管理的根底上,進(jìn)行總結(jié)提高、集成創(chuàng)新、超前示范,既開發(fā)適宜我國經(jīng)濟(jì)開展水平,又能滿足不同氣候條件,接近或到達(dá)世界先進(jìn)水平的智能化倉庫監(jiān)測系統(tǒng)。在專用品種、綜合配套技術(shù)、貯運(yùn)營銷上,應(yīng)該研制具有中國知識(shí)產(chǎn)權(quán)的產(chǎn)品和技術(shù)。再比方,西安建筑科技大學(xué)研究生劉金頌的碩士論文所設(shè)計(jì)的變風(fēng)量空調(diào)系統(tǒng)不但能克服定風(fēng)量空調(diào)系統(tǒng)僅用一個(gè)送風(fēng)參數(shù)無法滿足不同房間或不同區(qū)域的不同室內(nèi)空氣環(huán)境要求的問題,也可防止風(fēng)機(jī)盤管系統(tǒng)常附帶的室內(nèi)吊頂凝水、霉菌污染的問題;又具有良好的節(jié)能效果。但是要使變風(fēng)量空調(diào)系統(tǒng)成功運(yùn)行,充分表達(dá)其節(jié)能、衛(wèi)生、舒適及良好經(jīng)濟(jì)性,關(guān)鍵在于控制系統(tǒng)能否按照空調(diào)室內(nèi)的要求進(jìn)行控制。變風(fēng)量空調(diào)系統(tǒng)是靠變風(fēng)量末端實(shí)現(xiàn)的,而控制變風(fēng)量末端設(shè)備的依據(jù)是室內(nèi)空調(diào)參數(shù),合理準(zhǔn)確的測量室內(nèi)參數(shù)是實(shí)現(xiàn)控制的根本保證,在此根底上,提出一個(gè)合理的控制點(diǎn)。變風(fēng)量系統(tǒng)在多種末端裝置形式和控制方式下的室內(nèi)特性,然后對(duì)VAV末端裝置和控制形式進(jìn)行設(shè)計(jì)、優(yōu)化,成功實(shí)現(xiàn)VAV空調(diào)系統(tǒng)的選型、設(shè)計(jì)和應(yīng)用。對(duì)VAV空調(diào)系統(tǒng)的特性,國外研究較多,特別是對(duì)變風(fēng)量系統(tǒng)的控制和調(diào)節(jié)方法的研究,并有多年的設(shè)計(jì)運(yùn)行實(shí)績。然而,國內(nèi)以前對(duì)VAV空調(diào)系統(tǒng)沒有引起足夠重視,對(duì)其特性研究較少;有些人也做了些研究,但大多套用自控模型進(jìn)行模擬,研究得到的結(jié)果對(duì)VAV空調(diào)系統(tǒng)實(shí)際存在的問題指導(dǎo)意義不大。西安建筑科技大學(xué)變風(fēng)量空調(diào)實(shí)驗(yàn)室申請(qǐng)了陜西省教育廳專項(xiàng)科研方案工程,以研制多點(diǎn)智能測溫系統(tǒng)為技術(shù)平臺(tái),對(duì)VAV空調(diào)系統(tǒng)在多熱污染源、多種變風(fēng)量末端形式下對(duì)變風(fēng)量系統(tǒng)室內(nèi)氣流流動(dòng)特性和溫度場進(jìn)行測量和模擬,得到多污染源、多種變風(fēng)量末端形式下的系統(tǒng)特性,進(jìn)而提出變風(fēng)量空調(diào)系統(tǒng)的最正確控制參數(shù)和控制方案,實(shí)現(xiàn)室內(nèi)環(huán)境的健康舒適,為變風(fēng)量系統(tǒng)的設(shè)計(jì)、應(yīng)用提供理論依據(jù)。目前,針對(duì)變風(fēng)量空調(diào)系統(tǒng)在公共建筑物中多熱污染源、多種末端裝置形式下,對(duì)室內(nèi)氣流流動(dòng)特性和溫度場狀況進(jìn)行測量和模擬,在國內(nèi)還沒有人系統(tǒng)地做出結(jié)果,而多污染源下的氣流形式及在變風(fēng)量系統(tǒng)下的空調(diào)效果更無人做出。劉金頌的課題就是該科研工程的子課題,即根據(jù)西安建筑科技大學(xué)變風(fēng)量空調(diào)實(shí)驗(yàn)室現(xiàn)有的多點(diǎn)測溫系統(tǒng)的缺陷,研究一種新型的多點(diǎn)智能測溫系統(tǒng)。對(duì)多熱污染源、各種末端形式(節(jié)流型、風(fēng)機(jī)動(dòng)力型和旁通型變風(fēng)量箱,送風(fēng)口形式有孔板型和條縫型風(fēng)口)下室內(nèi)的多點(diǎn)溫度進(jìn)行測量,為溫度場分析提供準(zhǔn)確可靠的數(shù)據(jù)。此外,迄今為止還沒有一種CPU散熱系統(tǒng)能保證永不失效。失去了散熱系統(tǒng)保護(hù)傘的“芯〞,往往會(huì)在幾秒鐘內(nèi)永遠(yuǎn)停止“跳動(dòng)〞。微處理器功耗和溫度隨運(yùn)行速度的加快而不斷增大,現(xiàn)已成為一個(gè)不折不扣的“燙手山芋〞。如何使處理器平安運(yùn)行,提高系統(tǒng)的可靠性,防止因過熱而產(chǎn)生的死機(jī)、藍(lán)屏、反復(fù)重啟甚至處理器燒毀,不僅是處理器所面臨的困境,也是留給主板設(shè)計(jì)者的一個(gè)重要課題。為此,Intel率先提出了溫度監(jiān)控器〔ThermalMonitor〕的概念,通過對(duì)處理器進(jìn)行溫度控制和過熱保護(hù),大大提高了它的穩(wěn)定性和平安性。還有,焦餅中心溫度是焦炭成熟的標(biāo)志,也是焦?fàn)t標(biāo)準(zhǔn)溫度制定的依據(jù)。為了了解所制定的標(biāo)準(zhǔn)溫度是否合理,以及焦餅沿炭化室長向和高向成熟的均勻情況。需要選擇加熱正常的爐號(hào),在推焦前半個(gè)小時(shí)里測量焦餅中心溫度。在炭化室機(jī)焦側(cè)焦餅中各取上中下三點(diǎn),分別測量各點(diǎn)溫度,取其平均值作為焦餅中心溫度,并分別求出焦餅的上下溫度差,溫差越小,焦餅質(zhì)量就越好。一般焦餅上下各點(diǎn)溫差不超過100℃,最終焦餅中心溫度應(yīng)保持在100050℃。正常生產(chǎn)條件下,焦餅中心溫度規(guī)定一季度測量一次,當(dāng)更換加熱煤氣種類、改變結(jié)焦時(shí)間、改變標(biāo)準(zhǔn)溫度、配煤比變更較大以及爐溫有較大波動(dòng)時(shí),也應(yīng)測量焦餅中心溫度對(duì)標(biāo)準(zhǔn)溫度進(jìn)行檢查校正。工廠測量焦餅中心溫度時(shí)一般采用在機(jī)焦側(cè)插入特制的測量管,測量管內(nèi)所特制的點(diǎn)來代表焦餅中心溫度。由于管子長,插拔和測量過程具有高溫、高空、有電并且與其他工種交叉作業(yè)的危險(xiǎn)因素,特別是以往的拔管方法,多人站在裝煤車上高空作業(yè),拔出管子后離燒燙的管子和翻開的爐口太近,容易燒傷燙傷,具有一定的危險(xiǎn)性。為了防止操作時(shí)發(fā)生意外,保障作業(yè)過程平安順利進(jìn)行,就必須制定專用的測溫工具和詳細(xì)的作業(yè)步驟?;趥鞲衅鞯哪蜔岢潭冗€不夠到達(dá)這個(gè)指標(biāo),所以多點(diǎn)溫度監(jiān)控系統(tǒng)雖然可以防止上述操作的弊端,簡單、有效的對(duì)溫度進(jìn)行檢測,但還不能應(yīng)用在對(duì)焦餅中心溫度監(jiān)控這個(gè)領(lǐng)域中。這就需要研制耐高溫的傳感器。由上文可知,盡管多點(diǎn)溫度監(jiān)控系統(tǒng)開展迅速,簡單有效的解決了原來復(fù)雜的溫度監(jiān)控問題,但是它還存在很多問題,比方通信協(xié)議不標(biāo)準(zhǔn),傳感器質(zhì)量不過關(guān),現(xiàn)場管理和維護(hù)水平有待于加強(qiáng)等?;谝陨细鞣N問題,多點(diǎn)溫度監(jiān)控系統(tǒng)正朝著以下幾個(gè)方向開展:〔1〕系統(tǒng)不僅要實(shí)現(xiàn)實(shí)時(shí)監(jiān)測,而且在軟件技術(shù)上應(yīng)研究開發(fā)根據(jù)被監(jiān)測環(huán)境地點(diǎn)的參數(shù)進(jìn)行有效的判別、分析和提出專家決策方案。同時(shí)系統(tǒng)應(yīng)用軟件應(yīng)向網(wǎng)絡(luò)化開展,按統(tǒng)一的格式向外提供監(jiān)測數(shù)據(jù)?!?〕針對(duì)通信協(xié)議不標(biāo)準(zhǔn)和傳輸設(shè)備物理層協(xié)議不標(biāo)準(zhǔn)的問題,應(yīng)盡快尋找一種解決系統(tǒng)兼容性的途徑或制定相應(yīng)的專業(yè)技術(shù)標(biāo)準(zhǔn),這對(duì)促進(jìn)溫度監(jiān)控技術(shù)開展和系統(tǒng)的推廣應(yīng)用均具有十分重要的意義?!?〕研制高性能的溫度傳感器?!?〕進(jìn)一步加強(qiáng)現(xiàn)場管理和維護(hù)水平。課題研究內(nèi)容及技術(shù)指標(biāo)本文針對(duì)多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)建立一個(gè)溫度信息管理系統(tǒng),完成設(shè)計(jì)內(nèi)容及實(shí)現(xiàn)的技術(shù)指標(biāo)如下:1、課題研究內(nèi)容〔1〕與下位機(jī)溫度監(jiān)控電路進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)溫度信息的上傳和溫度設(shè)定值的下傳;〔2〕設(shè)計(jì)Access數(shù)據(jù)庫,記錄用戶信息和溫度信息;〔3〕用VB連接數(shù)據(jù)庫,完成溫度信息的查詢、顯示、趨勢圖、報(bào)表生成等功能。2、技術(shù)指標(biāo)〔1〕實(shí)時(shí)記錄溫度信息;〔2〕定時(shí)傳送溫度設(shè)定值。本文安排本論文共分5章。第1章概述,介紹多點(diǎn)溫度監(jiān)控系統(tǒng)的課題背景,多點(diǎn)溫度監(jiān)控系統(tǒng)的開展現(xiàn)狀以及本課題的研究內(nèi)容和技術(shù)指標(biāo);第2章介紹了多點(diǎn)溫度監(jiān)控系統(tǒng)總體方案的設(shè)計(jì),以及課題的主要技術(shù)指標(biāo);第3章介紹PC機(jī)與單片機(jī)的通信,包括串行通信、RS-232總線、VB串行通信控件MSComm等。第4章具體介紹了多點(diǎn)溫度監(jiān)控管理系統(tǒng),包括用戶登陸模塊、系統(tǒng)功能模塊、數(shù)據(jù)庫、報(bào)表、查詢、顯示、趨勢圖等。第5章得出結(jié)論,并做了社會(huì)經(jīng)濟(jì)效益分析。多點(diǎn)溫度監(jiān)控系統(tǒng)總體方案的設(shè)計(jì)設(shè)計(jì)方案的不同將直接決定系統(tǒng)硬件的結(jié)構(gòu),從而確定軟件的不同編寫思路。本章將介紹多點(diǎn)溫度監(jiān)控系統(tǒng)的總體結(jié)構(gòu),給出結(jié)構(gòu)框圖并引入雙層總線的概念。最后給出系統(tǒng)的主要技術(shù)參數(shù)。系統(tǒng)描述我們采用現(xiàn)場總線進(jìn)行設(shè)計(jì)?,F(xiàn)場總線是應(yīng)用于生產(chǎn)現(xiàn)場、在智能測量控制設(shè)備之間實(shí)現(xiàn)雙向多點(diǎn)串行數(shù)字通信的系統(tǒng),也稱為開放式、數(shù)字化、多點(diǎn)通信的底層控制網(wǎng)絡(luò)。開放式表達(dá)在現(xiàn)場總線公開、標(biāo)準(zhǔn)的通信協(xié)議。任何國家、廠家生產(chǎn)的智能測量控制設(shè)備只要遵守公共的通信協(xié)議就可以成為現(xiàn)場總線的一個(gè)節(jié)點(diǎn)。數(shù)字化是相對(duì)于模擬信號(hào)而言。模擬信號(hào)的傳遞需要一對(duì)一的物理連接,信號(hào)變化緩慢,信號(hào)的抗干擾能力差。數(shù)字信號(hào)克服了這些缺陷,抗干擾能力強(qiáng)。多點(diǎn)通信得益于設(shè)備的通信功能。多個(gè)設(shè)備可以掛接在一對(duì)雙絞線上。結(jié)構(gòu)簡化而且系統(tǒng)接線簡單??傮w方案設(shè)計(jì)溫度傳感器的選擇是本系統(tǒng)的關(guān)鍵。由于智能溫度傳感器采用數(shù)字化技術(shù),能以數(shù)據(jù)形式輸出被測溫度值,具有測溫誤差小、分辨力高、抗干擾能力強(qiáng)、用戶可設(shè)定溫度上下限、具有超限自動(dòng)報(bào)警功能,并且?guī)Т锌偩€接口,適配各種微控制器,因此我們采用智能溫度傳感器。我們采用DALLAS半導(dǎo)體公司生產(chǎn)的新型數(shù)字溫度傳感器DS18B20。DS18B20具有測溫準(zhǔn)確度高、總線掛接負(fù)載能力強(qiáng)的優(yōu)勢。它集溫度測量、報(bào)警監(jiān)測和數(shù)據(jù)通信多種功能于一體,并且兼容于DALLAS公司提出的單總線,可以很方便的組成底層總線。由于這層總線的主要功能是完成對(duì)溫度的檢測,所以稱之為測溫層總線。測溫層總線由AT89C51單片機(jī)進(jìn)行控制,單片機(jī)完成對(duì)總線上所有DS18B20發(fā)布命令和接收數(shù)據(jù)。另外,它還是溫度傳輸層總線不可缺少的一局部。單片機(jī)在獲取溫度數(shù)據(jù)后需要進(jìn)一步和PC機(jī)通信。本系統(tǒng)中只有一個(gè)單片機(jī)和PC進(jìn)行串行數(shù)據(jù)通信,通信距離在10m左右,因此選擇RS-232標(biāo)準(zhǔn)作為串行數(shù)據(jù)通信的物理層協(xié)議。這層總線結(jié)構(gòu)主要實(shí)現(xiàn)溫度數(shù)據(jù)的傳輸,所以稱之為溫度傳輸層總線。系統(tǒng)的總體結(jié)構(gòu)框圖如圖2.1所示。圖2.1系統(tǒng)的總體結(jié)構(gòu)框圖下位機(jī)通過DS18B20傳感器的測量,將溫度采集,采集上來的溫度信息經(jīng)過MAX232電平轉(zhuǎn)換上傳給上位機(jī)。這些上傳到上位機(jī)的溫度信息的處理是該多點(diǎn)溫度監(jiān)控系統(tǒng)-上位機(jī)最重要的一局部。上位機(jī)采用Access2003作為數(shù)據(jù)庫管理系統(tǒng),建立一個(gè)溫度信息數(shù)據(jù)庫,并用VisualBasic6.0開發(fā)數(shù)據(jù)庫的前臺(tái)應(yīng)用,實(shí)現(xiàn)了溫度信息的查詢、顯示、報(bào)表、趨勢圖等功能。課題主要技術(shù)指標(biāo)1、硬件平臺(tái):微型計(jì)算機(jī)采用普通的PC機(jī)。2、軟件平臺(tái)(1)Windows操作系統(tǒng);(2)Access數(shù)據(jù)庫;(3)MicrosoftVisualBasic6.0開發(fā)工具。(4)應(yīng)用軟件①數(shù)據(jù)的串行通信;②數(shù)據(jù)的表格顯示、查詢、刪除和報(bào)表打印等功能。VB與單片機(jī)通信的建立多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)將溫度轉(zhuǎn)換并將溫度值存儲(chǔ)到單片機(jī)的RAM里,本章主要討論采用比擬廉價(jià)的通信方式—RS232來實(shí)現(xiàn)多點(diǎn)溫度監(jiān)控系統(tǒng)的上位機(jī)〔PC機(jī)〕向下位機(jī)〔單片機(jī)〕發(fā)送信息以及上位機(jī)接收下位機(jī)的溫度信息并加以處理。串行通信及RS—232總線多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)采集到的大量溫度信息,需要傳送至上位機(jī),為接下來的溫度分析處理提供數(shù)據(jù)。下位機(jī)只有一個(gè)單片機(jī)與PC機(jī)通信且兩者之間的距離不是很長,因此我們采用異步串行通信中應(yīng)用最廣的RS-232標(biāo)準(zhǔn)總線實(shí)現(xiàn)兩者之間的信息傳遞。本節(jié)將主要介紹串行通信的根本概念,數(shù)據(jù)傳送方式,RS-232總線標(biāo)準(zhǔn)等。串行通信隨著計(jì)算機(jī)系統(tǒng)的應(yīng)用和微機(jī)網(wǎng)絡(luò)的開展,計(jì)算機(jī)的通信功能顯得尤為重要。從廣義上講,計(jì)算機(jī)通信可以分為并行通信和串行通信。并行通信速度快、實(shí)時(shí)性好,但占用的口線多、本錢高、通信距離短,不適用于小型化產(chǎn)品。串行通信只需一根傳輸線即可完成通信功能,本錢低,在通信中得到了廣泛應(yīng)用。計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多數(shù)都是串行的,通常把計(jì)算機(jī)與外界的數(shù)據(jù)傳送稱之為通信,因此提到的通信大多數(shù)都是指串行通信。1、串行通信的概念串行通信是計(jì)算機(jī)與外部設(shè)備進(jìn)行信息交換的一種方式,是指數(shù)據(jù)一位一位地按順序在一根信號(hào)線上進(jìn)行傳輸?shù)耐ㄐ欧绞健4型ㄐ庞袃煞N根本工作方式:異步傳送和同步傳送。在單片機(jī)中使用的串行通信都是異步方式,因此本系統(tǒng)采用異步串行通信方式來實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的通信。異步串行通信是以字符為單位組成的禎傳送的,即一禎一禎地傳送。禎由發(fā)送端一禎一禎地發(fā)送,通過傳輸線被接收一禎一禎地接收。發(fā)送端何時(shí)開始發(fā)送以及何時(shí)結(jié)束發(fā)送是由禎格式規(guī)定的。通信線上沒有數(shù)據(jù)傳送時(shí)為邏輯高電平,每當(dāng)接收端檢測到傳輸線上發(fā)送來的邏輯低電平〔禎起始位〕時(shí)就知道發(fā)送端已開始發(fā)送,每當(dāng)接收端接收到禎的停止位時(shí)就知道一禎字符信息已發(fā)送完畢。禎是一個(gè)字符的完整通信格式,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等四局部組成。字符傳送的禎格式如圖3.1所示:圖3.1異步通信的禎格式禎中各局部結(jié)構(gòu)和功能如下:1〕起始位:位于字符禎開頭,始終為邏輯“0”2〕數(shù)據(jù)位:緊跟起始位之后,數(shù)據(jù)位的個(gè)數(shù)可以是5、6、7、8或9位。PC機(jī)中經(jīng)常采用7位或8位數(shù)據(jù)傳送,8051串行口采用8位或9位數(shù)據(jù)傳送。傳送時(shí),數(shù)據(jù)位從最低有效位開始發(fā)送,依次在接收設(shè)備中被轉(zhuǎn)換為并行數(shù)據(jù)。3〕奇偶校驗(yàn)位:位于數(shù)據(jù)位后,用于對(duì)字符傳送作正確性檢查,因此奇偶校驗(yàn)位是可選擇的,共有3種可能,即奇校驗(yàn)、偶校驗(yàn)和無校驗(yàn),由用戶根據(jù)需要選定。4〕停止位:位于字符禎末尾,為邏輯“1”2、串行通信的數(shù)據(jù)傳送方式在串行通信中,數(shù)據(jù)通常是在發(fā)送端和接收端之間進(jìn)行傳送,根據(jù)數(shù)據(jù)傳送的方向,可分成三種根本的傳送形式:單工、全雙工和半雙工。單工形式的數(shù)據(jù)傳送是單向的,只需要一根數(shù)據(jù)線,通信線的一端固定為發(fā)送端,另一端固定為接收端。半雙工形式的數(shù)據(jù)傳送是雙向的,但任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。雖然半雙工形式比單工形式靈活,但它的效率依然較低,從發(fā)送方式轉(zhuǎn)換到接收方式所需要的時(shí)間大約為數(shù)個(gè)毫秒,這個(gè)時(shí)間延遲在時(shí)間較為敏感的系統(tǒng)是無法忍受的。全雙工形式下,采用了信道劃分技術(shù),防止了半雙工形式的缺點(diǎn),數(shù)據(jù)傳送是雙向的,且可以同時(shí)發(fā)送和接收數(shù)據(jù)。本系統(tǒng)采用了效率較高的全雙工通信形式。3、串行通信的傳送速率在串行通信中,用“波特率〞來描述數(shù)據(jù)的傳輸速率。所謂波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位為bps。它是衡量串行數(shù)據(jù)傳輸快慢的重要指標(biāo)。接收方的波特率和發(fā)送方的波特率可以分別設(shè)置,但接收方的波特率必須與發(fā)送方的波特率相同。RS-232總線標(biāo)準(zhǔn)在串行通信時(shí),要求雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通信。RS-232C是美國電子工業(yè)協(xié)會(huì) EIA公布的串行通信標(biāo)準(zhǔn),RS是RecommendedStandard的字頭縮寫,代表推薦,232是標(biāo)識(shí)號(hào),C表示修改的次數(shù)。RS-232C適用于短距離或帶調(diào)制解調(diào)器的通信場合,目前已廣泛應(yīng)用于計(jì)算機(jī)與外圍設(shè)備的串行異步通信接口中。1、機(jī)械特性RS-232C的機(jī)械特性主要指兩個(gè)通信裝置如何實(shí)現(xiàn)機(jī)械對(duì)接。RS-232C是數(shù)據(jù)終端設(shè)備DTE與數(shù)據(jù)通訊設(shè)備DCE之間的接口,RS-232C的機(jī)械標(biāo)準(zhǔn)規(guī)定DTE應(yīng)配置DB25插頭,即25針連接器,DEC應(yīng)配置DB25的插座,即25孔連接器。表3.1計(jì)算機(jī)DB-9連接器引腳信號(hào)功能引腳號(hào)信號(hào)名稱方向信號(hào)功能1DCDPC機(jī)←對(duì)方PC機(jī)收到遠(yuǎn)程信號(hào)〔載波檢測〕2RXDPC機(jī)←對(duì)方PC機(jī)接收數(shù)據(jù)3TXDPC機(jī)→對(duì)方PC機(jī)發(fā)送數(shù)據(jù)4DTRPC機(jī)→對(duì)方PC機(jī)準(zhǔn)備就緒5GND——信號(hào)地6DSRPC機(jī)←對(duì)方對(duì)方準(zhǔn)備就緒7RTSPC機(jī)→對(duì)方PC機(jī)請(qǐng)求發(fā)送數(shù)據(jù)8CTSPC機(jī)←對(duì)方對(duì)方已切換到接收狀態(tài)〔去除發(fā)送〕9RIPC機(jī)←對(duì)方通知PC機(jī),線路正?!舱疋徶甘尽硨?shí)際應(yīng)用中,DB-25型連接器中的許多信號(hào)用不上,對(duì)于一般的雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),包括一條發(fā)送線、一條接收線和一條地線。因此普遍采用DB9插頭,即9針連接器。表3.1給出了DB9連接器的信號(hào)引腳功能。本系統(tǒng)采用DB9型連接器,通過三根線實(shí)現(xiàn)系統(tǒng)連接,即接收數(shù)據(jù)引腳與發(fā)送數(shù)據(jù)引腳彼此交叉相連,信號(hào)地對(duì)應(yīng)相接。這是最常用的全雙工最簡單系統(tǒng)連接法。2、電氣特性RS-232標(biāo)準(zhǔn)的電氣特性如表3.2所示。表3.2RS-232標(biāo)準(zhǔn)的電氣特性不帶負(fù)載時(shí)驅(qū)動(dòng)器輸出電平-25V~25V負(fù)載電阻范圍3~7k歐驅(qū)動(dòng)器輸出電阻<300歐負(fù)載電容〔包括線間電容〕<2500pF邏輯“0〞時(shí)驅(qū)動(dòng)器輸出電平5~15V邏輯“0〞時(shí)負(fù)載端接收電平>+3V邏輯“1〞時(shí)驅(qū)動(dòng)器輸出電平-15~-5V邏輯“1〞時(shí)負(fù)載端接收電平<-3V輸出短路電流<500mA驅(qū)動(dòng)器轉(zhuǎn)換速率<30由表4.2可以看出RS-232C電平采用負(fù)邏輯,邏輯“0〞:+5~+15V,邏輯“1〞:-5~-15V。在計(jì)算機(jī)和智能儀器內(nèi),通用的信號(hào)是正邏輯的TTL電平。而RS-232C電平是負(fù)邏輯的,與TTL電平不兼容,必須進(jìn)行電平轉(zhuǎn)換。電平轉(zhuǎn)換通??梢允褂肕C1488、MC1489、MAX232等芯片來實(shí)現(xiàn)。本系統(tǒng)是采用MAX232芯片實(shí)現(xiàn)電平轉(zhuǎn)換的。RS-232標(biāo)準(zhǔn)規(guī)定的波特率為:50、75、100、150、300、600、1200、4800、9600和19200bps。本系統(tǒng)波特率采用9600bps。VisualBasic6.0中的串行通信控件MSCommVisualBasic是一種可視化的編程語言,利用可視化技術(shù)進(jìn)行編程,可使應(yīng)用程序的開發(fā)簡單、快捷,可編寫出界面友好、功能強(qiáng)大的應(yīng)用程序。MSComm控件全稱為MicrosoftCommunicationsControl,是Microsoft公司提供的ActiveX控件,目的是為了簡化Windows下串行通信編程,它既可以用來提供簡單的串口端口通信功能,也可以用來創(chuàng)立功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。MSComm控件在串口編程時(shí)非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的API函數(shù),而且在VisualBasic、VisualC++、Delphi等語言中均可以使用。使用它可以建立與串行端口的連接,通過串行端口連接到其它通信設(shè)備〔如調(diào)制解調(diào)器〕,發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。MSComm控件處理通信的方式MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。它提供以下兩種處理通信的方式。1、事件驅(qū)動(dòng)方式事件驅(qū)動(dòng)通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)程序得到通知,例如,在串口接收緩沖區(qū)中有一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí),程序都可以利用MSComm控件的OnComm事件捕獲并處理這些通信事件,OnComm事件還可以檢查和處理通信錯(cuò)誤。在程序設(shè)計(jì)中,可以在OnComm事件處理函數(shù)中參加自己的處理代碼,一旦事件發(fā)生即可自動(dòng)執(zhí)行該段程序。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。2、查詢方式在程序的每個(gè)關(guān)鍵功能完成之后,可以通過檢查CommEvent屬性的值來查詢事件和錯(cuò)誤。適用于自保持的應(yīng)用程序較小的編程。查詢方式的編程可用計(jì)時(shí)器或Do…Loop程序?qū)崿F(xiàn)。其實(shí),查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。MSComm控件的常用屬性對(duì)控件編程首先需要了解它的屬性和事件。下面介紹MSComm控件的一些主要屬性,如表3.3所示。表3.3MSComm控件的主要屬性屬性描述Commport設(shè)置并返回通信串口號(hào)Settings以字符串的形式設(shè)置并返回串口波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。格式為:MSComm1.Settings=〞BBBB,P,D,S〞Portopen設(shè)置并返回串口狀態(tài),也可以翻開和關(guān)閉串口Input從接收緩沖區(qū)中讀取數(shù)據(jù)并清空緩沖區(qū)Inputlen設(shè)置并返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)InBufferSize設(shè)置并返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)InBufferCount設(shè)置并返回接收緩沖區(qū)中等待接收的字符數(shù)InputMode設(shè)置并返回接收數(shù)據(jù)的類型。其值為0和1時(shí),分別表示通過Input屬性以文本方式和二進(jìn)制方式取回?cái)?shù)據(jù)OutBufferSize設(shè)置并返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)OutBufferCount設(shè)置并返回發(fā)送緩沖區(qū)中等待計(jì)算機(jī)發(fā)送的字符數(shù)Output向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計(jì)時(shí)無效,運(yùn)行時(shí)只讀Rthreshold在MSComm控件設(shè)置ConunEvent屬性為comEvReceive并產(chǎn)生OnComm之前,設(shè)置并返回要接收的字符數(shù)其中CommEvent屬性是一個(gè)非常重要的屬性。一旦串口發(fā)生通信事件或產(chǎn)生錯(cuò)誤,依據(jù)產(chǎn)生的事件和錯(cuò)誤,MSComm控件為CommEvent屬性賦以不同的代碼,同時(shí)產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對(duì)不同的代碼,進(jìn)行相應(yīng)的處理。CommEvent屬性的事件代碼、常數(shù)以及含義參見表3.4和表3.5。表3.4CommEvent通信事件代碼、常數(shù)及含義表事件代碼常值含義1ComEvRecive接收到Rthreshold個(gè)字符。該事件將連續(xù)產(chǎn)生,直到用Input屬性從接收緩沖區(qū)中讀取并刪除字符2ComEvSend發(fā)送緩沖區(qū)中數(shù)據(jù)少于Sthreshold個(gè),說明串口已經(jīng)發(fā)送了一些數(shù)據(jù),程序可以用Output屬性繼續(xù)發(fā)送數(shù)據(jù)3ComEvCTSClearToSend信號(hào)線的狀態(tài)發(fā)生變化4ComEvDSRDataSetReady信號(hào)線從1變到05ComEvCDCarrierDetect信號(hào)線的狀態(tài)發(fā)生變化6ComEvRing檢測到振鈴信號(hào)7ComEvEOF接收到文件結(jié)束符表3.5ComEventnt通信錯(cuò)誤代碼、常數(shù)及含義表事件代碼常數(shù)含義1001ComEvntBreak接收到一個(gè)中斷信號(hào)1002ComEvntCTSTOClearToSend信號(hào)超時(shí)1003ComEvntDSRTODataSetReady信號(hào)超時(shí)1004ComEvntFrame禎錯(cuò)誤1006ComEvntOverrun串口超速1007ComEvntCDTO載波檢測超時(shí)1008ComEvntRxOver接收緩沖區(qū)溢出,緩沖區(qū)中已沒有空間1009ComEvntRxParity奇偶校驗(yàn)錯(cuò)1010ComEvntTxFull發(fā)送緩沖區(qū)溢出,緩沖區(qū)中已沒有空間1011ComEvntDCB檢測串口的設(shè)備控制塊時(shí)發(fā)生錯(cuò)誤MSComm控件的使用MSComm控件通信的流程圖如圖3.2所示。編寫程序時(shí),只需要按照下面流程圖,即可實(shí)現(xiàn)通信功能。圖3.2MSComm控件通信的流程圖PC機(jī)與AT89S51單片機(jī)的通信PC機(jī)與單片機(jī)之間的串行通信主要實(shí)現(xiàn)下位機(jī)的溫度數(shù)據(jù)的采集和傳輸。下位機(jī)程序用匯編語言編寫,固化在AT89SC51單片機(jī)中。單片機(jī)是測量系統(tǒng)的數(shù)據(jù)采集端,它主要完成對(duì)多個(gè)測溫傳感器DS18B20的控制和溫度數(shù)據(jù)的讀取以及同上位機(jī)的數(shù)據(jù)通信。上位機(jī)軟件用VB編寫,主要完成通信參數(shù)設(shè)置和溫度數(shù)據(jù)的轉(zhuǎn)換。通信參數(shù)設(shè)置主要用來完成對(duì)系統(tǒng)通信參數(shù)的設(shè)置,包括設(shè)定通信端口、波特率、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。溫度數(shù)據(jù)的轉(zhuǎn)換主要實(shí)現(xiàn)對(duì)接受到的溫度數(shù)據(jù)由十六進(jìn)制到十進(jìn)制的轉(zhuǎn)換,同時(shí)這一步也為后面的數(shù)據(jù)庫的生成及溫度信息管理工作做好了準(zhǔn)備。硬件連接線路PC機(jī)與單片機(jī)之間的通信通過串口實(shí)現(xiàn)。由于RS232電平與TTL電平不兼容,本系統(tǒng)通過MAX232芯片實(shí)現(xiàn)TTL電平到RS232電平的轉(zhuǎn)換,MAX232芯片是包含兩路接收器和驅(qū)動(dòng)器的RS232電平轉(zhuǎn)換芯片,適用于各種232通信接口。如圖3.3所示。圖3.3PC與硬件單片機(jī)的連接電路圖通信協(xié)議為使數(shù)據(jù)在PC和單片機(jī)之間無過失的傳送,本文采用通信協(xié)議來規(guī)約數(shù)據(jù)的傳輸。PC機(jī)與單片機(jī)雙方的通信協(xié)議如下:波特率:9600bps;數(shù)據(jù)格式:8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn);傳送方式:PC機(jī)和單片機(jī)都采用查詢方式收發(fā)數(shù)據(jù),傳送的數(shù)據(jù)格式為二進(jìn)制格式。DS18B20轉(zhuǎn)換出的溫度信息包含兩個(gè)字節(jié),經(jīng)過處理后,一個(gè)字節(jié)為溫度的整數(shù)局部,另一個(gè)字節(jié)為溫度的小數(shù)局部。每個(gè)DS18B20共傳送三個(gè)字節(jié),第一個(gè)字節(jié)為傳感器所在的行列號(hào),第二個(gè)字節(jié)是溫度的整數(shù)局部,第三個(gè)字節(jié)是溫度的小數(shù)局部。單片機(jī)收到PC機(jī)發(fā)送的握手信號(hào)“S〞后,就依次命令DS18B20進(jìn)行溫度轉(zhuǎn)換;PC機(jī)依次接收單片機(jī)上傳過來的數(shù)據(jù),并顯示在特定區(qū)域。VB程序編制本系統(tǒng)串行通信的界面如圖3.4所示:圖3.4串行通信的界面因?yàn)橄到y(tǒng)采用的是事件驅(qū)動(dòng),所以具體程序的編制必須圍繞相應(yīng)的事件進(jìn)行。本系統(tǒng)中,有關(guān)通信的工作過程主要有:通信參數(shù)初始化、發(fā)送握手信號(hào)、接收數(shù)據(jù)。具體初始化程序如下:PrivateSubForm_Load()MSComm1.CommPort=1'設(shè)置通訊窗口MSComm1.Settings="9600,N,8,1"'設(shè)置數(shù)據(jù)傳輸率和發(fā)送字符格式MSComm1.InputMode=comInputModeTextMSComm1.InBufferSize=1024'設(shè)置接收緩沖區(qū)1024ByteMSComm1.InputLen=0'設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù),0表示一次讀取所有數(shù)據(jù)MSComm1.RThreshold=21IfMSComm1.PortOpen=FalseThen'翻開串口MSComm1.PortOpen=TrueEndIfEndSub初始化完成后,PC機(jī)就可以與單片機(jī)進(jìn)行通信了。點(diǎn)擊“開始接收〞按鈕即可完成向單片機(jī)發(fā)送握手信號(hào)功能。發(fā)送程序?yàn)椋篋imreceAsStringrece=MSComm1.InputIfMid(rece,1,1)="S"ThenText1.Text=Text1.Text&receElseText1.Text=Text1.TextEndIf單片機(jī)接收到PC機(jī)發(fā)送的握手信號(hào)S后,就依次命令總線上的DS18B20進(jìn)行溫度轉(zhuǎn)換并向PC機(jī)發(fā)送轉(zhuǎn)換后的溫度信息。我們在OnComm事件里進(jìn)行溫度數(shù)據(jù)的接收和轉(zhuǎn)換。在轉(zhuǎn)換后的溫度之間加上一個(gè)空格,且在單個(gè)DS18B20溫度信息末尾加上回車和換行符,目的是為PC機(jī)接收到的溫度信息保存的文本文件轉(zhuǎn)換成數(shù)據(jù)庫作好準(zhǔn)備。如果系統(tǒng)初始化不正?;駾S18B20的端脫開未接好時(shí),轉(zhuǎn)換出的溫度為默認(rèn)初始值+85℃,溫度上下字節(jié)為05H和50H。系統(tǒng)檢測到DS18B20轉(zhuǎn)換的溫度值為上面兩種情況時(shí),我們在接收區(qū)顯示該測點(diǎn)出現(xiàn)“PrivateSubMSComm1_OnComm()DimbufferAsVariantDimarr()AsByteDimiAsInteger,aAsIntegerDimrestr1AsString,restr2AsString,srestr3AsString,ABCAsStringa=MSComm1.InBufferCountSelectCaseMSComm1.CommEventCasecomEvReceivebuffer=MSComm1.Inputarr=bufferFori=0To18Step3restr1=arr(i)restr2=arr(i+1)restr3=arr(i+2)Ifrestr2=127Andrestr3=240ThenText1.Text=Text1.Text=Str(Now)+""+restr1+""+"測量有誤"+""+Chr(13)+Chr(10)ElseIfVal(restr3)=0ThenABC="."+Mid$(Str(Val(restr3)/256),2,3)ElseABC=Mid$(Str(Val(restr3)/256),2,3)EndIfText1.Text=Text1.Text+Str(Now)+""+restr1+""+restr2+ABC+""+Chr(13)+Chr(10)EndIfNextiEndSelectEndSub多點(diǎn)溫度信息管理系統(tǒng)多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)采集檢測的溫度為本上位機(jī)提供了數(shù)據(jù),多點(diǎn)溫度信息管理系統(tǒng)將實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的查詢、顯示、趨勢圖、報(bào)表生成等處理功能,建立一個(gè)易于使用、易于管理的人機(jī)交互界面。多點(diǎn)溫度信息管理系統(tǒng)功能多點(diǎn)溫度信息管理系統(tǒng)的目的是對(duì)下位機(jī)檢測的數(shù)據(jù)進(jìn)行后處理。多點(diǎn)溫度信息管理系統(tǒng)主要包括以下功能:1.與多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)進(jìn)行數(shù)據(jù)通信;2.檢測數(shù)據(jù)錄入數(shù)據(jù)庫;3.實(shí)現(xiàn)溫度信息庫的查詢、顯示、趨勢圖、報(bào)表生成等處理功能。多點(diǎn)溫度信息管理系統(tǒng)軟件總體框圖如圖4.1所示。圖4.1多點(diǎn)溫度信息管理系統(tǒng)軟件總體框圖為防止不相關(guān)人員隨意翻開本軟件修改,刪除檢測結(jié)果,所以軟件運(yùn)行后,首先設(shè)計(jì)了登陸對(duì)話框,要求輸入用戶名和密碼,輸入正確后才能進(jìn)入該軟件的主界面。主界面采用MDI菜單形式設(shè)計(jì),通過下拉菜單,可以進(jìn)行系統(tǒng)功能即添加新用戶名和修改密碼、與下位機(jī)進(jìn)行串行通信〔第三章已經(jīng)介紹〕、將接收到的溫度信息生成數(shù)據(jù)庫、對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、顯示、刪除、趨勢圖和生成報(bào)表等操作。多點(diǎn)溫度信息管理系統(tǒng)軟件運(yùn)行在PC機(jī)上,開發(fā)平臺(tái)采用MicrosoftVisualBasic6.0,下面將詳細(xì)介紹各個(gè)模塊的實(shí)現(xiàn)過程。數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫,是以一定的組織方式存儲(chǔ)在計(jì)算機(jī)中相關(guān)數(shù)據(jù)的集合。它能以最正確方式、最少的重復(fù)、最大的獨(dú)立性為多種應(yīng)用提供共享效勞。多點(diǎn)溫度信息管理系統(tǒng)數(shù)據(jù)庫采用關(guān)系型數(shù)據(jù)庫,用Access2003開發(fā)。Access2003是開發(fā)中小型數(shù)據(jù)庫的首選數(shù)據(jù)庫管理系統(tǒng),使用它可以很方便的設(shè)計(jì)出一個(gè)出色的關(guān)系數(shù)據(jù)庫,而且VB可以通過ADOdata對(duì)象建立對(duì)Access類型數(shù)據(jù)庫的快速連接。Access數(shù)據(jù)庫的設(shè)計(jì)在MicrosoftAccess數(shù)據(jù)庫中,信息是以表的形式組織起來的,表就是數(shù)據(jù)以行和列的形式組織在一起,每一行代表一條記錄,每一列代表一個(gè)字段,描述它所含有的數(shù)據(jù)。根據(jù)該系統(tǒng)的功能,我設(shè)計(jì)了兩個(gè)表:用戶信息表和溫度信息表。用戶信息表用于描述用戶名和密碼,完成用戶登陸信息和密碼修改信息的驗(yàn)證;溫度信息表用于描述下位機(jī)每個(gè)DS18B20的測量結(jié)果,即傳感器的測量日期、行列號(hào)、溫度。兩個(gè)表的結(jié)構(gòu)分別如表4.1所示。表4.1多點(diǎn)溫度信息數(shù)據(jù)庫的表結(jié)構(gòu)(a)溫度信息表字段名稱字段大小必填字段數(shù)據(jù)類型測量日期50是文本測量時(shí)間50是文本行列號(hào)2是文本溫度10是文本〔b〕用戶信息表字段名稱字段大小必填字段數(shù)據(jù)類型用戶名8是文本密碼6是文本由于數(shù)據(jù)在下位機(jī)和上位機(jī)之間傳輸?shù)臅r(shí)間很短,所以約定溫度信息傳送至上位機(jī)的日期和時(shí)間為測量的日期和時(shí)間。由于測量日期和時(shí)間不會(huì)重復(fù),所以根據(jù)日期和時(shí)間,就可以區(qū)分?jǐn)?shù)據(jù)庫中的數(shù)據(jù)屬于哪一次檢測。VB操作Access數(shù)據(jù)庫的方法VB訪問數(shù)據(jù)庫有多種方法,如Data控件、DAO對(duì)象、RDO對(duì)象、ADO控件和ADO對(duì)象等。MicrosoftVisualBasic6.0提供了三種不同的訪問數(shù)據(jù)庫接口:DAO數(shù)據(jù)存取對(duì)象、RDO遠(yuǎn)程數(shù)據(jù)對(duì)象、ADOActiveX數(shù)據(jù)對(duì)象。DAO〔DataAccessObjects〕數(shù)據(jù)存取對(duì)象是數(shù)據(jù)訪問對(duì)象之一,是VB最早引入的數(shù)據(jù)訪問技術(shù)。它比Data控件功能強(qiáng)大,不僅可以翻開、訪問并操縱已有的數(shù)據(jù)庫,而且可以創(chuàng)立數(shù)據(jù)庫、表和索引。另外,它不需要添加任何數(shù)據(jù)控件,只用程序代碼就能創(chuàng)立完整的數(shù)據(jù)庫應(yīng)用程序,但使用該對(duì)象之前應(yīng)首先在工程中引用它。RDO〔RemoteDataObjects〕遠(yuǎn)程數(shù)據(jù)對(duì)象是一個(gè)到ODBC的面向?qū)ο蟮臄?shù)據(jù)訪問接口,有了VisualBasic6.0以后,RDO已逐步被ADO替代。ADO〔ActiveXDataObjects〕ActiveX數(shù)據(jù)對(duì)象是最新的數(shù)據(jù)訪問技術(shù),訪問更加簡單和靈活,支持多種數(shù)據(jù)庫,而且訪問的數(shù)據(jù)庫類型也更為豐富,特別在Internet方面的應(yīng)用可極大提高系統(tǒng)性能。所以,本文選擇ADOData控件來訪問數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)庫的操作。ADOData控件使用MicrosoftActiveX數(shù)據(jù)對(duì)象〔ADO〕來快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。數(shù)據(jù)綁定控件是任何具有數(shù)據(jù)源屬性的控件。盡管在程序中可以直接使用ActiveX數(shù)據(jù)對(duì)象,但ADOData控件作為一個(gè)圖形控件的優(yōu)勢,以及一個(gè)易于使用的界面,使用戶可以用最少的代碼創(chuàng)立數(shù)據(jù)庫應(yīng)用程序。ADOData控件屬性很多,其中ConnectionString屬性和RecordSource屬性是兩個(gè)非常重要的屬性。ConnectionString屬性值是一個(gè)字符串,包含進(jìn)行一個(gè)連接所需要的所有設(shè)置值,在字符串中所傳遞的參數(shù)是與驅(qū)動(dòng)程序相關(guān)的。RecordSource屬性包含一條語句或一個(gè)表格名稱,用于決定從數(shù)據(jù)庫檢索什么信息。設(shè)置ADOData控件與數(shù)據(jù)庫的連接,具體代碼如下:DimconnectionstringAsStringconnectionstring="provider=microsoft.jet.oledb.4.0;"&"datasource=用戶信息表.mdb"conn.Openconnectionstring數(shù)據(jù)庫的生成第二章中已經(jīng)提到了通過保存按鈕,將接收到的溫度信息存儲(chǔ)在指定的文本文件中。我們設(shè)計(jì)了一個(gè)程序?qū)崿F(xiàn)了將文本文件中的內(nèi)容轉(zhuǎn)換到Access數(shù)據(jù)庫中。通過調(diào)用主界面的數(shù)據(jù)庫子菜單就可以將溫度信息保存到溫度信息表中。用戶信息表中的信息是事先填寫好的。應(yīng)用程序的設(shè)計(jì)數(shù)據(jù)庫建立好以后,就可以對(duì)其進(jìn)行各種操作了。下文將分別介紹在MicrosoftVisualBasic6.0集成環(huán)境下各個(gè)模塊的設(shè)計(jì)過程。首先運(yùn)行MicrosoftVisualBasic6.0,出現(xiàn)“新建工程〞對(duì)話框,如圖4.2所示。選擇新建“標(biāo)準(zhǔn)EXE〞,執(zhí)行“翻開〞命令,進(jìn)入VisualBasic工程集成開發(fā)環(huán)境,窗體設(shè)計(jì)器會(huì)自動(dòng)出現(xiàn)一個(gè)Form1的空白窗體,如圖4.3所示。圖4.2“新建工程〞對(duì)話框圖4.3空白窗體用戶登陸模塊設(shè)計(jì)為防止不相關(guān)人員隨意翻開本軟件修改,刪除檢測結(jié)果,所以軟件運(yùn)行后,首先設(shè)計(jì)了登陸對(duì)話框,要求輸入用戶名和密碼,輸入正確后才能進(jìn)入該軟件的主界面。如果失敗達(dá)三次,那么自動(dòng)退出系統(tǒng)。用戶登陸界面如圖4.4所示。圖4.4用戶登陸界面在空白窗體上,添加2個(gè)Label控件、2個(gè)TextBox控件、1個(gè)ADODC控件。界面上的2個(gè)Label控件用來標(biāo)識(shí)窗體中的信息〔用戶名,密碼〕,2個(gè)TextBox控件用來輸入用戶名和密碼,2個(gè)CommandButton控件用來確定或取消登陸,1個(gè)ADODC控件〔運(yùn)行時(shí)隱藏〕用來完成和數(shù)據(jù)庫用戶信息表的連接。系統(tǒng)功能模塊設(shè)計(jì)系統(tǒng)功能模塊主要完成兩個(gè)功能:用戶管理和退出系統(tǒng)。其中用戶管理用于修改擁護(hù)密碼和添加新的用戶名和密碼。1.修改密碼界面如圖4.5所示。圖4.5修改用戶密碼界面界面上的4個(gè)Label控件用來標(biāo)識(shí)窗體中的信息〔用戶名,原密碼,新密碼,確認(rèn)密碼〕,4個(gè)TextBox控件用來輸入用戶名,原密碼,新密碼,確認(rèn)密碼2個(gè)CommandButton控件用來確定或取消修改密碼,1個(gè)ADODC控件〔運(yùn)行時(shí)隱藏〕用來完成和數(shù)據(jù)庫用戶信息表的連接。2.添加新用戶界面如圖4.6所示。界面上的3個(gè)Label控件用來標(biāo)識(shí)窗體中的信息〔新用戶名,用戶密碼,確認(rèn)密碼〕,3個(gè)TextBox控件用來輸入新用戶名,用戶密碼,確認(rèn)密碼,2個(gè)CommandButton控件用來確定或取消添加新用戶,1個(gè)ADODC控件〔運(yùn)行時(shí)隱藏〕用來完成和數(shù)據(jù)庫用戶信息表的連接。圖4.6添加新用戶界面主界面的設(shè)計(jì)為了方便地管理系統(tǒng)程序,且占有教少的系統(tǒng)資源,我們采用多文檔界面MDI進(jìn)行主界面的設(shè)計(jì)。通過選擇主界面上的菜單,我們就可以實(shí)現(xiàn)對(duì)溫度信息的各種操作。系統(tǒng)的主界面如圖4.7所示。主界面主要由窗體、菜單欄、狀態(tài)欄組成。菜單欄是通過VB中的菜單編輯器設(shè)計(jì)的;狀態(tài)欄用于顯示系統(tǒng)日期、時(shí)間和設(shè)計(jì)信息,通過StatusBar控件實(shí)現(xiàn)。圖4.7主界面在使用菜單編輯器之前首先需要啟動(dòng)它,它的啟動(dòng)方式有下面4種形式。選擇“工具〞/“菜單編輯器〞命令;在“標(biāo)準(zhǔn)〞工具欄上選擇“菜單編輯器〞圖表;用鼠標(biāo)右鍵單擊要添加的菜單窗體,在彈出的快捷菜單中選擇“菜單編輯器〞命令;利用快捷鍵{Ctrl+E}來調(diào)用“菜單編輯器〞。翻開的菜單編輯器如圖4.8所示。其中包括三個(gè)區(qū)域:菜單屬性設(shè)置區(qū)、菜單編輯區(qū)、菜單列表區(qū)。菜單屬性設(shè)置區(qū)是指在菜單編輯器中分隔條上面的局部,它主要用于設(shè)置菜單的相關(guān)屬性。其主要屬性有標(biāo)題、名稱、索引以及快捷鍵。其中標(biāo)題和名稱屬性是必須要設(shè)置的,其他的屬性可以采用默認(rèn)值,或者不需設(shè)置。菜單編輯區(qū)是指中間的7個(gè)按鈕,主要用于對(duì)已經(jīng)輸入的菜單進(jìn)行簡單的編輯操作。菜單列表區(qū)就是指菜單項(xiàng)的分級(jí)列表。將子菜單單項(xiàng)縮進(jìn)以指出它們的分級(jí)位置或等級(jí)。圖4.8菜單編輯器StatusBar控件提供窗體。該窗體通常位于父窗體的底部,通過這一窗體,應(yīng)用程序能顯示各種數(shù)據(jù)。StatusBar最多能被分成16個(gè)Panel對(duì)象,這些對(duì)象包含在Panels集合中。StatusBar控件是Active控件,在使用該控件之前需要先將其添加到工具箱中。選擇“工程〞/“部件〞命令,在彈出的對(duì)話框中選中MicrosoftWindowsCommonControls6.0(SP6)項(xiàng),即可將一組控件添加到工具箱中,其中,圖4.9中鼠標(biāo)所指的即為StatusBar控件。圖4.9工具箱中的StatusBar控件將StatusBar控件添加到窗體上,用鼠標(biāo)右鍵單擊該控件,在彈出的快捷菜單中選擇“屬性〞命令,即可彈出“屬性頁〞對(duì)話框。如圖4.10所示。選擇“窗格〞選項(xiàng)卡,默認(rèn)會(huì)自動(dòng)創(chuàng)立一個(gè)窗格,設(shè)置第一個(gè)窗格的“樣式〞為6-sbrDate,顯示當(dāng)前系統(tǒng)的日期。單擊“插入窗格〞按鈕,插入一個(gè)表格,設(shè)置第二個(gè)窗格的“樣式〞為5-sbrTime,用于顯示時(shí)間。單擊“插入窗格〞按鈕,插入一個(gè)表格,在第三個(gè)窗格的“文本〞中輸入設(shè)計(jì)者:姚維丹。單擊“插入窗格〞按鈕,插入一個(gè)表格,在第四個(gè)窗格的“文本〞中輸入指導(dǎo)教師:王昱。圖4.10StatusBar控件屬性頁顯示模塊以及數(shù)據(jù)庫顯示模塊的設(shè)計(jì)完整的溫度信息顯示采用類似于電子數(shù)據(jù)表的DataGrid控件實(shí)現(xiàn)。設(shè)置好的界面如圖4.11所示:在VB6.0中的眾多數(shù)據(jù)控件中,DataGrid控件是最靈活、功能最強(qiáng)大的控件之一。使用DataGrid控件無須編寫任何代碼,只要綁定到ADO控件上,就可以實(shí)現(xiàn)數(shù)據(jù)的新增、修改、刪除和瀏覽,還可以對(duì)數(shù)據(jù)進(jìn)行格式化、鎖定等。圖4.11溫度信息顯示界面同理,設(shè)計(jì)好的數(shù)據(jù)庫顯示界面如圖4.12所示。在數(shù)據(jù)庫顯示界面里可以進(jìn)行用戶信息的以及溫度信息的添加、修改、刪除和瀏覽等功能。圖4.12數(shù)據(jù)庫顯示界面查詢模塊的設(shè)計(jì)輸入行列號(hào)、測量日期,單擊查詢,就會(huì)在表中顯示所有當(dāng)天某個(gè)行列號(hào)的所有溫度信息。如圖4.13所示。圖4.13查詢界面通信及趨勢圖模塊的設(shè)計(jì)關(guān)于通信模塊的設(shè)計(jì),本文在第三章已經(jīng)進(jìn)行了詳細(xì)的表達(dá),在這里不再贅述。下面介紹趨勢圖模塊的建立。本文首先建立了一個(gè)直角坐標(biāo)系統(tǒng)。在VB中,包括系統(tǒng)標(biāo)準(zhǔn)坐標(biāo)系統(tǒng)和用戶自定義坐標(biāo)系統(tǒng)。坐標(biāo)系統(tǒng)的坐標(biāo)單位可以分為Twip、Point、Pixel、Character、Inch、mm、cm和用戶自定義8種形式。不同規(guī)格的坐標(biāo)系統(tǒng)只是度量單位和精度改變,坐標(biāo)軸的長度或者圖區(qū)域的大小并不因此而改變。本文采用Scale方法自定義的坐標(biāo)系統(tǒng),以Twip為坐標(biāo)系的坐標(biāo)單位。Scale方法是自定義坐標(biāo)系統(tǒng)最常用的方法,用來定義Form、PictureBox或Printer的坐標(biāo)系統(tǒng)。其語法如下:[對(duì)象].Scale(xLeft,yTop)-(xRight,yBottom)其中,對(duì)象可以是窗體、圖片框或打印機(jī),默認(rèn)為焦點(diǎn)所在的窗體對(duì)象。(xLeft,yTop)表示對(duì)象的左上角的坐標(biāo)值,(xRight,yBottom)表示對(duì)象右下角的坐標(biāo)值。由于居民用戶內(nèi)的溫度都在0-40℃,所以本文所建立的坐標(biāo)系,溫度在0-40℃之間,如圖4.14所示:圖4.14坐標(biāo)系本文采用VB中的line函數(shù)進(jìn)行趨勢圖中線的設(shè)計(jì)。Line方法可以在窗體或圖片框指定位置上,按指定的顏色畫直線或者曲線。Line方法的格式如下:Object.Line[STEP](X1,Y1)[STEP](X1,Y2),[COLOR],[B][F]報(bào)表模塊的設(shè)計(jì)為了方便保存和匯總溫度信息,設(shè)計(jì)了溫度信息報(bào)表及打印功能。數(shù)據(jù)報(bào)表不僅僅是數(shù)據(jù)簡單、直接的輸出,它還包括對(duì)數(shù)據(jù)的一些額外操作,如數(shù)據(jù)匯總。VB6.0中提供的“數(shù)據(jù)報(bào)表設(shè)計(jì)器〞〔DataReportdesigner〕是一個(gè)極為靈活的報(bào)表設(shè)計(jì)工具,它以“數(shù)據(jù)環(huán)境設(shè)計(jì)器〞〔DataEnvironment〕作為數(shù)據(jù)源,能創(chuàng)立有層次的、匯總假設(shè)干關(guān)系型數(shù)據(jù)表數(shù)據(jù)的復(fù)雜報(bào)表。創(chuàng)立一個(gè)數(shù)據(jù)報(bào)表的步驟為:1. 創(chuàng)立一個(gè)包含Command對(duì)象層次結(jié)構(gòu)的數(shù)據(jù)環(huán)境設(shè)計(jì)器。2. 設(shè)置數(shù)據(jù)報(bào)表設(shè)計(jì)器的DataSource屬性為數(shù)據(jù)環(huán)境設(shè)計(jì)器。3. 設(shè)置DataMember屬性為最頂層的Command對(duì)象。4. 右鍵單擊數(shù)據(jù)報(bào)表設(shè)計(jì)器并單擊“檢索結(jié)構(gòu)〞。在檢索結(jié)構(gòu)之后,將創(chuàng)立適當(dāng)數(shù)目的分組標(biāo)頭和注腳,而且每一標(biāo)頭/注腳對(duì)被指定一個(gè)對(duì)應(yīng)于一個(gè)Command對(duì)象的名字。5. 把Command對(duì)象從數(shù)據(jù)環(huán)境設(shè)計(jì)器拖到數(shù)據(jù)報(bào)表設(shè)計(jì)器上的對(duì)應(yīng)局部。Command對(duì)象包含的所有數(shù)據(jù)字段,都作為Command對(duì)象被放下的局部中的TextBox控件,被自動(dòng)創(chuàng)立在數(shù)據(jù)報(bào)表上。每一TextBox的DataMember屬性和DataField屬性都按照Command對(duì)象及其數(shù)據(jù)字段設(shè)置。6. 從每一個(gè)TextBox控件創(chuàng)立時(shí)所在的局部上將TextBox控件拖動(dòng)到數(shù)據(jù)報(bào)表設(shè)計(jì)器的不同局部上。7. 按照需要將Function控件添加到報(bào)表。創(chuàng)立好的數(shù)據(jù)報(bào)表界面如圖4.15所示。圖4.15數(shù)據(jù)報(bào)表界面“關(guān)于〞模塊的設(shè)計(jì)“關(guān)于〞窗體界面如圖4.16所示。圖4.16“關(guān)于〞窗體控件的主要屬性和作用如表4.2所示。表4.2“關(guān)于〞窗體控件的主要屬性控件類型名稱屬性設(shè)置FormForm8Caption=關(guān)于LabelLabel1Caption=多點(diǎn)溫度監(jiān)控系統(tǒng)Label2Caption=當(dāng)前版本號(hào):1.0Label3Caption=版權(quán)所有,侵權(quán)必究。CommandCommand1Caption=確認(rèn)保存應(yīng)用程序當(dāng)應(yīng)用程序編寫完后,就應(yīng)該將其保存起來。事實(shí)上,編輯過程中經(jīng)常進(jìn)行保存是一個(gè)很好的習(xí)慣,這樣可以防止由于系統(tǒng)崩潰或機(jī)器掉電而導(dǎo)致的數(shù)據(jù)喪失。要保存應(yīng)用程序,可單擊標(biāo)準(zhǔn)工具欄的“保存工程〞按鈕。如果工程尚未保存過,那么系統(tǒng)首先顯示“文件另存為〞對(duì)話框,提示編程人員確定用于保存窗體的文件名。確定窗體文件的名字后,單擊“保存〞按鈕,將顯示“工程另存為〞對(duì)話框,提示編程人員確定用于保存工程的文件名。確定工程文件的名字之后,單擊“保存〞按鈕即可保存與應(yīng)用程序有關(guān)的所有文件。VisualBasic把用來構(gòu)造一個(gè)應(yīng)用程序的所有相關(guān)文件稱為一個(gè)工程〔Project〕。一個(gè)工程通常包括以下幾類文件。工程文件〔*.vbp〕;窗體文件〔*.frm〕;二進(jìn)制窗體文件〔*.frx〕;標(biāo)準(zhǔn)模塊文件〔*.bas〕;類模塊文件〔*.cls〕。建立可執(zhí)行文件分別完成各項(xiàng)功能之后,為了使應(yīng)用程序能夠脫離開發(fā)環(huán)境而直接在Windows環(huán)境下運(yùn)行,就必須將應(yīng)用程序編譯成可執(zhí)行文件〔.exe文件〕。編譯方法是:依次選擇“文件〞菜單的“生成工程1.exe〞命令〔這里的“工程1〞是工程名〕,彈出“生成工程〞對(duì)話框,選定保存位置,輸入可執(zhí)行文件的名字,單擊“確定〞按鈕即可在指定位置建立一個(gè)可執(zhí)行文件。結(jié)論溫度是工業(yè)生產(chǎn)中最常見和最根本的工藝參數(shù)之一,任何物理和化學(xué)變化的過程都與溫度密切相關(guān)。所以,在生產(chǎn)過程中常需對(duì)溫度進(jìn)行檢測和控制。多點(diǎn)溫度監(jiān)控系統(tǒng)采用下位機(jī)進(jìn)行多點(diǎn)溫度的檢測、控制,上位機(jī)進(jìn)行溫度信息顯示、查詢、報(bào)表、趨勢圖以及實(shí)時(shí)控制,對(duì)于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用。在此前提下,本文使用MicrosoftVisualBasic6.0語言設(shè)計(jì)了多點(diǎn)溫度監(jiān)控系統(tǒng)上位機(jī)。采用分模塊設(shè)計(jì)思想分別實(shí)現(xiàn)各模塊的功能然后總體結(jié)合實(shí)現(xiàn)統(tǒng)一的方案設(shè)計(jì),該課題的技術(shù)指標(biāo)。整個(gè)課題的開發(fā)過程主要包括了兩個(gè)方面的內(nèi)容:一、實(shí)現(xiàn)上位機(jī)與下位機(jī)的通信,完成溫度信息的上傳與溫度給定值的下傳;二、采用VB語言編程對(duì)多點(diǎn)溫度信息管理系統(tǒng)的設(shè)計(jì),從而完成各個(gè)用戶房間溫度的查詢、顯示、報(bào)表、趨勢圖等功能。社會(huì)經(jīng)濟(jì)效益分析多點(diǎn)溫度監(jiān)控系統(tǒng)針對(duì)各個(gè)分布點(diǎn)的溫度進(jìn)行檢測控制,實(shí)現(xiàn)了多點(diǎn)溫度信息的統(tǒng)一管理。同以往單點(diǎn)溫度控制系統(tǒng)相比,集中程度高,運(yùn)行操作簡單,不但提高了溫度的監(jiān)控精度,還節(jié)省了控制時(shí)間,提高了社會(huì)生產(chǎn)效率。防止了不必要的資源浪費(fèi)。有著良好的社會(huì)經(jīng)濟(jì)效益?;赩isualBasic是最快速、最簡單的編程語言之一。它簡單易學(xué)、容易掌握,編程人員不用編寫大量的代碼去描述界面元素的外觀和位置,而只需要把預(yù)先建立好的對(duì)象放到屏幕的某一位置即可,從而使編程效率得到了極大的提高。本文選擇了在MicrosoftVisualBasic6.0的集成開發(fā)環(huán)境下,進(jìn)行編程實(shí)現(xiàn)了多點(diǎn)溫度監(jiān)控系統(tǒng)的各局部功能。再加上本文的分模塊設(shè)計(jì)編程思想,從而使得程序?qū)哟吻宄?,簡單易懂。所設(shè)計(jì)的多點(diǎn)溫度監(jiān)控系統(tǒng)上位機(jī),控制精度高,溫度顯示直觀,設(shè)計(jì)本錢低??偠灾恍柽M(jìn)一步完善該多點(diǎn)溫度監(jiān)控系統(tǒng)的各局部功能,基于它的操作簡單,該多點(diǎn)溫度監(jiān)控系統(tǒng)使用方便,功能強(qiáng)大,本錢低廉,定會(huì)有一個(gè)很好的社會(huì)市場需求。參考文獻(xiàn)李江全,張麗,岑紅蕾.VisualBasic串口通信與測控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解.北京:人民郵電出版社,2007:150-155李長林,沙占友等.VisualBasic串口通信技術(shù)與典型實(shí)例.北京:清華大學(xué)出版社,2006:112-157李長林,張麗華,王紅.VisualBasic數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)從根底到實(shí)踐.北京:電子工業(yè)出版社,2006:276-310劉彬彬,高春艷,孫秀梅等.VisualBasic從入門到精通.北京:清華大學(xué)出版社,2023:427-454陳杰華,劉奇,卿川.奇思異想編程序.北京:國防工業(yè)出版社,2004:314-315斯琴巴圖,楊利潤等.零根底學(xué)VisualBasic.北京:機(jī)械工業(yè)出版社,2023:228-230白曉勇,余健等.VisualBasic課程設(shè)計(jì)案例精編.北京:清華大學(xué)出版社,2007:255-256陳紫紅,安劍,孫秀梅等.VisualBasic工程開發(fā)全程實(shí)錄.北京:清華大學(xué)出版社,2023:115-124胡小江等.21天學(xué)通VisualBasic.北京:電子工業(yè)出版社,2023:239-251范逸之.VisualBasic與RS232串行通訊控制.北京:中國青年出版社,2000:2-15李懷明等.VisualBasic6.0中文版參考詳解.北京:清華大學(xué)出版社,1999:98-103龔沛增.VisualBasic程序設(shè)計(jì)教程.北京:清華大學(xué)出版社,2004:11-32劉新民.VisualBasic6.0程序設(shè)計(jì).北京:清華大學(xué)出版社,2004:61-83劉瑞新,李樹東.VisualBasic程序設(shè)計(jì)教程習(xí)題及習(xí)題解答.北京:電子工業(yè)出版社,1999:101-120郭琦.VisualBasic數(shù)據(jù)庫系統(tǒng)開發(fā)技術(shù).北京:人民郵電出版社,2004:42-53孫越.VisualBasic數(shù)據(jù)庫開發(fā)自學(xué)教程.北京:人民郵電出版社,2005:111-123馬壯,吳錚,王永強(qiáng).基于VB的PC機(jī)與單片機(jī)串行通信系統(tǒng)研究與實(shí)現(xiàn).唐山學(xué)院學(xué)報(bào),2023,21(4):124-132劉金頌.多點(diǎn)智能測溫系統(tǒng)在VAV系統(tǒng)室內(nèi)環(huán)境測量中的應(yīng)用:[碩士學(xué)位論文].陜西:西安建筑科技大學(xué),2006丁幼春,熊利榮,黃劍.基于AT89S52和DS18B20的多點(diǎn)溫度檢測報(bào)警系統(tǒng).農(nóng)機(jī)化研究.2007,21(5):121-123FawziA.RadwanandTerryW.Martin.Real-timeMonitoringandControllingofanAllen-bradleySLC500throughtheinternet.Restrictionsapply.2023,19(7):387-392致謝在本次畢業(yè)設(shè)計(jì)中,我遇到了很多困難,是我大學(xué)生活難忘的經(jīng)歷。每一次點(diǎn)滴的成功都讓我充滿了成就感。這次畢業(yè)設(shè)計(jì)的圓滿完成,與很多人的努力是分不開的。首先,我要感謝我的指導(dǎo)老師王昱老師對(duì)我的精心指導(dǎo);她嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,遇到困難時(shí)勇于戰(zhàn)勝的精神,一直鼓勵(lì)著我前進(jìn)。本論文是在王老師的悉心指導(dǎo)下完成的,在論文的撰寫和定稿的整個(gè)過程中,王老師付出了極大的心血。再一次對(duì)王其次,在我做畢業(yè)設(shè)計(jì)的過程中,許多同學(xué)也給我提出了珍貴的意見,也給了許多幫助,本次畢業(yè)設(shè)計(jì)的圓滿完成是與他們的幫助所分不開的。在此一并向他們表示最真摯的謝意!本次畢業(yè)設(shè)計(jì)雖然結(jié)束了,但它卻給我留下了很多美好的回憶,面對(duì)自己的勞動(dòng)成果有一種油然而生的滿足感和成就感,沒有付出,就沒有收獲這句話又一次得到了驗(yàn)證。滿足之于也讓我不由的想起幫助過我的老師和同學(xué),沒有他們的幫助,我不會(huì)這么順利地完成這次畢業(yè)設(shè)計(jì),因此,再次向幫助和指導(dǎo)我的老師和同學(xué)表示感謝。最后,一并感謝批閱我論文的老師以及辯論的老師們,感謝您們給我設(shè)計(jì)的指導(dǎo),我定將虛心接受并繼續(xù)改良。附錄程序清單登陸模塊具體程序代碼如下:PrivateSubForm_Load()'ADODC連接數(shù)據(jù)庫DimconnectionstringAsStringconnectionstring="provider=microsoft.jet.oledb.4.0;"&"datasource=用戶信息表.mdb"conn.OpenconnectionstringEndSubPrivateSubCommand1_Click()'確定按鈕DimsqlAsStringDimrs_loginAsNewADODB.RecordsetStaticcntAsIntegerIfTrim(txtuser.Text)=""Then'如果用戶名為空MsgBox"用戶名不能為空!",vbOKOnly+vbExclamation,"錯(cuò)誤"txtuser.SetFocusElsesql="select*from用戶信息表where用戶名='"&txtuser.Text&"'"'在用戶信息表中尋找輸入的用戶名rs_login.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_login.EOF=TrueThen'沒有找到用戶MsgBox"沒有這個(gè)用戶",vbOKOnly+vbExclamation,""txtuser.SetFocusElseIfTrim(rs_login.Fields(1))=Trim(txtpwd.Text)Then'如果密碼與數(shù)據(jù)庫中相同userid=txtuser.Textrs_login.Close'關(guān)閉數(shù)據(jù)庫UnloadMeMDIForm1.Show'顯示主界面Elsecnt=cnt+1Ifcnt>3Then'超過3次End'退出程序EndIfMsgBox"密碼不正確!",vbOKOnly+vbExclamation,""txtpwd.SetFocusEndIfEndIfEndIfExitSubEndSubPrivateSubCommand2_Click()'取消按鈕End'退出程序EndSub修改用戶密碼模塊的具體程序代碼如下:PrivateSubCommand1_Click()DimsqlAsStringDimrs_loginAsNewADODB.RecordsetIfTrim(Txtuser.Text)=""Then'如果用戶名為空MsgBox"用戶名不能為空!",vbOKOnly+vbExclamation,"錯(cuò)誤"Txtuser.SetFocusElsesql="select*from用戶信息表where用戶名='"&Txtuser.Text&"'"'在數(shù)據(jù)庫中搜索輸入的用戶名rs_login.Opensql,conn,adOpenKeyset,adLockPessimisticIfrs_login.EOF=TrueThen'沒有找到記錄MsgBox"沒有這個(gè)用戶",vbOKOnly+vbExclamation,""Txtuser.SetFocusElseIfTrim(rs_login.Fields(1))=Trim(Txtpwd.Text)Then'如果原密碼正確userid=Txtuser.TextElseMsgBox"原密碼不正確!",vbOKOnly+vbExclamation,"提示"Txtuser.Text=""Txtpwd.Text=""TextNewPass.Text=""TextConfirm=""ExitSubEndIfIfTrim(TextNewPass.Text)=""Then'新密碼為空MsgBox"新密碼不能為空!",vbOKOnly+vbExclamation,"提示"ExitSubElseIfTrim(TextNewPass.Text)=Trim(TextConfirm.Text)Then'新密碼與確認(rèn)密碼一致Adodc1.Recordset("密碼")=TextNewPass.TextAdodc1.Recordset.Update'更新密碼MsgBox"密碼修改成功!"rs_login.Close'關(guān)閉數(shù)據(jù)庫UnloadMeElseMsgBox"密碼不一致,請(qǐng)重新輸入!"TextNewPass.Text=""TextConfirm=""EndIfEndIfEndIfEndIfExitSubEndSubPrivateSubCommand2_Click()'取消按鈕UnloadMe'卸載窗體EndSub添加新用戶模塊程序代碼如下:PrivateSubCommand1_Click()'確定按鈕DimsqlAsStringDimrs_addAsNewADODB.RecordsetIfTrim(Text1.Text)=""ThenMsgBox"用戶名不能為空!",vbOKOnly+vbExclamation,"提示"ExitSubText1.SetFocusElsesql="select*from用戶信息表"rs_add.Opensql,conn,adOpenKeyset,adLockBatchOptimisticrs_add.MoveFirst'首地址While(rs_add.EOF=False)IfTrim(rs_add.Fields(0))=Trim(Text1.Text)Then'找到記錄MsgBox"已經(jīng)有這個(gè)用戶",vbOKOnly+vbExclamation,""Text1.SetFocusText1.Text=""Text2.Text=""Text3.Text=""ExitSubElsers_add.MoveNext'下一個(gè)地址EndIfWendIfTrim(Text2.Text)=""ThenMsgBox"密碼不能為空!",v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論