版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本科生畢業(yè)設(shè)計(jì)(論文)基于PC機(jī)的溫濕度集中處理和顯示軟件設(shè)計(jì)TheSoftwareDesignoftheTemperatureandHumidityDataProcessingandDisplayUnitBasedonPC總計(jì):23頁(yè)表格:1個(gè)插圖:7幅學(xué)院(系):電子與電氣工程專(zhuān)業(yè):電子信息工程基于PC機(jī)的溫濕度集中處理和顯示軟件設(shè)計(jì)[摘要]基于PC機(jī)的溫濕度集中處理和顯示系統(tǒng)能實(shí)現(xiàn)多點(diǎn)溫濕度的分布式檢測(cè)和集中式顯示、報(bào)警功能。用PC機(jī)作為溫濕度數(shù)據(jù)顯示和報(bào)警的中心,本設(shè)計(jì)是完成在PC中數(shù)據(jù)的集中顯示和報(bào)警的軟件設(shè)計(jì)。在PC界面設(shè)計(jì)中采用VisualBasic6.0在Window環(huán)境下創(chuàng)作,使用VisualBasic6.0提供的MSComm控件,實(shí)現(xiàn)數(shù)據(jù)的集中顯示。在報(bào)警軟件設(shè)計(jì)中分為溫度控制、濕度控制,當(dāng)顯示的溫濕度高于設(shè)作用定的上限值系統(tǒng)自動(dòng)采用蜂鳴器報(bào)警。[關(guān)鍵詞]串行通信;PC機(jī);主從控制;VBTheSoftwareDesignoftheTemperatureandHumidityDateProcessingandDisplayUnitBasedonPCAbstract:ThePCmachineandserialtransmissionofthewaysandmeansofcommunication.PC-basedtemperatureandhumidityanddisplaysystemtofocusontoachievemulti-pointtemperatureandhumiditytestingofdistributedandcentralizeddisplay,alarmfunction.PC-usetemperatureandhumiditydataasadisplayandalarmcenter,thedesigniscompletedthedatainthePCdisplayandthepolicefocusonthesoftwaredesign.
PCinterfacedesignintheuseofVisualBasic6.0intheWindowenvironmentcreation,theuseofVisualBasic6.0.MSCommprovidedcontroldatashowthefocus.Softwaredesigninthereporttothepoliceisdividedintotemperaturecontrol,humiditycontrol,type1linkage,type2linkage,asshownfortheroleoftemperatureandhumidityishigherthantheupperlimitsetautomaticallyusingbuzzeralarm.KeyWords:Serialcommunication;PC;Master-slavecontrol;VB目錄TOC\o"1-3"\u1引言 11.1前言 11.2研究的背景及意義 11.3本文的主要工作 22系統(tǒng)總體設(shè)計(jì) 22.1系統(tǒng)主要構(gòu)成部分 32.1.1主控PC機(jī) 42.1.2帶光電隔離RS232/485轉(zhuǎn)換電路 42.1.3RS-485總線(xiàn)型通信網(wǎng)絡(luò) 42.1.4測(cè)量節(jié)點(diǎn)部分 42.2系統(tǒng)主從通信的基本條件 42.2.1串行通信的傳送方式 52.2.2通信協(xié)議 62.3運(yùn)行環(huán)境 73系統(tǒng)軟件設(shè)計(jì) 73.1VB軟件介紹 73.2通信控件介紹 74主控PC機(jī)軟件設(shè)計(jì)和界面顯示 94.1軟件設(shè)計(jì) 94.2界面設(shè)計(jì)及顯示 114.2.1界面設(shè)計(jì)中美的需求與導(dǎo)向作用 114.3主界面窗體的設(shè)計(jì) 124.3.1接收顯示部分的實(shí)現(xiàn) 124.3.2主控機(jī)系統(tǒng)實(shí)現(xiàn) 144.3.3參數(shù)設(shè)置 145系統(tǒng)調(diào)試 14結(jié)束語(yǔ) 17參考文獻(xiàn) 18附錄 19致謝 201引言1.1前言計(jì)算機(jī)技術(shù)、自動(dòng)化技術(shù)和通信技術(shù)是現(xiàn)代信息科學(xué)技術(shù)的重要組成部分,是現(xiàn)代科學(xué)技術(shù)中的核心先導(dǎo)技術(shù)。計(jì)算機(jī)控制是計(jì)算機(jī)技術(shù)與自動(dòng)控制理論、自動(dòng)化技術(shù)緊密結(jié)合并應(yīng)用于實(shí)際的結(jié)果,它的應(yīng)用領(lǐng)域非常廣泛。隨著高性能計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)及單片機(jī)技術(shù)的不斷發(fā)展,不僅使計(jì)算機(jī)應(yīng)用向網(wǎng)絡(luò)化、綜合化、集成化、智能化發(fā)展,而且使單片機(jī)的應(yīng)用也從獨(dú)立的單機(jī)控制向多機(jī)聯(lián)網(wǎng)的方向發(fā)展,這就需要將各單機(jī)進(jìn)行組網(wǎng)以進(jìn)行相互通信,從簡(jiǎn)單的集中式控制逐漸向復(fù)雜的分布式形式發(fā)展,于是出現(xiàn)了以通信網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新的控制形式。串行通信作為一種簡(jiǎn)單、廉價(jià)的通信方式在控制工程中得到了廣泛的應(yīng)用,其中RS-485總線(xiàn)型控制系統(tǒng)得到了推廣和發(fā)展。由PC機(jī)和多臺(tái)單片機(jī)構(gòu)成的多級(jí)網(wǎng)絡(luò)測(cè)控系統(tǒng)已成為單片機(jī)技術(shù)發(fā)展的一個(gè)方向。在一個(gè)應(yīng)用系統(tǒng)中,通常由PC機(jī)對(duì)數(shù)據(jù)進(jìn)行分析并處理,單片機(jī)則完成數(shù)據(jù)的采集和上傳等工作,復(fù)雜的還要建立數(shù)據(jù)庫(kù)。在這樣的系統(tǒng)中,單片機(jī)系統(tǒng)一般稱(chēng)之為下位機(jī),由PC機(jī)、網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)庫(kù)組成的應(yīng)用部分則通稱(chēng)為上位機(jī)。二者結(jié)合,充分發(fā)揮了單片機(jī)在實(shí)時(shí)數(shù)據(jù)采集和PC機(jī)對(duì)圖形處理、顯示以及數(shù)據(jù)庫(kù)管理上的優(yōu)點(diǎn),使得單片機(jī)的應(yīng)用己不僅僅局限于傳統(tǒng)意義上的自動(dòng)監(jiān)測(cè)或控制,而且形成了以網(wǎng)絡(luò)為核心的分布式多點(diǎn)系統(tǒng)發(fā)展的趨勢(shì)。這種發(fā)展的結(jié)果就使得數(shù)據(jù)通信在單片機(jī)應(yīng)用系統(tǒng)中的作用越發(fā)重要。1.2研究的背景及意義在工業(yè)應(yīng)用中,PC機(jī)由于其優(yōu)越的性能價(jià)格比和豐富的軟件資源,己成為計(jì)算機(jī)應(yīng)用的主要機(jī)種。應(yīng)用中我們常常會(huì)遇到若干任務(wù)需要同時(shí)執(zhí)行的情況,單片機(jī)可以根據(jù)預(yù)先設(shè)置的指令獲取現(xiàn)場(chǎng)數(shù)據(jù)并完成規(guī)定的控制功能,從而能夠解決此類(lèi)問(wèn)題,因此被廣泛的應(yīng)用于工業(yè)檢測(cè)與控制系統(tǒng)中。分布式控制為一種常用的控制方式,要實(shí)現(xiàn)分布式控制,多采用主從式微機(jī)網(wǎng)絡(luò)形式,每臺(tái)獨(dú)立的單片機(jī)不僅要按預(yù)先設(shè)計(jì)的程序工作,更多時(shí)候需要根據(jù)來(lái)自上位機(jī)的控制指令適時(shí)調(diào)整工作程序。因此,各單片機(jī)之間、上位機(jī)與各單片機(jī)之間需要信息的相互傳遞,這樣就形成了一個(gè)以單片機(jī)為用戶(hù)的網(wǎng)絡(luò)。不同于計(jì)算機(jī)網(wǎng)絡(luò)的是:網(wǎng)絡(luò)中單片機(jī)的工作只能被動(dòng)的發(fā)送或接收信息。與單個(gè)獨(dú)立單片機(jī)系統(tǒng)不同,網(wǎng)絡(luò)中單片機(jī)的工作程序可以按照上位機(jī)的命令隨時(shí)加以改變。上位機(jī)或稱(chēng)主控微機(jī)能對(duì)整個(gè)網(wǎng)絡(luò)的運(yùn)行進(jìn)行管理和控制,所以說(shuō)是微機(jī)控制下的單片機(jī)網(wǎng)絡(luò)。這種以PC機(jī)為中心控制機(jī)和以單片機(jī)為現(xiàn)場(chǎng)測(cè)控機(jī)的分布式控制系統(tǒng)可以廣泛的應(yīng)用于工業(yè)測(cè)控系統(tǒng)中,而且具有很好的應(yīng)用前景?,F(xiàn)代實(shí)時(shí)控制系統(tǒng)綜合了多功能,要解決的不僅是系統(tǒng)局部最優(yōu)化問(wèn)題,而且要解決整個(gè)系統(tǒng)的最優(yōu)化設(shè)計(jì),以保證整個(gè)系統(tǒng)各功能部件的協(xié)調(diào)工作。因而整個(gè)系統(tǒng)結(jié)構(gòu)復(fù)雜、規(guī)模龐大,計(jì)算機(jī)不僅要完成整個(gè)系統(tǒng)的控制任務(wù),以保證動(dòng)態(tài)最優(yōu)化的實(shí)現(xiàn);而且要對(duì)生產(chǎn)的組織、決策等進(jìn)行相應(yīng)的規(guī)劃管理,實(shí)現(xiàn)生產(chǎn)過(guò)程的靜態(tài)最優(yōu)化任務(wù)。因此,目前對(duì)大系統(tǒng)的控制,普遍采用的是分解原則,將大系統(tǒng)分解成若干相對(duì)獨(dú)立的小系統(tǒng),利用局部的控制器完成一個(gè)小系統(tǒng)的最佳控制,由監(jiān)督管理計(jì)算機(jī)完成個(gè)子系統(tǒng)控制器的協(xié)調(diào)工作,負(fù)責(zé)整個(gè)系統(tǒng)的各種管理。在這種分布式系統(tǒng)中,各個(gè)控制器安裝于現(xiàn)場(chǎng),信號(hào)傳輸線(xiàn)路短,能及時(shí)處理控制對(duì)象的工//0數(shù)據(jù),反應(yīng)迅速,抗干擾能力強(qiáng),減少通道上的信息傳輸量,減少了對(duì)上一級(jí)計(jì)算機(jī)的要求。在測(cè)控系統(tǒng)和工程應(yīng)用中,還會(huì)經(jīng)常遇到對(duì)多個(gè)檢測(cè)對(duì)象進(jìn)行檢測(cè)與控制的和單片機(jī)組成。單片機(jī)由于其體積小、功能強(qiáng)、價(jià)格低廉、開(kāi)發(fā)應(yīng)用方便,尤其具有全雙工串行通信的特點(diǎn),在工業(yè)控制、數(shù)據(jù)采集、智能儀器儀表等方面都有廣泛的應(yīng)用。而PC機(jī)正好彌補(bǔ)了單片機(jī)數(shù)據(jù)處理能力弱和軟硬件資源貧乏的缺陷。各單片機(jī)獨(dú)立完成數(shù)據(jù)采集和控制任務(wù),同時(shí)通過(guò)通信接口將檢測(cè)數(shù)據(jù)傳送給PC機(jī),PC機(jī)將這些數(shù)據(jù)進(jìn)行處理、顯示或打印,并根據(jù)需要把各種控制命令傳送給單片機(jī),以實(shí)現(xiàn)集中管理和最優(yōu)控制。因此,主控PC機(jī)與各測(cè)量節(jié)點(diǎn)之間的通信就顯得尤其重要。1.3本文的主要工作本文的主要工作是研究基于PC機(jī)的溫濕度集中處理和顯示的軟件程序。在論文中主要對(duì)主控PC機(jī)和測(cè)量節(jié)點(diǎn)之間的通信,以及對(duì)數(shù)據(jù)的顯示工作做了具體設(shè)計(jì)。論文主要分四個(gè)部分:(1)系統(tǒng)總體設(shè)計(jì);(2)系統(tǒng)的軟件設(shè)計(jì);(3)主控PC機(jī)軟件設(shè)計(jì);(4)系統(tǒng)調(diào)試。2系統(tǒng)總體設(shè)計(jì)本測(cè)控系統(tǒng)工作過(guò)程如下:主控PC機(jī)經(jīng)過(guò)一定的程序后,向各測(cè)量節(jié)點(diǎn)發(fā)出信號(hào),同時(shí)準(zhǔn)備向各測(cè)量點(diǎn)發(fā)送數(shù)據(jù)或接收各測(cè)量節(jié)點(diǎn)發(fā)送上來(lái)到信號(hào)和數(shù)據(jù)。各測(cè)量節(jié)點(diǎn)一方面要響應(yīng)主控機(jī)發(fā)出的信號(hào),另一方面接收數(shù)據(jù)或向主控機(jī)傳輸數(shù)據(jù)。當(dāng)數(shù)據(jù)傳輸完畢,主控機(jī)可以把接收到的數(shù)據(jù)進(jìn)行顯示、存儲(chǔ)。PC機(jī)與各測(cè)量節(jié)點(diǎn)的配合是按需要將它們組成一定形式的網(wǎng)絡(luò),使它們之間相互通信,以完成各種功能。目前,最常用的多機(jī)通信網(wǎng)絡(luò)形式有以下4種:串行總線(xiàn)型網(wǎng)絡(luò)結(jié)構(gòu)、環(huán)型網(wǎng)絡(luò)結(jié)構(gòu)、星型網(wǎng)絡(luò)結(jié)構(gòu)、樹(shù)型結(jié)構(gòu)。上述幾種通信網(wǎng)絡(luò)形式各有優(yōu)缺點(diǎn),其性能比較。見(jiàn)表1所示:表1計(jì)算機(jī)數(shù)據(jù)通信網(wǎng)絡(luò)性能比較可靠性接口復(fù)雜性組成靈活性通信效率價(jià)格控制星型差簡(jiǎn)單好高高較復(fù)雜總線(xiàn)型較好簡(jiǎn)單很好中等較低簡(jiǎn)單環(huán)形中等較簡(jiǎn)單較好中等較低簡(jiǎn)單樹(shù)形好復(fù)雜差最高很高很復(fù)雜從表中可以看出,總線(xiàn)型網(wǎng)絡(luò)結(jié)構(gòu)接口簡(jiǎn)單、使用靈活,因此在本測(cè)控系統(tǒng)中使用總線(xiàn)型網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)為了提高系統(tǒng)在通信過(guò)程中的性能和進(jìn)行多機(jī)通信,我們?cè)谠O(shè)計(jì)時(shí)采用RS-485總線(xiàn)進(jìn)行串行數(shù)據(jù)通信。2.1系統(tǒng)主要構(gòu)成部分本系統(tǒng)是建立在RS-485總線(xiàn)型網(wǎng)絡(luò)基礎(chǔ)上的主從分布式測(cè)控系統(tǒng)。系統(tǒng)中作為主機(jī)的PC機(jī)通過(guò)調(diào)用串行口控件和RS-232進(jìn)行通信,RS-232和RS-485總線(xiàn)標(biāo)準(zhǔn)間通過(guò)MAX232,MAX485兩個(gè)芯片進(jìn)行轉(zhuǎn)換。各測(cè)量點(diǎn)和RS-485總線(xiàn)的連接通過(guò)MAX485芯片來(lái)實(shí)現(xiàn)。本系統(tǒng)的結(jié)構(gòu)簡(jiǎn)圖如圖1所示:圖1系統(tǒng)主要構(gòu)成部分從結(jié)構(gòu)上可以分為:主控PC機(jī)部分、帶光電隔離RS232/485轉(zhuǎn)換電路、RS-485總線(xiàn)型通信網(wǎng)絡(luò)部分和測(cè)量節(jié)點(diǎn)部分。2.1.1主控PC機(jī) 上位機(jī)作為主控機(jī)一般采用PC機(jī),放置在中央控制室,該上位機(jī)主要用來(lái)向下位機(jī)發(fā)送命令和接收下位機(jī)做出的反應(yīng)。設(shè)計(jì)顯示界面的目的主要是為了用戶(hù)方便地使用該系統(tǒng),我們采用VisualBasic6.0在Window平臺(tái)上對(duì)上位機(jī)界面進(jìn)行設(shè)計(jì)。具體實(shí)現(xiàn)功能:(1)主要承擔(dān)復(fù)雜控制計(jì)算、數(shù)據(jù)顯示等功能;(2)向各測(cè)量點(diǎn)發(fā)出信號(hào),接收、處理和存儲(chǔ)各測(cè)量節(jié)點(diǎn)上傳的數(shù)據(jù);(3)對(duì)通信參數(shù)進(jìn)行設(shè)置;(4)提供用戶(hù)登錄界面和幫助系統(tǒng)。2.1.2帶光電隔離RS232/485轉(zhuǎn)換電路RS232/485轉(zhuǎn)換電路通過(guò)485收發(fā)芯片和光電藕合器相結(jié)合,實(shí)現(xiàn)對(duì)收發(fā)芯片兩端進(jìn)行電流隔離和總線(xiàn)信息收發(fā)。2.1.3RS-485總線(xiàn)型通信網(wǎng)絡(luò)分布式控制是一種常用的控制方式,要實(shí)現(xiàn)分布式控制,多采用主從式微機(jī)網(wǎng)絡(luò)形式?,F(xiàn)代控制系統(tǒng)越來(lái)越復(fù)雜,一個(gè)系統(tǒng)往往由分散目標(biāo)監(jiān)控系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能儀表等幾部分組成,自動(dòng)控制系統(tǒng)大多為多站、遠(yuǎn)距離通信網(wǎng)絡(luò),RS-485總線(xiàn)的傳輸距離長(zhǎng)、抗干擾能力強(qiáng),因此常采用RS-485總線(xiàn)進(jìn)行網(wǎng)絡(luò)通信。由MAX485收發(fā)器組成的差分平衡系統(tǒng),抗干擾能力強(qiáng)、適合于遠(yuǎn)距離通信,可組成滿(mǎn)足RS-485標(biāo)準(zhǔn)的通信網(wǎng)絡(luò)。2.1.4測(cè)量節(jié)點(diǎn)部分每個(gè)測(cè)量節(jié)點(diǎn)是一個(gè)以AT89C51單片機(jī)為核心,再配上必要的外圍電路所構(gòu)成的單片機(jī)系統(tǒng)。該部分具體完成任務(wù):(1)對(duì)主控機(jī)發(fā)出的信號(hào)做出響應(yīng);(2)完成與主控PC機(jī)的數(shù)據(jù)傳輸;(3)進(jìn)行數(shù)據(jù)采集。2.2系統(tǒng)主從通信的基本條件為了確保主從測(cè)控系統(tǒng)通信的暢通,在通信過(guò)程中需要滿(mǎn)足以下三個(gè)基本條件:(1)系統(tǒng)中的各測(cè)量節(jié)點(diǎn)都有各自唯一的地址碼。(2)在系統(tǒng)中,主控機(jī)直接與各測(cè)量節(jié)點(diǎn)建立通信聯(lián)系,主控機(jī)在通信中起主導(dǎo)作用,進(jìn)行主動(dòng)通信,各測(cè)量節(jié)點(diǎn)為被動(dòng)通信,各測(cè)量節(jié)點(diǎn)之間不能進(jìn)行直接通信,通信時(shí)需要通過(guò)主控機(jī);各測(cè)量節(jié)點(diǎn)在不進(jìn)行通信時(shí)處于監(jiān)聽(tīng)狀態(tài)。(3)在通信的任意時(shí)刻,只允許主控機(jī)和一個(gè)測(cè)量節(jié)點(diǎn)進(jìn)行通信,即一對(duì)一通信,而不允許多個(gè)測(cè)量節(jié)點(diǎn)同時(shí)通信。數(shù)據(jù)通信方式有兩種,即并行數(shù)據(jù)通信和串行數(shù)據(jù)通信。通常根據(jù)信息傳送的距離決定采用哪種通信方式。并行數(shù)據(jù)通信是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的通信方式。其優(yōu)點(diǎn)是傳送速率快;缺點(diǎn)是數(shù)據(jù)有多少位,就需要多少根傳送線(xiàn)。串行數(shù)據(jù)通信指數(shù)據(jù)是一位一位順序傳送的通信方式,它的突出優(yōu)點(diǎn)是只需一對(duì)傳送線(xiàn),這樣就大大降低了傳送成本,特別適合于遠(yuǎn)距離通信。所以本文采用串行通信方式。2.2.1串行通信的傳送方式串行通信的傳送方式通常有三種:一種為單工(或單向)配置,只允許數(shù)據(jù)向一個(gè)方向傳送:另一種是半雙工(或半雙向)配置,允許數(shù)據(jù)向兩個(gè)方向中的任一個(gè)方向傳送,但每次只能有一個(gè)站發(fā)送;第三種傳送方式是全雙工(或全雙向)配置,允許同時(shí)雙向傳送數(shù)據(jù),因此,全雙工配置是一對(duì)單向配置,它要求兩端的通信設(shè)備都具有完整和獨(dú)立的發(fā)送和接收能力。本文采用半雙工配置。串口通信接收顯示部分的基本實(shí)現(xiàn)流程如圖2所示:圖2串口通信接收部分的實(shí)現(xiàn)流程圖串口通信接收顯示部分可以在線(xiàn)設(shè)置各種通信速率、通信口而無(wú)需重新啟動(dòng)程序,可以顯示接收到的數(shù)據(jù),并能在字符串、十進(jìn)制和十六進(jìn)制之間進(jìn)行切換;自動(dòng)保存設(shè)置參數(shù)。文件傳輸部分負(fù)責(zé)文件的傳輸,如果需要發(fā)送文件,必須選中“發(fā)送文件”單選框,在其下的編輯框內(nèi)填入文件路徑(或單擊編輯框右部的按鈕,從彈出的文件對(duì)話(huà)框中選擇待發(fā)送的文件),然后單擊開(kāi)始傳輸;要接收文件,選擇“接收文件”單選框,在其下方編輯框內(nèi)填入接收文件的路徑(或單擊編輯框右部的按鈕,從彈出的文件對(duì)話(huà)框中選擇文件保存路徑和名稱(chēng))。程序見(jiàn)附錄。2.2.2通信協(xié)議在傳輸過(guò)程中主控機(jī)發(fā)送出去的數(shù)據(jù)有三類(lèi):(1)從機(jī)地址;(2)命令字;(3)向各測(cè)量節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包;收到的數(shù)據(jù)有兩類(lèi):(1)從各測(cè)量節(jié)點(diǎn)發(fā)來(lái)的確認(rèn)信號(hào);(2)從各測(cè)量節(jié)點(diǎn)傳來(lái)的數(shù)據(jù);各測(cè)量節(jié)點(diǎn)接收和發(fā)送的數(shù)據(jù)與之對(duì)應(yīng)不再贅述。為了使主控機(jī)和各測(cè)量節(jié)點(diǎn)之間能夠正確通信,減少傳輸錯(cuò)誤必須制定雙方共同遵守的協(xié)議,即通信協(xié)議。通信協(xié)議如下:(1)首先使RS-485總線(xiàn)所有從機(jī)處于只接收命令的監(jiān)聽(tīng)狀態(tài)。(2)PC機(jī)先向從機(jī)發(fā)送一幀命令信息,包括一字節(jié)命令和一字節(jié)溫濕度采集點(diǎn)地址。(3)數(shù)據(jù)格式:8個(gè)數(shù)據(jù)位,無(wú)校驗(yàn)位,1個(gè)停止位。通訊速率:9600pbs。命令格式:上位機(jī)發(fā)送:第1字節(jié):AEH第2字節(jié):溫濕度采集點(diǎn)的地址(地址范圍:00H─FFH)下位機(jī)回應(yīng):第1字節(jié):90H第2字節(jié):9XH(X=溫度十位十進(jìn)制碼)第3字節(jié):9XH(X=溫度個(gè)位十進(jìn)制碼)第4字節(jié):9XH(X=溫度小數(shù)十進(jìn)制碼)第5字節(jié):9XH(X=濕度十位十進(jìn)制碼)第6字節(jié):9XH(X=濕度個(gè)位十進(jìn)制碼)第7字節(jié):9XH(X=濕度小數(shù)十進(jìn)制碼) 第8字節(jié):9XH(X=以上7字節(jié)低4位累加和)當(dāng)溫度為零下時(shí),第2、3、4字節(jié)定義如下:第2字節(jié):9AH(X=負(fù)溫度符號(hào))第3字節(jié):9XH(X=溫度十位十進(jìn)制碼)第4字節(jié):9XH(X=溫度個(gè)位十進(jìn)制碼)(4)通信的各機(jī)之間必須以相同的幀格式及波特率進(jìn)行通信。通信協(xié)議中,幀格式和波特率的選擇,它關(guān)系到通信的效率,傳輸?shù)木嚯x和通信的可靠性,是串行通信中的一個(gè)關(guān)鍵參數(shù)。采用幀格式為:1位起始位,1位停止位,8位數(shù)據(jù)位。根據(jù)通信距離和通信速率的要求,綜合考慮,在實(shí)驗(yàn)中,我們將波特率設(shè)置為9600bps。通信協(xié)議分為三段,即主機(jī)與從機(jī)的連接與握手階段、發(fā)送(接收)階段、結(jié)束階段。在連接階段主要完成通信聯(lián)絡(luò)任務(wù),主機(jī)首先發(fā)送測(cè)量節(jié)點(diǎn)的地址信號(hào),與測(cè)量節(jié)點(diǎn)聯(lián)絡(luò)之后,向測(cè)量節(jié)點(diǎn)發(fā)送命令代碼,收到應(yīng)答信號(hào)后,開(kāi)始發(fā)送或接收數(shù)據(jù):接收(發(fā)送)階段收/發(fā)數(shù)據(jù)及檢驗(yàn)碼,完成數(shù)據(jù)傳輸?shù)男r?yàn);結(jié)束階段則是由于通信系統(tǒng)出錯(cuò)或誤碼次數(shù)越限則宣告通信失敗而結(jié)束通信。每發(fā)送一數(shù)據(jù)塊,僅當(dāng)數(shù)據(jù)接收正確時(shí),才會(huì)發(fā)送一個(gè)幀格式,否則回送出錯(cuò)信息,要求重發(fā)數(shù)據(jù)塊,直到正確為止,為了防止系統(tǒng)出錯(cuò)而引起“死鎖”,最多只允許重發(fā)數(shù)據(jù)3次,否則轉(zhuǎn)向出錯(cuò)處理程序,顯示系統(tǒng)出錯(cuò)。2.3運(yùn)行環(huán)境本系統(tǒng)是應(yīng)用在溫室、倉(cāng)庫(kù)、檔案管理室等方面的客戶(hù)端軟件。從硬件上來(lái)說(shuō),一般的PC機(jī)即可運(yùn)行;從軟件上來(lái)說(shuō),由于系統(tǒng)是在Windows操作系統(tǒng).NET平臺(tái)的環(huán)境下開(kāi)發(fā)的,調(diào)用的都是WindowssAPI,所以系統(tǒng)只能在Windows操作系統(tǒng)上運(yùn)行。同時(shí),系統(tǒng)的正常運(yùn)行需要一個(gè)良好的運(yùn)行環(huán)境,這要靠熟悉系統(tǒng)的人員(系統(tǒng)管理員)負(fù)責(zé)維護(hù)。3系統(tǒng)軟件設(shè)計(jì)串行通信是微機(jī)之間常用的通信方法之一,由于串行通信編程靈活,硬件簡(jiǎn)潔并遵循統(tǒng)一的標(biāo)準(zhǔn)而在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。Windows現(xiàn)已成為當(dāng)今計(jì)算機(jī)操作系統(tǒng)的主流,在其環(huán)境下利用Microsoft公司推出的功能強(qiáng)大的VisualBasic可視化的程序設(shè)計(jì)語(yǔ)言,開(kāi)發(fā)出界面友好,操作簡(jiǎn)便的多機(jī)串行通信軟件就顯得尤為重要了。對(duì)于用戶(hù)來(lái)說(shuō),此類(lèi)可視化語(yǔ)言所開(kāi)發(fā)出的界面友好、操作簡(jiǎn)便;對(duì)于開(kāi)發(fā)者來(lái)說(shuō),Windows提供了豐富的資源,VisualBasic提供了面向?qū)ο蟪绦蛟O(shè)計(jì)的功能。本文利用VisualBasic的強(qiáng)大功能,在Windows環(huán)境下方便的開(kāi)發(fā)了多臺(tái)單片機(jī)的串行通信軟件。3.1VB軟件介紹1991年Microsoft公司推出的Windows應(yīng)用程序開(kāi)發(fā)工具一VisualBasic,它是基于Basic的可視化的程序設(shè)計(jì)語(yǔ)言,既繼承了Basic所具有的程序設(shè)計(jì)語(yǔ)言簡(jiǎn)單易用的特點(diǎn),其編程系統(tǒng)又采用了面向?qū)ο蟆⑹录?qū)動(dòng)的編程機(jī)制,用一種巧妙的方法把Windows的編程復(fù)雜性封裝起來(lái),提供了一種所見(jiàn)即所得的可視界面設(shè)計(jì)方法,此應(yīng)用程序開(kāi)發(fā)工具一出現(xiàn)就受到了廣大軟件開(kāi)發(fā)人員的青睞。VB具有高的代碼效率,與Windows系統(tǒng)有著完美的接口,易于進(jìn)行硬件訪(fǎng)問(wèn),非常適合一些應(yīng)用程序的開(kāi)發(fā)。3.2通信控件介紹VisualBasic提供了大量的控件供編程人員使用,編程人員可以方便利用這些組件中的屬性、方法、語(yǔ)言等以事件驅(qū)動(dòng)方式開(kāi)發(fā)應(yīng)用程序,還可以利用WindowsSDK中的AP工中的應(yīng)用程序接口等工具開(kāi)發(fā)應(yīng)用程序。在通信問(wèn)題中我們可以使用VB提供的通信控件或調(diào)用WindowsAPI通信函數(shù)。在我們實(shí)踐中,用VB控件實(shí)現(xiàn)通信的方法比調(diào)用SDK的API動(dòng)態(tài)連接庫(kù)的方法更加方便、快捷,而且使用較少的的代碼就可以實(shí)現(xiàn)相同的功能,這就是用VB控件實(shí)現(xiàn)通信的優(yōu)點(diǎn)所在。在VB的控件工具箱中,提供了一個(gè)使用非常方便的串行通信控件MSComm,它全面的提供了使用RS-232串行通信進(jìn)行上層開(kāi)發(fā)的所有細(xì)則,它既可以使用查詢(xún)方式又可以使用事件驅(qū)動(dòng)方式來(lái)完成串行通信。(1)MSComm控件的引用正常的工具欄中沒(méi)有MSComm控件,需要在菜單“工程”的選項(xiàng)“部件”中添加,選擇MicrosoftCommControl6.0即可。通過(guò)以上步驟,工具欄中就會(huì)出現(xiàn)我們需要的通信控件MSComm,單擊圖標(biāo),拖動(dòng)鼠標(biāo),就可以在系統(tǒng)中設(shè)計(jì)所需要的窗體或功能。(2)VisualBasic6.0MSCo二控件主要屬性介紹VB6.0提供的通信控件MSComm可以方便地對(duì)串行通信的各項(xiàng)參數(shù)進(jìn)行設(shè)置,包括串口狀態(tài)、通信格式等。一旦發(fā)送或接收數(shù)據(jù)發(fā)生,則觸發(fā)OnComm事件,通過(guò)編程訪(fǎng)問(wèn)CommEvent屬性了解通信事件的類(lèi)型,并進(jìn)行相應(yīng)的處理。每個(gè)通信控件對(duì)應(yīng)一個(gè)串口,可以根據(jù)需要利用訪(fǎng)問(wèn)不同的通信端口。MSComm通信控件主要屬性介紹如下:CommPort:用于設(shè)置或返回通信連接端口號(hào)。在設(shè)計(jì)時(shí),CommPort屬性值可以設(shè)置成從1-16的任何數(shù)(缺省值為1),但是通常大多數(shù)計(jì)算機(jī)的通信端口不大于4。如果用PortOpen屬性打開(kāi)一個(gè)并不存在的端口時(shí),MSComm控件會(huì)產(chǎn)生運(yùn)行時(shí)的錯(cuò)誤。還需注意的是必須在打開(kāi)端口之前設(shè)置CommPort屬性。Settings:用于設(shè)置初始化參數(shù)。以字符串形式設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位4個(gè)參數(shù)。Settings屬性值由4部分設(shè)置值組成,第一部分為波特率,其可選值為110,300,600,1200,2400,9600(缺省),14400,19200或28800。第二部分為奇偶校驗(yàn),E表示偶校驗(yàn),0表示奇校驗(yàn),N表示不校驗(yàn),S表示空格校驗(yàn),M表示符號(hào)校驗(yàn)。第三部分為數(shù)據(jù)位的值,其值可為4,5,6,7和8(缺省)。第四部分為停止位位數(shù),可選值為1(缺省),1.5和20。PortOpen屬性:用于設(shè)置或返回通信串口的狀態(tài)(開(kāi)或關(guān))。PortOpen屬性為Boolean類(lèi)型,值為T(mén)rue時(shí)表示打開(kāi)串口,值為False時(shí)則表示關(guān)閉串口并清空接收和發(fā)送緩沖區(qū)。nput屬性:從接收緩沖區(qū)讀取數(shù)據(jù),類(lèi)型為Variant。它從輸入緩沖區(qū)中刪除一組字符。刪除字符的個(gè)數(shù)由工nputLen屬性決定,返回值的類(lèi)型由InputMode屬性決定。InputMode屬性:讀取或設(shè)置從接收緩沖區(qū)讀取數(shù)據(jù)的格式,類(lèi)型為Integero。InbufferCount屬性:讀取接收緩沖區(qū)中的字節(jié)個(gè)數(shù),類(lèi)型為工ntegero。InbufferSize屬性:讀取或設(shè)置接收緩沖區(qū)的大小,類(lèi)型為Integer。缺省值大小為1024字節(jié)。Output屬性:用于向發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù),可以傳輸文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。OutBufferCount屬性:用于讀取發(fā)送緩沖區(qū)中的字節(jié)數(shù)??梢酝ㄟ^(guò)將該屬性設(shè)置為0來(lái)清空緩沖區(qū)。OutBufferSize屬性:用于讀取或設(shè)置發(fā)送緩沖區(qū)的大小。RTHreshold屬性:設(shè)置在OnComm事件激活一前接收緩沖器收到的字節(jié)數(shù)。當(dāng)接收到的字節(jié)數(shù)達(dá)到RTHreshold設(shè)置的字?jǐn)?shù)時(shí),就會(huì)引起OnComm事件。CommEvent屬性:在通信錯(cuò)誤或事件發(fā)生時(shí)都會(huì)產(chǎn)生OnComm事件,CommEvent屬性存有該錯(cuò)誤或事件的數(shù)值碼。4主控PC機(jī)軟件設(shè)計(jì)和界面顯示4.1軟件設(shè)計(jì)利用MSComm控件編寫(xiě)主控機(jī)程序,簡(jiǎn)單快捷,靈活方便。在前面的章節(jié)已簡(jiǎn)要的介紹了MSComm串行通信控件加入方法及其屬性,在此就不再敘述。該控件用于支持應(yīng)用程序?qū)Υ诘脑L(fǎng)問(wèn),為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法,在應(yīng)用程序中加入MSComm控件可以非常方便地實(shí)現(xiàn)對(duì)計(jì)算機(jī)串口的通信管理,使用MSComm控件,程序員只需設(shè)置其相應(yīng)的屬性,然后通過(guò)調(diào)用Output屬性發(fā)送數(shù)據(jù),并且當(dāng)有交換數(shù)據(jù)到達(dá)時(shí)會(huì)自動(dòng)響應(yīng)和做出處理,因此用其實(shí)現(xiàn)計(jì)算機(jī)間的數(shù)據(jù)傳輸相當(dāng)簡(jiǎn)單,程序員可以輕松地用其實(shí)現(xiàn)串口訪(fǎng)問(wèn)。根據(jù)主從式測(cè)控系統(tǒng)得基本要求,本系統(tǒng)的PC機(jī)與單片機(jī)采用的是主機(jī)查詢(xún)、從機(jī)中斷的通信方式,在通信過(guò)程中需要加入地址信息,首先要進(jìn)行地址識(shí)別。整個(gè)通信過(guò)程采用輪詢(xún)的方式,只有當(dāng)PC機(jī)對(duì)從機(jī)進(jìn)行訪(fǎng)問(wèn)時(shí),從機(jī)才能做出應(yīng)答。從機(jī)則一直處于等待串行中斷狀態(tài),一旦接收到數(shù)據(jù),就進(jìn)入串行中斷進(jìn)行數(shù)據(jù)處理。在進(jìn)行數(shù)據(jù)傳輸時(shí),PC機(jī)對(duì)各測(cè)量節(jié)點(diǎn)端口進(jìn)行查詢(xún),所有測(cè)量節(jié)點(diǎn)都處于監(jiān)聽(tīng)狀態(tài),等待主控PC機(jī)發(fā)出命令。當(dāng)主控PC機(jī)發(fā)出命令時(shí),所有測(cè)量節(jié)點(diǎn)都接收并且將其中的地址幀和自己的地址相比較,如果相同則繼續(xù)接收后面的指令或數(shù)據(jù),如果不同則不予理會(huì)。主控機(jī)在得到各測(cè)量節(jié)點(diǎn)的確認(rèn)后準(zhǔn)備開(kāi)始接收數(shù)據(jù),否則中斷線(xiàn)路查詢(xún)下一單片機(jī)端口,直到接收完畢。本測(cè)控系統(tǒng)采用的是半雙工異步通信,主控PC機(jī)發(fā)給各測(cè)量節(jié)點(diǎn)的為控制命令幀。各測(cè)量節(jié)點(diǎn)發(fā)給主控機(jī)的數(shù)據(jù)有兩種:一種是應(yīng)答幀,一種是數(shù)據(jù)幀。各測(cè)量節(jié)點(diǎn)在接收到主控機(jī)命令或數(shù)據(jù)發(fā)送完畢時(shí)都發(fā)出應(yīng)答幀,并轉(zhuǎn)為接收狀態(tài),在接收到主控機(jī)的命令后進(jìn)行操作,在不發(fā)送數(shù)據(jù)時(shí),進(jìn)入中斷狀態(tài)。主控機(jī)在發(fā)送指令后如果接收到各測(cè)量節(jié)點(diǎn)的應(yīng)答則認(rèn)為命令發(fā)送成功,可以發(fā)送下一命令,否則重新發(fā)送命令。若本次查詢(xún)的測(cè)量節(jié)點(diǎn)沒(méi)有數(shù)據(jù)傳輸,則重置地址幀,對(duì)下一地址的測(cè)量節(jié)點(diǎn)進(jìn)行查詢(xún)。這樣確保了在任一時(shí)刻,主控機(jī)機(jī)只與一個(gè)測(cè)量節(jié)點(diǎn)進(jìn)行通信,有效防止了總線(xiàn)沖突問(wèn)題。其主機(jī)查詢(xún)方式流程圖如圖3所示。圖3主機(jī)查詢(xún)方式流程圖實(shí)現(xiàn)過(guò)程中有以下關(guān)鍵點(diǎn)需要注意:(1)數(shù)據(jù)幀的產(chǎn)生。由于PC機(jī)沒(méi)有像單片機(jī)一樣的串口工作方式,因此不能自動(dòng)生成地址幀。設(shè)計(jì)軟件時(shí)應(yīng)人工生成地址幀。單片機(jī)串口工作在方式2時(shí)數(shù)據(jù)幀的格式如圖2所示:A7
A6
A5
A4
A3
A2
A1
A0
1即八位數(shù)據(jù)后加一位“1”。因此可以利用MSComm控件中的奇偶校驗(yàn)位來(lái)模擬,方法是:form1.Comm1.ParityCheck:=false;form1.Comm1.Parity:=mark;form1.Comm1.ParityCheck:=true;這樣在發(fā)出的一個(gè)字節(jié)的數(shù)據(jù)末尾會(huì)加上一個(gè)“1”,也就形成了地址幀。當(dāng)然在發(fā)送其他數(shù)據(jù)時(shí),應(yīng)該先把最后一位清零“0”form1.Comm1.Parity:=space;form1.Comm1.ParityCheck:=true;(3)校驗(yàn)和的產(chǎn)生。為了增強(qiáng)數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,采用校驗(yàn)和的檢驗(yàn)方式。本設(shè)計(jì)里校驗(yàn)和的產(chǎn)生分兩部分,一部分是發(fā)送數(shù)據(jù)之前,要對(duì)發(fā)送的數(shù)據(jù)進(jìn)行累加產(chǎn)生校驗(yàn)和發(fā)送出去,這個(gè)校驗(yàn)和稱(chēng)為源校驗(yàn)和(sorcechksum)。另一部分是在接收數(shù)據(jù)是,要將接收到的數(shù)據(jù)累加產(chǎn)生一個(gè)目的校驗(yàn)(orgchksum)和用來(lái)與接收到的校驗(yàn)和相比較。(4)數(shù)據(jù)的接收和發(fā)送是將一組數(shù)據(jù)看成一個(gè)String類(lèi)型數(shù)據(jù)來(lái)操作,因此在發(fā)送之前應(yīng)該用Pchar()函數(shù)對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行轉(zhuǎn):WriteCommData(Pchar(@outstr[i]),1);
//參數(shù)分別為發(fā)送字符串首地址,要發(fā)送的字符串?dāng)?shù)。Spcomm控件中的數(shù)據(jù)接收發(fā)式是事件觸發(fā)方式。OnReceiveData:procedure(Sender:TObject;Buffer:Pointer;BufferLength:Word)ofobject.當(dāng)輸入緩存有數(shù)據(jù)時(shí)將觸發(fā)該事件,在這里可以對(duì)從串口收到的數(shù)據(jù)進(jìn)行處理。Buffer中是收到的數(shù)據(jù),bufferlength是收到的數(shù)據(jù)長(zhǎng)度。因此對(duì)于PC機(jī)來(lái)說(shuō)可以通過(guò)bufflength的長(zhǎng)度來(lái)區(qū)分?jǐn)?shù)據(jù)和從單片機(jī)返回的確認(rèn)信號(hào)。本設(shè)計(jì)規(guī)定命確認(rèn)信號(hào)為一個(gè)字節(jié),而數(shù)據(jù)的傳輸由于加上校驗(yàn)和至少為兩個(gè)字節(jié)。(5)為了防止實(shí)際工作中當(dāng)向某臺(tái)從機(jī)發(fā)送地址幀或命令字后,如果失去接收主機(jī)發(fā)出的地址數(shù)據(jù)的機(jī)會(huì),或因某測(cè)量節(jié)點(diǎn)不工作而使系統(tǒng)陷入“死循環(huán)”程序而不能正常工作。為了避免這種情況的發(fā)生,在設(shè)計(jì)時(shí)還要考慮一定的容錯(cuò)機(jī)制,本設(shè)計(jì)中采用的方法是在發(fā)送完地址幀和命令后,程序開(kāi)始計(jì)時(shí)。如果超過(guò)一定時(shí)間還沒(méi)收到返回確認(rèn)信息,就重發(fā)剛剛發(fā)送的數(shù)據(jù)如果重發(fā)3確認(rèn)還沒(méi)收到確認(rèn)信息,即報(bào)告出錯(cuò),并記錄該出錯(cuò)測(cè)量節(jié)點(diǎn)地址。4.2界面設(shè)計(jì)及顯示4.2.1界面設(shè)計(jì)中美的需求與導(dǎo)向作用人們對(duì)美的向往和追求是與生俱有的。顯然沒(méi)有人愿意丑化自己的程序,也沒(méi)有用戶(hù)嗜好丑陋的界面。軟件開(kāi)發(fā)者要設(shè)計(jì)美,用戶(hù)要享受美,所以界面的美是開(kāi)發(fā)者與用戶(hù)的共同需求。界面美的概念很抽象,以致讓人無(wú)法說(shuō)清楚什么是界面的美。但它同時(shí)又很現(xiàn)實(shí),以致人人都可以去欣賞和感受界面美,并且挑剔美中之不足。美學(xué)不是一種量化的學(xué)問(wèn),如果因此而輕視美學(xué)指導(dǎo),必將導(dǎo)致在設(shè)計(jì)過(guò)程中光依賴(lài)程序員個(gè)人的經(jīng)驗(yàn)與感覺(jué)。由于程序員接受的教育主要是如何使計(jì)算機(jī)完成工作,而不是人如何工作,因此僅靠程序員主觀想象設(shè)計(jì)而成的界面往往得不到大眾用戶(hù)的認(rèn)可。美的界面能消除用戶(hù)由感覺(jué)引起的乏味、緊張和疲勞(情緒低落),大大提高用戶(hù)的工作效率,從而進(jìn)一步為發(fā)揮用戶(hù)技能和為用戶(hù)完成任務(wù)作出貢獻(xiàn)。從人機(jī)界面發(fā)展歷史與趨勢(shì)上可以看出人們對(duì)界面美的需求,以及美在界面設(shè)計(jì)中的導(dǎo)向作用。界面設(shè)計(jì)已經(jīng)經(jīng)歷了兩個(gè)界限分明的時(shí)代。第一代是以文本為基礎(chǔ)的簡(jiǎn)單交互,如常見(jiàn)的命令行,字符菜單等。由于第一代界面考慮人的因素太少,用戶(hù)興趣不高。隨著技術(shù)的發(fā)展,出現(xiàn)了第二代直接操縱的界面。它大量使用圖形、語(yǔ)音和其它交互媒介,充分地考慮了人對(duì)美的需求。直接操縱的界面使用視聽(tīng)、觸摸等技術(shù),讓人可以憑借生活常識(shí)、經(jīng)歷和推理來(lái)操縱軟件,愉快地完成任務(wù)。更高層次的界面甚至模擬了人的生活空間,例如虛擬現(xiàn)實(shí)環(huán)境。界面的美充分體現(xiàn)了人機(jī)交互作用中人的特性與意圖,越來(lái)越多的用戶(hù)將通過(guò)具有吸引力而令人愉快的人機(jī)界面與計(jì)算機(jī)打交道。4.3主界面窗體的設(shè)計(jì)程序的主界面能夠響應(yīng)各種操作,并調(diào)用程序的各個(gè)模塊和功能,因此主界面主要實(shí)現(xiàn)的功能就是調(diào)用本系統(tǒng)的所有其他功能,包括參數(shù)設(shè)置、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、顯示數(shù)據(jù)、查看數(shù)據(jù)以及清除數(shù)據(jù)等功能。首先創(chuàng)建一個(gè)基于Standard.EXE的項(xiàng)目。打開(kāi)VB,從“File”菜單中選擇“NewProject”然后選擇建立Standard.EXE項(xiàng)目即可,這樣就創(chuàng)建了標(biāo)準(zhǔn)的項(xiàng)目文件,在此標(biāo)準(zhǔn)項(xiàng)目中我們可以添加各個(gè)按鈕、組合框、文本框、復(fù)選框等控件來(lái)完成對(duì)主界面的設(shè)計(jì)。程序的主界面應(yīng)當(dāng)能夠響應(yīng)各種操作,并調(diào)用程序的各個(gè)模塊和功能。本程序的基本功能是依靠MSComm控件實(shí)現(xiàn)的,首先要將其添加到窗體中。為了響應(yīng)發(fā)送接收等操作,在窗體中添加了幾個(gè)CommandButton和添加下拉式菜單并通過(guò)相應(yīng)的單擊事件進(jìn)行響應(yīng)。對(duì)于接收回顯方式的標(biāo)志信息,采用4個(gè)復(fù)選框CheckBox和一個(gè)滑軌Slider來(lái)實(shí)現(xiàn)。對(duì)于發(fā)送模式的標(biāo)志信息,采用一個(gè)帶有下拉菜單的組合框?qū)崿F(xiàn)選擇的功能。對(duì)于接收到的數(shù)據(jù),也要在主窗體中顯示。接收回顯的功能較為復(fù)雜,我們將其作為一個(gè)單獨(dú)的模塊來(lái)實(shí)現(xiàn)。4.3.1接收顯示部分的實(shí)現(xiàn)(1)接收顯示模塊HexEdit的功能分析為了便于進(jìn)行串行口調(diào)試,希望能夠同時(shí)查看接收到的數(shù)據(jù)的十六進(jìn)制編碼和ASCII碼,此外,還希望可以調(diào)節(jié)每行顯示的字符數(shù)。在此采用了4個(gè)TextBox的組合來(lái)完成,分別顯示地址位、十六進(jìn)制編碼、ASCII碼以及預(yù)留空白區(qū)。當(dāng)一行顯示的字符較多時(shí),或者行數(shù)較多時(shí),顯示區(qū)不能完全顯示所有的數(shù)據(jù),采用了滾動(dòng)條來(lái)實(shí)現(xiàn)。(2)界面設(shè)置在主窗體上添加一個(gè)Caption為接收顯示的Frame,然后再其上添加名稱(chēng)txtReceive的TextBox,用于顯示接收到的數(shù)據(jù)或文本。對(duì)于接收顯示方式的標(biāo)志信息,采用4個(gè)復(fù)選框和一個(gè)滑軌來(lái)實(shí)現(xiàn);下來(lái)再在名稱(chēng)為txtReceive的TextBox上添加一個(gè)VscrollBar、一個(gè)HscrollBar和一個(gè)Frame,這一個(gè)Frame對(duì)原來(lái)的txtReceive起到了屏蔽的作用,然后在這個(gè)Frame內(nèi)添加4個(gè)TextBoxa要完成這一部分的功能,還要添加一個(gè)Module。從“Project”菜單選擇“AddModule",并將新添加的Module命名為HexEdit.Bas,然后在此文件中添加有關(guān)接收和顯示的代碼。(3)接收功能的實(shí)現(xiàn)當(dāng)CommEvent屬性發(fā)生變化時(shí),將觸發(fā)主窗體中MSComm控件:MSCommControl_OnCommo因此可以在該過(guò)程中進(jìn)行檢測(cè),接收數(shù)據(jù)。由于在顯示時(shí)要同時(shí)顯示十六進(jìn)制數(shù)據(jù)和ASCII碼,因此接收過(guò)程可以不區(qū)分?jǐn)?shù)據(jù)格式,而都先以十六進(jìn)制形式接收,而后利用轉(zhuǎn)化功能分別顯示。接收的過(guò)程為:當(dāng)OnComm事件發(fā)生時(shí),檢測(cè)CommEvent的值,當(dāng)它為CommEvReceive時(shí),就知道接收到了數(shù)據(jù)。此時(shí),檢測(cè)全局變量blnReceive)而判斷是否應(yīng)該讀入數(shù)據(jù),然后打開(kāi)串行口,設(shè)置接收模式為二進(jìn)制模式,并獲得數(shù)據(jù)量信息。接下來(lái)要重新定義動(dòng)態(tài)字節(jié)數(shù)組的大小,從而進(jìn)行接收。(4)轉(zhuǎn)換功能的實(shí)現(xiàn)在主窗體中,實(shí)現(xiàn)了從文本表示的十六進(jìn)制數(shù)向二進(jìn)制數(shù)據(jù)的轉(zhuǎn)化,現(xiàn)在要實(shí)現(xiàn)的是一個(gè)相反的過(guò)程。在處理時(shí)每讀取一個(gè)字節(jié),將其作為一個(gè)整數(shù)用16去整除,商即為相應(yīng)的高位值,余數(shù)為相應(yīng)的低位值,然后再把它們轉(zhuǎn)化為相應(yīng)的字符即可。當(dāng)把數(shù)據(jù)作為文本輸出時(shí),會(huì)受到一些限制,這是因?yàn)橛行〢SCII碼是無(wú)法作為文本輸出的,對(duì)于這樣的情況,將其轉(zhuǎn)化為一個(gè)“.”輸出。(5)輸出顯示功能的實(shí)現(xiàn)在進(jìn)行界面設(shè)計(jì)時(shí),并沒(méi)有調(diào)整顯示部分控件的位置和大小,因此首先要進(jìn)行顯示模塊的初始化。希望顯示控件能夠自動(dòng)的與txtReceive設(shè)置的區(qū)域相適應(yīng),因此利用txtReceive的屬性來(lái)對(duì)顯示控件進(jìn)行設(shè)置。為了實(shí)現(xiàn)滾動(dòng)的功能,采用兩種不同的方法來(lái)分別實(shí)現(xiàn)水平滾動(dòng)和豎直滾動(dòng)。由于Frame的限制,當(dāng)它里面的控件超過(guò)它的邊界時(shí),將不再顯示越界的部分。這樣可以通過(guò)改變文本框的輸出位置,從而實(shí)現(xiàn)在Frame界定的視窗中看到文本框的不同部分,可以用同樣的方式實(shí)現(xiàn)水平或豎直的滾動(dòng)。在接收時(shí),在水平方向接收將會(huì)有最大限制,但如果不斷的接收數(shù)據(jù),豎直方向?qū)?huì)產(chǎn)生很大的數(shù)據(jù)顯示范圍,如果單單依賴(lài)調(diào)文本框的位置的話(huà),那么就極易造成越界。解決這一問(wèn)題的方法是:不斷改變文本框的高度,而在適當(dāng)?shù)臅r(shí)候改變輸出的內(nèi)容,從而實(shí)現(xiàn)滾動(dòng)的功能。4.3.2主控機(jī)系統(tǒng)實(shí)現(xiàn)本系統(tǒng)采用面向?qū)ο罂梢暬Z(yǔ)言VisualBasic6.0,根據(jù)系統(tǒng)功能開(kāi)發(fā)上位機(jī)系統(tǒng)管理軟件,其中包括溫室環(huán)境數(shù)據(jù)庫(kù)的開(kāi)發(fā),模糊控制算法編寫(xiě)。VisualBasic語(yǔ)言中包含各種控件便于程序開(kāi)發(fā),如使用MSComm控件可完成通信程序的開(kāi)發(fā)。系統(tǒng)設(shè)計(jì)簡(jiǎn)潔,功能齊全,運(yùn)行在VB自發(fā)的溫濕度主控系統(tǒng)應(yīng)用軟件上,會(huì)出現(xiàn)一個(gè)獨(dú)立的界面。系統(tǒng)數(shù)據(jù)管理界面,主要是顯示溫室的狀態(tài),顯示實(shí)時(shí)采集的數(shù)據(jù)以及系統(tǒng)設(shè)定的上下限數(shù)據(jù);系統(tǒng)具有數(shù)據(jù)查詢(xún)界面,通過(guò)此界面可觀察溫濕度數(shù)據(jù)的長(zhǎng)期變化,可查詢(xún)歷史數(shù)據(jù)。界面顯示如圖4所示:4.3.3參數(shù)設(shè)置在主界面點(diǎn)擊幫助,在彈出的菜單中選擇參數(shù)設(shè)置。即打開(kāi)如圖5窗口。程序設(shè)置:(1)巡檢間隔:第一輪巡檢與第二輪巡檢之間的時(shí)間間隔,單位:秒。(2)標(biāo)題顯示:主界面系統(tǒng)標(biāo)題?,F(xiàn)場(chǎng)設(shè)置:(1)輸入1名稱(chēng)、輸入2名稱(chēng)、輸出1名稱(chēng)、輸出2名稱(chēng):相應(yīng)的輸入、輸出在主界面中的提示,以方便查看現(xiàn)場(chǎng)輸入、輸出狀態(tài)。(2)可用:指明輸入1、輸入2、是否報(bào)警,輸出1、輸出2是否顯示當(dāng)前狀態(tài)。具體操作步驟:(1)查看系統(tǒng)前端:可按上一個(gè)、下一個(gè)找到想要杳看的系統(tǒng)前端。(2)添加系統(tǒng)前端:輸入地址號(hào)、地址名稱(chēng)等相應(yīng)信息,然后點(diǎn)擊添加按鈕,即可添加一個(gè)系統(tǒng)前端。(3)修改系統(tǒng)前端:按上一個(gè)、下一個(gè)找到想要修改的系統(tǒng)前端,修改相應(yīng)內(nèi)容,點(diǎn)擊修改按鈕,即可將系統(tǒng)前端信息修改為當(dāng)前顯示的信息。(4)刪除系統(tǒng)前端:按上一個(gè)、下一個(gè)找到想要?jiǎng)h除的系統(tǒng)前端,點(diǎn)擊刪除,即可將當(dāng)前項(xiàng)刪除。5系統(tǒng)調(diào)試PC機(jī)和各測(cè)量點(diǎn)之間的數(shù)據(jù)傳送通過(guò)RS-485總線(xiàn)來(lái)實(shí)現(xiàn)的。所以PC機(jī)與各測(cè)量點(diǎn)之間的調(diào)試是通過(guò)RS-485測(cè)試的過(guò)程,最后達(dá)到預(yù)期的設(shè)計(jì)目的。只有一個(gè)測(cè)量數(shù)通過(guò)改變撥碼開(kāi)關(guān)能顯示4個(gè)不同的地址點(diǎn)的溫濕度,如圖4所示。本系統(tǒng)采用面向?qū)ο罂梢暬Z(yǔ)言VisualBasic6.0,根據(jù)系統(tǒng)功能開(kāi)發(fā)上位機(jī)系統(tǒng)管理軟件,其中包括溫室環(huán)境數(shù)據(jù)庫(kù)的開(kāi)發(fā),模糊控制算法編寫(xiě)。VB語(yǔ)言中包含各種控件便于程序開(kāi)發(fā),如使用MSComm控件可完成通信程序的開(kāi)發(fā)。系統(tǒng)設(shè)計(jì)簡(jiǎn)潔,功能齊全,主界面如圖4所示。通過(guò)硬件調(diào)試確保系統(tǒng)硬件工作正常后,對(duì)系統(tǒng)進(jìn)行軟件調(diào)試。軟件調(diào)試由兩部分完成,軟件仿真調(diào)試和軟件固化調(diào)試。(1)軟件仿真調(diào)試,調(diào)試工具采用上海星研START51L在線(xiàn)實(shí)時(shí)仿真器,對(duì)系統(tǒng)軟件分模塊逐步調(diào)試,使系統(tǒng)完成滿(mǎn)足設(shè)計(jì)功能。(2)軟件固化調(diào)試,將仿真運(yùn)行產(chǎn)生的二進(jìn)制代碼,通過(guò)芯片燒寫(xiě)器固化到E2PROM進(jìn)行系統(tǒng)脫離仿真器運(yùn)行,調(diào)試解決脫機(jī)運(yùn)行出現(xiàn)的各種問(wèn)題。如圖5所示,系統(tǒng)統(tǒng)數(shù)據(jù)參數(shù)設(shè)置界面,主要設(shè)置采集點(diǎn)地址及現(xiàn)場(chǎng)名稱(chēng)等參數(shù)信息。如圖6所示,系統(tǒng)的數(shù)據(jù)查詢(xún)界面,通過(guò)此界面可設(shè)置要查詢(xún)歷史數(shù)據(jù)的采集地址和起止時(shí)間。如圖7所示,系統(tǒng)的數(shù)據(jù)記錄曲線(xiàn)界面,在此界面上可直觀的觀察溫濕度采集歷史數(shù)據(jù)。圖4主控PC機(jī)界面顯示圖5參數(shù)設(shè)置界面圖6歷史記錄查詢(xún)時(shí)間范圍設(shè)置界面圖7歷史記錄曲線(xiàn)系統(tǒng)調(diào)試完成后在我校電子信息工程專(zhuān)業(yè)教學(xué)樓進(jìn)行了測(cè)試運(yùn)行,結(jié)果表明,系統(tǒng)實(shí)用性、可靠性和各類(lèi)功能,滿(mǎn)足生產(chǎn)實(shí)際的需要。結(jié)束語(yǔ)到這里基于PC機(jī)的溫濕度集中處理和顯示軟件設(shè)計(jì)已經(jīng)全部完成了。全文詳細(xì)的介紹了系統(tǒng)的架構(gòu)、系統(tǒng)各個(gè)功能部件的設(shè)計(jì)方案和實(shí)現(xiàn)原理、以及主控PC機(jī)顯示界面的設(shè)計(jì)??傮w來(lái)說(shuō),本文設(shè)計(jì)的主從式測(cè)控系統(tǒng)具有一定的實(shí)用性、通用性及可擴(kuò)展性。PC機(jī)可充分利用其在數(shù)據(jù)處理、模擬仿真、圖像處理、多媒體、網(wǎng)絡(luò)通信方面的強(qiáng)大功能,既可以通過(guò)軟件對(duì)單片機(jī)進(jìn)行控制,又能利用Microsoft的Office系列工具對(duì)接收的數(shù)據(jù)進(jìn)行處理、分析和顯示。此測(cè)控系統(tǒng)本著“實(shí)用、方便”目的而設(shè)計(jì)的。它主要具有以下幾個(gè)特點(diǎn):(1)PC機(jī)通信軟件可以獨(dú)立設(shè)置。用戶(hù)可選擇波特率、奇偶校驗(yàn)、數(shù)據(jù)位等通信格式,以適應(yīng)不同的串行通信要求。(2)既適合于近距離通信,又適合遠(yuǎn)距離通信。而遠(yuǎn)程通信系統(tǒng),對(duì)數(shù)據(jù)傳輸?shù)木嚯x提出了較高的要求。若將PC機(jī)與AT89C51單片機(jī)的RS-232串行口直接相連,傳輸距離只有十幾米,無(wú)法滿(mǎn)足系統(tǒng)的要求。為此,可以采用RS-232到RS-485的轉(zhuǎn)換電路,使得PC機(jī)與AT89C51間接相連,以RS-485方式進(jìn)行通信,這樣可大大增加傳輸距離,最大傳輸速率可達(dá)lOMbit/s(傳輸距離15m時(shí)),傳輸速率降至100kbit/s時(shí),最大傳輸距離可達(dá)1200m。(3)微機(jī)系統(tǒng)可實(shí)現(xiàn)無(wú)人值守。系統(tǒng)開(kāi)始工作后,所傳輸?shù)臄?shù)據(jù)會(huì)按照程序要求完全記錄下來(lái),工作過(guò)程也能按要求進(jìn)行相應(yīng)的操作。(4)本系統(tǒng)所包含的各種元器件均是常用的器件且性?xún)r(jià)比比較高,因此綜合下來(lái)整個(gè)系統(tǒng)的性能價(jià)格比就比較高,具有很好的實(shí)用性。參考文獻(xiàn)[1]潘世永,鄭萍,李英.集散控制系統(tǒng)的發(fā)展及展望.自動(dòng)化儀器儀表,2003.[2]陳澤宗,郭紅星,嚴(yán)杰.總線(xiàn)結(jié)構(gòu)分布式測(cè)控系統(tǒng)通信功能的實(shí)現(xiàn)[fJ].武漢水利電力大學(xué)學(xué)報(bào),199932[3]朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)仁[M].北京:北京航空航天大學(xué)出版社,2001[4]宋向榮.智能溫室計(jì)算機(jī)集散系統(tǒng)的研究與開(kāi)發(fā)「D].楊凌:西北農(nóng)林科技大學(xué),2002.[5]徐信福.激光打靶多路數(shù)據(jù)采集處理系統(tǒng)[D].大連:大連理工大學(xué),2005.[6]石東海.單片機(jī)數(shù)據(jù)通信技術(shù)從入門(mén)到精通[M].西安:西安電子科技大學(xué)出版社,2002.[7]孫德坤.基于FPGA的HOST與多單片機(jī)的串行通信[D].大連:大連
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)計(jì)算機(jī)協(xié)會(huì)工作計(jì)劃
- 2025年幼兒園教研工作計(jì)劃例文
- 部門(mén)工作計(jì)劃范文
- 數(shù)學(xué)老師課堂教學(xué)任務(wù)計(jì)劃
- 2025德育工作計(jì)劃小學(xué)
- 小學(xué)第一學(xué)期班主任的教學(xué)工作計(jì)劃范文
- 職高班主任年度工作計(jì)劃
- 《蝸桿傳動(dòng)改》課件
- 《母親的教誨胡適》課件
- 2020版 滬教版 高中音樂(lè) 必修1 音樂(lè)鑒賞 上篇《第四單元 黃鐘大呂》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 青島版五年級(jí)上冊(cè)數(shù)學(xué)計(jì)算題專(zhuān)項(xiàng)練習(xí)1000道帶答案
- 陶瓷材料在體育健身領(lǐng)域的應(yīng)用
- 理論聯(lián)系實(shí)際談一談你對(duì)中國(guó)式現(xiàn)代化的中國(guó)特色的理解15篇
- PLC控制系統(tǒng)合同
- 2024數(shù)據(jù)中心浸沒(méi)式液冷系統(tǒng)單相冷卻液技術(shù)指標(biāo)和測(cè)試方法
- 國(guó)有企業(yè)采購(gòu)管理規(guī)范 T/CFLP 0027-2020
- 互聯(lián)網(wǎng)與營(yíng)銷(xiāo)創(chuàng)新智慧樹(shù)知到期末考試答案章節(jié)答案2024年華東師范大學(xué)
- 食品安全與日常飲食智慧樹(shù)知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- 小學(xué)心理健康評(píng)定量表
- 文旅融合視角下河南省鄉(xiāng)村旅游高質(zhì)量發(fā)展研究
- 2024年中智集團(tuán)總部企業(yè)發(fā)展崗招聘公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
評(píng)論
0/150
提交評(píng)論