




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 / 47 文檔可自由編輯打印鞍鞍山山科科技技大大學(xué)學(xué) 碩碩 士士 學(xué)學(xué) 位位 論論 文文題目:遠(yuǎn)程監(jiān)控系統(tǒng)在農(nóng)業(yè)溫室大棚題目:遠(yuǎn)程監(jiān)控系統(tǒng)在農(nóng)業(yè)溫室大棚中的應(yīng)用中的應(yīng)用學(xué) 生: 指導(dǎo)教師: 專 業(yè): 年年 月月 日日I / 47 文檔可自由編輯打印摘摘 要要關(guān)鍵詞關(guān)鍵詞: :溫室環(huán)境溫室環(huán)境 遠(yuǎn)程監(jiān)控遠(yuǎn)程監(jiān)控 串口通信串口通信 網(wǎng)絡(luò)通信網(wǎng)絡(luò)通信 單片機(jī)單片機(jī) LEDLED 顯示顯示II / 47 文檔可自由編輯打印AbstractKey words:文檔可自由編輯打印目目 錄錄摘摘 要要.IABSTRACTABSTRACT.II目目 錄錄.III第一章第一章 綜述綜述.11.1 課題背景.
2、11.2 課題的發(fā)展歷史.11.3 本篇論文的內(nèi)容.2第二章第二章 系統(tǒng)簡介系統(tǒng)簡介.42.1 系統(tǒng)組成.42.1.1 系統(tǒng)組成框圖 .42.1.2 系統(tǒng)組成的各部分說明 .62.2 系統(tǒng)實(shí)現(xiàn)的功能簡介.82.3 本章小結(jié).9第三章第三章 數(shù)據(jù)采集溫室環(huán)境數(shù)據(jù)采集溫室環(huán)境.93.1 串口通信簡介.93.2 串口采集溫室環(huán)境軟件設(shè)計(jì)及流程.103.3 傳感器簡介及相應(yīng)的數(shù)據(jù)處理.143.3.1 溫度傳感器 DS18B20 .143.3.2 溫濕度傳感器 LTM8901 .16IV / 47 文檔可自由編輯打印3.3.3 二氧化碳傳感器 LTM8803 .183.4 數(shù)據(jù)的 LED 顯示.193.
3、5 本章小結(jié).22第四章第四章 網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的處理功能網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的處理功能.244.1 網(wǎng)絡(luò)通信簡介.244.2 網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的存儲(chǔ)功能.244.2.1 TCP/IP 客戶服務(wù)器程序設(shè)計(jì)方法 .244.2.2 報(bào)警設(shè)置 .274.2.3 數(shù)據(jù)存儲(chǔ) .284.3 本章小結(jié).29第五章第五章 單片機(jī)控制溫室的環(huán)境單片機(jī)控制溫室的環(huán)境.31第六章第六章 總結(jié)與展望總結(jié)與展望.32附附 錄錄.33參參 考考 文文 獻(xiàn)獻(xiàn).37致致 謝謝.39攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文.401 / 47 文檔可自由編輯打印第一章第一章 綜述綜述1.1 課題背景課題
4、背景自 20 世紀(jì) 80 年代以來,我國工程科技人員在吸收發(fā)達(dá)國家高科技溫室生產(chǎn)技術(shù)的基礎(chǔ)上,進(jìn)行了溫室中溫度、濕度和二氧化碳等單項(xiàng)環(huán)境因子控制技術(shù)的研究,希望通過改變植物生長的自然環(huán)境、創(chuàng)造適合植物最佳的生長條件、避免外界惡劣的氣候,達(dá)到調(diào)節(jié)產(chǎn)期、促進(jìn)生長發(fā)育、防治病蟲害等目的。由此而引發(fā)的各種溫室測控技術(shù)的實(shí)際應(yīng)用與研究也取得了長足的發(fā)展,并向高層次的自動(dòng)化、智能化方向發(fā)展,形成了現(xiàn)代化水平高,比較完善的技術(shù)體系。溫室工程主要包括兩個(gè)方面內(nèi)容,一方面是溫室結(jié)構(gòu)工程,另一方面是溫室測控系統(tǒng),而溫室測控系統(tǒng)又是由溫室數(shù)據(jù)采集系統(tǒng)與溫室環(huán)境控制系統(tǒng)兩個(gè)部分組成的,兩者相輔相成缺一不可。溫室數(shù)據(jù)采
5、集系統(tǒng)作為溫室內(nèi)各環(huán)境因子的采集部分,是由溫度、濕度、光照、二氧化碳等各種傳感器所組成的,這些傳感器通常分布在非常廣的范圍內(nèi),通訊距離遠(yuǎn),因此,在最低層次上需要一種造價(jià)低、可靠性高且適合溫室環(huán)境使用的通訊系統(tǒng),同時(shí)又可滿足數(shù)據(jù)遠(yuǎn)程傳輸?shù)囊蟆kS著計(jì)算機(jī)技術(shù)的發(fā)展,遠(yuǎn)程監(jiān)控顯示了其強(qiáng)大的生命力和廣闊的應(yīng)用前景.與傳統(tǒng)的監(jiān)控系統(tǒng)相比,使用戶能夠及時(shí)獲得現(xiàn)場情況,同時(shí)能更準(zhǔn)確、有效地得到運(yùn)行設(shè)備數(shù)據(jù),以充實(shí)理論研究.利用遠(yuǎn)程監(jiān)控,以便于獲取多方面的信息,積累和綜合各方面的經(jīng)驗(yàn)、知識(shí),服務(wù)于工程建設(shè)和維護(hù),為工程安全正常的進(jìn)行提供有力的保證。近年來,隨著公共Internet 網(wǎng)絡(luò)的普及和遠(yuǎn)程控制策略的
6、完善,基于Internet 的通訊手段在遠(yuǎn)程監(jiān)控技術(shù)上的應(yīng)用發(fā)展迅猛。基于Internet 的遠(yuǎn)程監(jiān)控制系統(tǒng)通過廉價(jià)的TCP/IP 和Ethernet 連接克服了工業(yè)網(wǎng)絡(luò)的弊端,大大降低了網(wǎng)絡(luò)的建設(shè)與維護(hù)成本,提高了己有設(shè)備的利用效率和聯(lián)合生產(chǎn)能力,并廣泛地延伸人類的工作空間。從溫室環(huán)境監(jiān)控領(lǐng)域來講,由于各種溫室在地域上分散分布,要總攬現(xiàn)場環(huán)境信息和作物生長狀況,或要實(shí)現(xiàn)對(duì)分散在各地的溫室進(jìn)行狀態(tài)監(jiān)控,沒有一個(gè)遠(yuǎn)程環(huán)境監(jiān)控系統(tǒng)是很困難的。使用基于 RS-485 總線的數(shù)據(jù)采集技術(shù)和基于Internet 的遠(yuǎn)程數(shù)據(jù)傳輸技術(shù)實(shí)現(xiàn)遠(yuǎn)程溫室環(huán)境監(jiān)控,即在遠(yuǎn)離溫室現(xiàn)場的異地,通過網(wǎng)絡(luò)進(jìn)行溫室設(shè)施的溫、濕
7、度等環(huán)境數(shù)據(jù)的采集讀取,也可以變更數(shù)據(jù)采集設(shè)備的一些工作參數(shù),極大地提高了工作效率、方便了用戶。遠(yuǎn)程溫濕度測控系統(tǒng)是一種用于家庭、倉庫(廠房、花棚和塑料薄膜大棚)內(nèi)環(huán)境溫濕度監(jiān)控及控制的全自動(dòng)遠(yuǎn)程智能調(diào)節(jié)系統(tǒng)。它通過控制加熱器及制冷器(通風(fēng))對(duì)溫度進(jìn)行自動(dòng)調(diào)節(jié),同時(shí)通過控制加濕機(jī)及除濕機(jī)的工作自動(dòng)調(diào)節(jié)環(huán)境的相對(duì)濕度,使環(huán)境的溫度和濕度達(dá)到適宜的范圍。1.2 課題課題的發(fā)展歷史的發(fā)展歷史隨著科學(xué)技術(shù)和經(jīng)濟(jì)建設(shè)的發(fā)展,工程實(shí)驗(yàn)過程中的狀態(tài)監(jiān)控和故障報(bào)警已成為保證系統(tǒng)運(yùn)行穩(wěn)定性、可靠性和安全性、提高產(chǎn)品質(zhì)量和生產(chǎn)效率的關(guān)鍵技2 / 47 文檔可自由編輯打印術(shù),遠(yuǎn)程數(shù)據(jù)采集與控制系統(tǒng)手段,并日益引起國
8、內(nèi)外的廣泛重視。作為一個(gè)涉及多學(xué)科的綜合性學(xué)科問題,監(jiān)控的模式經(jīng)歷了從單片機(jī)監(jiān)控系統(tǒng)到分布式監(jiān)控系統(tǒng),再到遠(yuǎn)程監(jiān)控系統(tǒng)這樣一個(gè)發(fā)展歷程。第一代監(jiān)控系統(tǒng)是以多用戶聯(lián)機(jī)、集中式控制為特征的單機(jī)監(jiān)控系統(tǒng)。當(dāng)時(shí)的監(jiān)控系統(tǒng)主要是針對(duì)某一特定的被測對(duì)象而設(shè)計(jì)的,它主要由1臺(tái)計(jì)算機(jī)和1塊或多塊功能模板構(gòu)成,信息的交換與處理僅限于監(jiān)控系統(tǒng)內(nèi)部,因而是一種封閉式的系統(tǒng)。第二代監(jiān)控系統(tǒng)以局域網(wǎng)、集散化控制為特征,主要是針對(duì)大型設(shè)備主機(jī)和多輔助工程分布和地域分布的特點(diǎn),通過局域網(wǎng)把分布于各個(gè)局部的現(xiàn)場,獨(dú)立完成特定功能的本地計(jì)算機(jī)互連起來,以實(shí)現(xiàn)資源共享、協(xié)同工作、分散監(jiān)控和集中操作、管理與報(bào)警功能的計(jì)算機(jī)網(wǎng)絡(luò)。第
9、二代系統(tǒng)是基于工業(yè)局域網(wǎng)的相對(duì)開放的系統(tǒng),監(jiān)控信息的處理在局域網(wǎng)內(nèi)進(jìn)行。進(jìn)入90年代后期,隨著計(jì)算機(jī)技術(shù)和信息技術(shù)的發(fā)展,特別信息高速公路的開通,遠(yuǎn)程監(jiān)控技術(shù)和計(jì)算機(jī)的有機(jī)融合,是設(shè)備監(jiān)控技術(shù)發(fā)展的嶄新階段。它以計(jì)算機(jī)為主,在現(xiàn)場的重要部位或設(shè)備上建立監(jiān)控點(diǎn),采集設(shè)備狀態(tài)數(shù)據(jù),在控制中心提供遠(yuǎn)程技術(shù)支持。遠(yuǎn)程監(jiān)控技術(shù),是利用遠(yuǎn)程系統(tǒng)在異地對(duì)遠(yuǎn)程的現(xiàn)場設(shè)備實(shí)施監(jiān)視、測試,并根據(jù)測試數(shù)據(jù)進(jìn)行故障報(bào)警。遠(yuǎn)程監(jiān)控的數(shù)據(jù)包括聲音、圖像、模擬和數(shù)字量數(shù)據(jù)。遠(yuǎn)程監(jiān)控技術(shù)包括遠(yuǎn)程的視頻監(jiān)視和遠(yuǎn)程設(shè)備監(jiān)控。遠(yuǎn)程視頻監(jiān)視是通過遠(yuǎn)程把工程和實(shí)驗(yàn)現(xiàn)場的工作情況以圖像的方式實(shí)時(shí)的傳達(dá)到遠(yuǎn)程客戶端,遠(yuǎn)程監(jiān)視是遠(yuǎn)程控制和遠(yuǎn)
10、程報(bào)警的基礎(chǔ),通過對(duì)圖像數(shù)據(jù)的采集(通過安裝的攝像機(jī)對(duì)現(xiàn)場的連續(xù)圖像的采集,對(duì)于發(fā)生故障的部分,可對(duì)其進(jìn)行錄像和抓圖),作為客戶端進(jìn)行遠(yuǎn)程監(jiān)視的依據(jù)。遠(yuǎn)程設(shè)備監(jiān)控對(duì)一些現(xiàn)場設(shè)備的實(shí)時(shí)測試數(shù)據(jù)(如設(shè)備運(yùn)行參數(shù))的采集,通過對(duì)數(shù)據(jù)進(jìn)行分析以判斷設(shè)備運(yùn)行是否會(huì)出現(xiàn)故障。如果經(jīng)判斷有可能出現(xiàn)故障,則發(fā)出故障報(bào)警,以便于及時(shí)的調(diào)整設(shè)備,避免故障的出現(xiàn),同時(shí)可以保存這些運(yùn)行數(shù)據(jù),在需要的時(shí)候進(jìn)行回放。1.3 本篇論文的內(nèi)容本篇論文的內(nèi)容本文提出了一種針對(duì)溫室環(huán)境監(jiān)控的基于 VB 的數(shù)據(jù)采集和信息發(fā)布系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)應(yīng)用串口、網(wǎng)絡(luò)以及單片機(jī)等技術(shù)實(shí)現(xiàn)了對(duì)溫室環(huán)境的遠(yuǎn)程監(jiān)控,既可實(shí)時(shí)監(jiān)控環(huán)境的變化,又可以
11、實(shí)時(shí)的做出相應(yīng)的控制。硬件系統(tǒng)通過 RS485 總線與傳感器連接,并與具有聯(lián)網(wǎng)功能的 PC 監(jiān)控計(jì)算機(jī)構(gòu)成溫室現(xiàn)場監(jiān)控系統(tǒng)。該系統(tǒng)不僅能夠通過 Internet 遠(yuǎn)程瀏覽訪問溫室現(xiàn)場數(shù)據(jù),實(shí)現(xiàn)報(bào)警功能,而且能根據(jù)專家的經(jīng)驗(yàn)值,做出相應(yīng)的控制。該系統(tǒng)不僅可以實(shí)現(xiàn)對(duì)溫室環(huán)境的異地和遠(yuǎn)距離數(shù)據(jù)監(jiān)控管理,而且也可應(yīng)用于農(nóng)業(yè)的其它領(lǐng)域。上位機(jī)監(jiān)控軟件主要實(shí)現(xiàn)以下功能:串行通信:完成上位機(jī)的通信配置,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間通信。數(shù)據(jù)顯示:提供三維立體圖、曲線走勢圖和表格三種方式顯示。數(shù)據(jù)存儲(chǔ):對(duì)實(shí)時(shí)數(shù)據(jù)(包括最大值、最小值、平均值)按用戶要求存儲(chǔ)到數(shù)據(jù)庫的一張歷史數(shù)據(jù)表中:也可導(dǎo)出數(shù)據(jù)到文件,以文本方式保
12、存到一個(gè)文本文件中。數(shù)據(jù)查詢:允許用戶根據(jù)情況對(duì)實(shí)時(shí)數(shù)據(jù)、歷史數(shù)據(jù)進(jìn)行查詢或進(jìn)行走勢3 / 47 文檔可自由編輯打印曲線分析。數(shù)據(jù)打印:根據(jù)用戶要求,以表格方式打印實(shí)時(shí)數(shù)據(jù)和歷史數(shù)據(jù),亦可打印走勢曲線圖。異常報(bào)警:當(dāng)實(shí)時(shí)溫濕度數(shù)據(jù)超越設(shè)定的上下限溫濕度數(shù)值時(shí),報(bào)警鈴響。系統(tǒng)設(shè)置:為保證用戶在任何情況下,都能良好地運(yùn)行,允許用戶對(duì)系統(tǒng)的測量時(shí)間間隔、溫濕度上下限、存盤時(shí)間間隔、登錄用戶名、口令等參數(shù)進(jìn)行設(shè)置。為了方便管理,監(jiān)控計(jì)算機(jī)軟件采取了分組管理,同一臺(tái)監(jiān)控計(jì)算機(jī)可以采集幾組傳感器的數(shù)據(jù),這樣在地理上分布比較近的幾個(gè)溫室的傳感器可以由同一臺(tái)監(jiān)控計(jì)算機(jī)來管理,可以節(jié)約成本。為了方便管理人員應(yīng)用
13、,監(jiān)控計(jì)算機(jī)軟件還設(shè)計(jì)添加了如采樣與存儲(chǔ)時(shí)間步長設(shè)置、傳感器地址設(shè)置、傳感器異常診斷、數(shù)據(jù)庫設(shè)置等功能。本課題的主要內(nèi)容如下:信息的采集由溫度傳感器、溫濕度傳感器和二氧化碳傳感器等來完成;信息的變換和傳輸由數(shù)據(jù)采集模塊、轉(zhuǎn)換器來完成;信息的處理、分析、顯示和記錄用計(jì)算機(jī)軟件 VB 來實(shí)現(xiàn);信息的調(diào)節(jié)和控制 通過單片機(jī)調(diào)節(jié)、控制和執(zhí)行裝置來實(shí)現(xiàn)。4 / 47 文檔可自由編輯打印第二章第二章 系統(tǒng)簡介系統(tǒng)簡介2.1 系統(tǒng)組成系統(tǒng)組成當(dāng)前,隨著農(nóng)業(yè)科技的發(fā)展,高產(chǎn)高效的設(shè)施農(nóng)業(yè)栽培技術(shù)在我國得到了廣泛的應(yīng)用。從單個(gè)的簡易日光溫室,發(fā)展到大型連棟溫室,生產(chǎn)規(guī)模越來越大,特別是近年來一些地方大規(guī)模興建日
14、光溫室生產(chǎn)基地,實(shí)現(xiàn)了溫室生產(chǎn)的集約化、工廠化。隨著大棚生產(chǎn)規(guī)模的日益擴(kuò)大,對(duì)于生產(chǎn)過程的科學(xué)管理越來越重要。對(duì)于有幾十個(gè)溫室大棚的農(nóng)業(yè)生產(chǎn)基地來說,要監(jiān)控各溫室的環(huán)境參數(shù)在給定范圍之內(nèi),依靠生產(chǎn)人員人工完成,費(fèi)時(shí)費(fèi)力,而且很難保證對(duì)溫室環(huán)境參數(shù)的及時(shí)、準(zhǔn)確調(diào)節(jié),這就需要一套以計(jì)算機(jī)為核心的自動(dòng)控制系統(tǒng)。基于上述考慮,我們?cè)O(shè)計(jì)出了新一代智能溫室數(shù)據(jù)監(jiān)控系統(tǒng)。該系統(tǒng)以數(shù)據(jù)采集模塊LTM8662和微機(jī)為核心器件,通過RS232/RS485轉(zhuǎn)換, 對(duì)大型溫室大棚內(nèi)各種環(huán)境參數(shù)施行遠(yuǎn)程及實(shí)時(shí)監(jiān)控,可以在現(xiàn)場實(shí)時(shí)采集溫室的各環(huán)境因子,顯示在現(xiàn)場的大屏幕LED上,通過總線將數(shù)據(jù)遠(yuǎn)距離傳送到監(jiān)控室的主控計(jì)算
15、機(jī),實(shí)時(shí)監(jiān)控并記錄各個(gè)生產(chǎn)溫室的環(huán)境變化,并且,根據(jù)農(nóng)業(yè)專家的經(jīng)驗(yàn)值,通過單片機(jī)對(duì)溫室的設(shè)備進(jìn)行控制,有效的調(diào)節(jié)溫室的環(huán)境,為種植作物提供最佳生長發(fā)育環(huán)境,而且,可以通過網(wǎng)絡(luò)將溫室的數(shù)據(jù)傳送到各個(gè)農(nóng)業(yè)用戶的家里,實(shí)現(xiàn)對(duì)農(nóng)業(yè)種植的科學(xué)、準(zhǔn)確管理。系統(tǒng)主要由數(shù)據(jù)采集器, RS232/RS485轉(zhuǎn)換,單片機(jī),溫度傳感器,溫濕度傳感器,二氧化碳傳感器,控制器(箱),執(zhí)行機(jī)構(gòu),遠(yuǎn)程通訊模塊和控制中心軟件等部分組成,系統(tǒng)支持64路測量,模塊化設(shè)計(jì),各部分可獨(dú)立工作,組建方便,并具有良好的擴(kuò)充性,維護(hù)簡單。支持各種功能模塊的任意組合、搭配,系統(tǒng)易擴(kuò)展性突出。設(shè)備總線上全數(shù)字信號(hào)傳輸,提高數(shù)據(jù)傳輸質(zhì)量和抗干擾
16、能力。各功能模塊之間采用數(shù)字信號(hào)傳輸,只需要一條3芯線,就可以連接各種傳感器及功能模塊。系統(tǒng)的設(shè)計(jì)可靠,操作簡單方便,全自動(dòng)化,優(yōu)選分析軟件,智能控制,而且安裝簡便,維護(hù)簡單,不僅適用于國防工程、人防工程等,而且也可廣泛適用于大型建筑、工廠車間、倉庫(房)、溫室花棚、蔬菜塑料大棚等對(duì)溫濕度要求較高的場所。2.1.1 系統(tǒng)組成框圖系統(tǒng)組成框圖本系統(tǒng)是針對(duì)溫室而開發(fā)的遠(yuǎn)程分布式環(huán)境監(jiān)控系統(tǒng),該系統(tǒng)是在考慮到溫室設(shè)備分布地點(diǎn)廣、設(shè)備數(shù)量多、環(huán)境復(fù)雜等因素的基礎(chǔ)上,結(jié)合計(jì)算機(jī)監(jiān)控技術(shù)、遠(yuǎn)程傳輸技術(shù)而開發(fā)的數(shù)據(jù)采集網(wǎng)絡(luò)監(jiān)控系統(tǒng),但同樣可應(yīng)用于其他領(lǐng)域環(huán)境的監(jiān)控與應(yīng)用。為了保證數(shù)據(jù)傳輸?shù)目煽啃?、?shí)時(shí)性,系
17、統(tǒng)采用 RS485 總線技術(shù)和 TCP/IP 網(wǎng)絡(luò)通信相結(jié)合的方式,針對(duì)被監(jiān)控設(shè)備的具體情況開發(fā)專用的監(jiān)控軟件,能夠同時(shí)采集多路數(shù)字傳感器的環(huán)境數(shù)據(jù),并把這些數(shù)據(jù)通過 Internet 發(fā)布到網(wǎng)絡(luò)上,實(shí)現(xiàn)了遠(yuǎn)程環(huán)境監(jiān)控的設(shè)計(jì)思想。系統(tǒng)軟件采用 VB 開發(fā),結(jié)合網(wǎng)絡(luò)通訊技術(shù),充分保證了系統(tǒng)穩(wěn)定、可靠的運(yùn)行,軟件開發(fā)具有極大的靈活性,同時(shí)模塊化的編程思想使系統(tǒng)軟件易于升級(jí)和維護(hù)。綜合考慮各方面,我們?cè)O(shè)計(jì)了如5 / 47 文檔可自由編輯打印圖 2.1 所示的系統(tǒng)。該系統(tǒng)可同時(shí)監(jiān)控若干個(gè)溫室單元,每個(gè)溫室單元?jiǎng)t形成一個(gè)相對(duì)獨(dú)立的子系統(tǒng),通過RS485 總線把若干個(gè)數(shù)字傳感器與現(xiàn)場監(jiān)控計(jì)算機(jī)連接,將數(shù)據(jù)
18、顯示在現(xiàn)場的大屏幕LED上,然后再將監(jiān)控計(jì)算機(jī)接入Internet,監(jiān)控計(jì)算機(jī)將數(shù)據(jù)實(shí)時(shí)發(fā)送到數(shù)據(jù)庫服務(wù)器。這樣監(jiān)控計(jì)算機(jī)只要放在RS-485 總線的最大通信距離允許范圍之內(nèi)(1200 米左右),用戶無論在多遠(yuǎn),只要能夠連接到Internet,就可以通過Internet 網(wǎng)絡(luò)訪問所有的實(shí)時(shí)和歷史數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器用來存儲(chǔ)溫室環(huán)境數(shù)據(jù),同時(shí)還存儲(chǔ)溫室采集系統(tǒng)運(yùn)行參數(shù),供監(jiān)控計(jì)算機(jī)運(yùn)行時(shí)讀取并設(shè)置其自身的工作狀態(tài)。管理員可通過瀏覽器訪問和修改數(shù)據(jù)庫中的參數(shù)。Web 應(yīng)用程序服務(wù)器實(shí)現(xiàn)數(shù)據(jù)在網(wǎng)絡(luò)上的發(fā)布,接受在Internet 上的任一用戶查詢?yōu)g覽,并接受授權(quán)用戶更改監(jiān)控計(jì)算機(jī)工作參數(shù),存儲(chǔ)到數(shù)據(jù)庫
19、服務(wù)器上。在有用戶請(qǐng)求的條件下WEB 應(yīng)用程序服務(wù)器將通過Internet 從數(shù)據(jù)庫服務(wù)器中讀取用戶請(qǐng)求的數(shù)據(jù),再通過Internet 網(wǎng)絡(luò)把這些數(shù)據(jù)發(fā)送到請(qǐng)求數(shù)據(jù)的用戶,另外它還可以把用戶的一些參數(shù)設(shè)置信息保存到數(shù)據(jù)庫服務(wù)器上。監(jiān)控計(jì)算機(jī)會(huì)定時(shí)查詢數(shù)據(jù)庫中的一些基本參數(shù),然后按照這些參數(shù)來調(diào)整自身的工作狀態(tài),這樣也就實(shí)現(xiàn)了遠(yuǎn)程設(shè)置監(jiān)控計(jì)算機(jī)參數(shù)的功能。LED 單片機(jī)控制串口圖 2.1 遠(yuǎn)程監(jiān)控系統(tǒng)在農(nóng)業(yè)大棚中應(yīng)用的總體框圖其中,單個(gè)溫室的數(shù)據(jù)采集部分的框圖如圖 2.26 / 47 文檔可自由編輯打印圖 2.2 單個(gè)溫室的詳細(xì)結(jié)構(gòu)圖2.1.2 系統(tǒng)組成的各部分說明系統(tǒng)組成的各部分說明一、經(jīng)濟(jì)型
20、 ITU 采集控制中心 LTM-8660功能: 實(shí)現(xiàn)兩級(jí)通訊網(wǎng)絡(luò)間的聯(lián)絡(luò)。一級(jí)對(duì)上位機(jī) RS-485 網(wǎng),LTM-8660模塊作為子站;另一級(jí)“ITU 總線” ,可支持 8 路總共 64 個(gè)各種 ITU 混接,實(shí)現(xiàn)采集信息送往上位機(jī)及控制信息發(fā)送到 ITU。硬件要求:LTM-8660模塊LTM8662 經(jīng)濟(jì)型ITU采集控制中心1.支持 LTM8901 數(shù)字化溫度傳感器,長英科技 ITU 總線模塊2.支持溫濕度探頭及 ITU 模塊在一條三芯傳輸線上混裝3.支持 8 路總共 64 個(gè)各種 ITU 混接4.自動(dòng)識(shí)別傳感器數(shù)量, 5.模塊與上位機(jī)采用 RS485 通訊6.提供 DLL 庫及例程,支持多
21、種組態(tài)軟件7.一臺(tái)上位機(jī)可帶 127 個(gè)模塊8.波特率 9600/19200/38400 可選二、RS485總線是采用一對(duì)平衡差分信號(hào)線的半雙工通信標(biāo)準(zhǔn),由于采用的平衡差分信號(hào)傳輸,使得信號(hào)在傳輸過程中抗干擾能力相對(duì)于RS232 大大增強(qiáng),傳輸距離可達(dá)1200m,在減小傳輸速率的情況下傳輸距離可以高達(dá)到5Km 甚至更遠(yuǎn)。采用RS-232/485 傳輸技術(shù)具有很多優(yōu)點(diǎn),在理論上如果所用的轉(zhuǎn)換器有足夠的驅(qū)動(dòng)能力,可在同一個(gè)總線上掛接高達(dá)128 個(gè)甚至256 個(gè)數(shù)字傳感器。而實(shí)際7 / 47 文檔可自由編輯打印上,在一個(gè)溫室中所需要的傳感器數(shù)量一般不可能超過上述限制,應(yīng)該能充分滿足需要。采用單口隔離
22、RS232/485轉(zhuǎn)換模塊LTM-8520,485總線傳輸距離: 1200 M三、LTM8901 “一線總線”溫濕度探頭ITU1.直接數(shù)字化輸出,可支持聯(lián)網(wǎng)少點(diǎn)檢測,所有傳感器之間以三芯線纜(含電源和地線)相連,布線方便成本低。2.LTM8901 與測量模塊 LTM8662 之間的距離可達(dá) 50M,布線方便。3.LTM8901 功耗較低,無需現(xiàn)場電源4.測濕范圍 199%,典型精度值為 3%,55%Rh 精度值為 2%5.溫濕度一體,系統(tǒng)成本低測溫范圍:-3060,分辨率為 0.0625四、DS18B20 美國 Dallas 數(shù)字化溫度傳感器Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 DS18
23、20 是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。新一代的 DS18B20 體積更小、更經(jīng)濟(jì)、更靈活。DS18B20,測量溫度范圍為-55C+125C,在-10+85C 范圍內(nèi)精度為0.5C?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大減少了系統(tǒng)的電纜數(shù),提高了系統(tǒng)的穩(wěn)定性和抗干擾性。封裝在如圖所示的 LTM8873 中 LEM8662 LTM-8520 LTM8901 LTM8873圖 2.3 器件實(shí)物圖五、LTM-8803-CO2 1-wire Bus CO2/溫度傳感器是長英科技繼數(shù)字化、網(wǎng)絡(luò)
24、化溫濕度一體化傳感器之后,推出的又一款多功能數(shù)字化、網(wǎng)絡(luò)化傳感器,秉承了長英科技“即買即用(BUYPLAY) ”的經(jīng)營理念,其高精度、功能集成、方便的現(xiàn)場校準(zhǔn)/安裝,是又一款經(jīng)濟(jì)性、方便性和先進(jìn)性完美統(tǒng)一的典范,使長英科技溫度、濕度、靜態(tài)應(yīng)變等監(jiān)控系統(tǒng)更加完善,功能更加完備。優(yōu)點(diǎn):幾乎是目前最經(jīng)濟(jì)的數(shù)字化 CO2傳感器可以同多種物理量傳感器,比如溫度、濕度、標(biāo)準(zhǔn)模擬量探頭等混布在同一條總線上內(nèi)置可以適合大多數(shù)應(yīng)用場合的智能自動(dòng)校準(zhǔn)系統(tǒng) CO2、溫度一體化傳感器,使傳感器的性能價(jià)格比進(jìn)一步提升。8 / 47 文檔可自由編輯打印LTM-8803-CO2 1-wire Bus CO2/溫度傳感器符合
25、美國 DALLAS“1-wire Bus”標(biāo)準(zhǔn),直接數(shù)字化輸出,保證測量精度,探頭之間可聯(lián)網(wǎng),且支持同溫度傳感器 LTM887X 混合分布,輕松實(shí)現(xiàn)傳感器的自動(dòng)識(shí)別,自動(dòng)校準(zhǔn),使多點(diǎn)溫濕度測試系統(tǒng)配置更靈活,功能更完備,布線更容易,擴(kuò)展更方便。特性: 非分散紅外光原理 (NDIR) CO2傳感器,散射或流過方式測量 量程:02000 ppm (可訂制 05000ppm) 精度: 40 ppm + 讀數(shù)的 3% 溫度漂移: 0.2% / 穩(wěn)定性: 漂移 2% (15 年) 重復(fù)性:漂移 1% 壓力影響: 每 mmHg 影響讀數(shù)的 0.13% 校準(zhǔn)周期:無注意:組裝可能影響出廠的校準(zhǔn),建議將 LT
26、M-8803-CO2 1-wire Bus CO2/溫度傳感器集成在設(shè)備中時(shí)運(yùn)輸之前校準(zhǔn)一下零點(diǎn)。 響應(yīng)時(shí)間:60S 達(dá)到變化的 90% 信號(hào)刷新時(shí)間: 1.6S 系統(tǒng)預(yù)熱時(shí)間: 2 min 可以操作 10min (最大精度) 工作環(huán)境: 050,095%RH (無凝結(jié)) 輸出形式: 1-wire Bus 電源供電: 24VDC 隔離供電 功耗: 峰值 200mA 平均60mA 最小= 10 And Val(InByte(i) = 0 And Val(InByte(i) = 9 Then Buf1 = Buf1 + Format(Hex(InByte(i), 00) Else Buf1 = B
27、uf1 + Hex(InByte(i) End If Next i 14 / 47 文檔可自由編輯打印 定時(shí)中斷發(fā)出相應(yīng)指令 等待回應(yīng),接收數(shù)據(jù)到緩沖區(qū) 由緩沖區(qū)存于數(shù)組中 經(jīng)過處理后,顯示到相應(yīng)的文本中 完成 是 選擇刷新時(shí)間 是否點(diǎn)擊刷新開始按鈕? 否 是否點(diǎn)擊刷新停止按鈕? 是 否 圖3.5 刷新過程流程圖3.3 傳感器簡介及相應(yīng)的數(shù)據(jù)處理傳感器簡介及相應(yīng)的數(shù)據(jù)處理3.3.1 溫度傳感器溫度傳感器 DS18B20供電電壓:3.05.5V(此處選用:5V) ,由電纜直接供電(VCC) ;15 / 47 文檔可自由編輯打印圖 3.6 DS18B20 的實(shí)物圖其中:1、GND;2、DQ;3、V
28、CC;2 和 3 之間接 4.7K 電阻;DS18B20 地址前兩位是 28,每個(gè)分別有唯一的一個(gè) 16 進(jìn)制的代碼,起其數(shù)據(jù)格式如下:BYTE1(A)BYTE2(B)BYTE3BYTE4溫度低位字節(jié)溫度高位字節(jié)保留保留232221202-12-22-32-4SSSSS262524溫度算法:SSSSS=11111b D=-1 SSSSS=00000b D=1 最小分辨率為 0.0625 當(dāng) D=1 時(shí),溫度值 T=(B and 7)*256+A*0.0625 當(dāng) D=-1 時(shí),溫度值 T=D*(256-B)*256-A*0.0625 部分程序如下: th1 = bbuf(13 + 8 * j)
29、 tl1 = bbuf(10 + 8 * j) b1 = th1 And 7 c1 = b1 * 16 e = c1 + tl1 For i = 0 To 1 eluf(i) = Right(Left(Text4.Text, i + 1), 1) Next i For i = 0 To 1 ehuf(i) = Right(Left(Text5.Text, i + 1), 1) Next i For i = 0 To 1 th(i) = ehuf(i) - 0 tl(i) = eluf(i) - 0 Next i EL = tl(0) * 10 + tl(1) EH = th(0) * 10 +
30、 th(1) b1 = e Mod 100 duf(3 + 26 * j) = Chr(b1 10 + 48)16 / 47 文檔可自由編輯打印 c1 = b1 Mod 10 duf(4 + 26 * j) = Chr(c1 + 48)duf(5 + 26 * j) = .8901 小數(shù)處理部分 g = bbuf(11 + 8 * j) / 16 * 10000 duf(6 + 26 * j) = Chr(g 1000 + 48) h = g Mod 1000 h = h Mod 100 duf(7 + 26 * j) = For i = 8 To 21 duf(i + 26 * j) = N
31、ext i duf(22 + 26 * j) = duf(23 + 26 * j) = duf(24 + 26 * j) = Chr(13) duf(25 + 26 * j) = Chr(10) 3.3.2 溫濕度傳感器溫濕度傳感器 LTM8901LTM8901 地址前兩位是 01,唯一的 16 進(jìn)制代碼,4 個(gè)字節(jié)。數(shù)據(jù)格式:ABCD A:是 ITU 類型,01 B:濕度值,范圍是 0200 C:溫度的低 8 位,TL D:溫度的高 8 位,TH溫濕度應(yīng)答數(shù)據(jù)格式:表 DTH7 6 5 4 3 2 1 0001溫度數(shù)據(jù)000濕度數(shù)據(jù)00XXX數(shù)據(jù)處理類型恒為零FLGTMPHXXX262524
32、表 CTL7 6 5 4 3 2 1 0XXXXXXXXTMPL232221202-12-22-32-4溫度數(shù)據(jù):17 / 47 文檔可自由編輯打印THBIT3 為符號(hào)位,BIT3=1,為負(fù)溫,BIT3=0 為正溫。TH 中,BIT75 為數(shù)據(jù)類型定義,BIT4 恒為 0TH 中,BIT20 及 DATAL 為溫度數(shù)據(jù)溫度值分辨率為:0.0625(2-4位)溫度計(jì)算公式為:正溫:TMP=(TH07H*256+TL)*0.0625負(fù)溫:T1=TH07HTMP=-(T1*256+DATAL)*0.0625濕度數(shù)據(jù):數(shù)據(jù)符字節(jié):B00C8H(0200DEC)濕度計(jì)算公式: 8901 的濕度分辨率為:
33、0.5%RH 8901 的濕度量程為:1%99%RH注意:當(dāng) LTM8901 有故障時(shí),B,C,D 均為 0FFH。采用移位指令,代替乘除法;還可以分別取出高、低位,之后要“and”一下,清零不必要的位,保留有效的位。 部分程序如下:溫度部分:duf(2 + 26 * j) = - th1 = bbuf(17 + 8 * j) tl1 = bbuf(14 + 8 * j) b1 = th1 And 7 c1 = b1 * 16 e = c1 + tl1 For i = 0 To 1 eluf(i) = Right(Left(Text4.Text, i + 1), 1) Next i For i
34、 = 0 To 1 ehuf(i) = Right(Left(Text5.Text, i + 1), 1) Next i For i = 0 To 1 th(i) = ehuf(i) - 0 tl(i) = eluf(i) - 0 Next i EL = tl(0) * 10 + tl(1) EH = th(0) * 10 + th(1) b1 = e Mod 100 duf(3 + 26 * j) = Chr(b1 10 + 48) c1 = b1 Mod 10 duf(4 + 26 * j) = Chr(c1 + 48) duf(5 + 26 * j) = . g = bbuf(15 +
35、8 * j) / 16 * 10000 duf(6 + 26 * j) = Chr(g 1000 + 48)18 / 47 文檔可自由編輯打印 h = g Mod 1000 duf(7 + 26 * j) = 濕度部分: f = bbuf(13 + 8 * j) And 1 a = (bbuf(12 + 8 * j) * 16 + bbuf(13 + 8 * j) * 0.5 duf(8 + 26 * j) = a 100 If Chr(duf(8 + 26 * j) + 48) = 0 Then duf(8 + 26 * j) = Else duf(8 + 26 * j) = Chr(duf
36、(8 + 26 * j) + 48) End If b1 = a Mod 100 duf(9 + 26 * j) = Chr(b1 10 + 48) c1 = b1 Mod 10 duf(10 + 26 * j) = Chr(c1 + 48) duf(11 + 26 * j) = . If f = 1 Then duf(12 + 26 * j) = 5 Else duf(12 + 26 * j) = 0 End If duf(13 + 26 * j) = % duf(14 + 26 * j) = R duf(15 + 26 * j) = H For i = 16 To 23 duf(i + 2
37、6 * j) = Next i duf(24 + 26 * j) = Chr(13) duf(25 + 26 * j) = Chr(10)3.3.3 二氧化碳傳感器二氧化碳傳感器 LTM8803 LTM8803-CO2 二氧化碳傳感器接線說明19 / 47 文檔可自由編輯打印圖 3.7 二氧化碳傳感器接線圖電源接線端子VDD +1030V(24V)VSS 地(電源地,V)1-WIRE 總線接線端子+5V 接 LTM8662 的 VCC 端口DQ 接 LTM8662 的 CHx 端口GND 接 LTM8662 的 GND 端口注: CHx 中的 x 代表 LTM8662 的 07 中的任意通道。
38、濃度(ppm)換算:LTM8803 數(shù)據(jù)格式:數(shù)據(jù)計(jì)算公式: CO2 濃度(ppm)= ( ( D * 256 + C ) * 0.01 ) * 1250 - ( 5000ppm )CO2 濃度(ppm)= ( ( D * 256 + C ) * 0.01 ) * 500 - ( 2000ppm )部分程序如下:duf(2 + 26 * j) = 2 duf(3 + 26 * j) = - c = bbuf(14 + 8 * j) * 16 + bbuf(15 + 8 * j) d = bbuf(16 + 8 * j) * 16 + bbuf(17 + 8 * j) h = d * 256 +
39、 c Sum = 0 For i = 0 To 2 Sum = Sum + h Next i e = Sum / 1.09 b1 = e Mod 1000 duf(4 + 26 * j) = Chr(b1 100 + 48) c1 = b1 Mod 100 duf(5 + 26 * j) = Chr(c1 10 + 48) duf(6 + 26 * j) = Chr(c1 Mod 10) + 48) duf(7 + 26 * j) = p duf(8 + 26 * j) = p duf(9 + 26 * j) = m For i = 10 To 19 duf(i + 26 * j) = Nex
40、t i duf(20 + 26 * j) = ABCD20 / 47 文檔可自由編輯打印 duf(21 + 26 * j) = duf(22 + 26 * j) = duf(23 + 26 * j) = duf(24 + 26 * j) = Chr(13) duf(25 + 26 * j) = Chr(10)3.4 數(shù)據(jù)的數(shù)據(jù)的 LED 顯示顯示本系統(tǒng)采用大連博海科技提供的LED脫機(jī)王的動(dòng)態(tài)鏈接庫Sendtoled.dll.一、函數(shù)定義1、通訊設(shè)置函數(shù)SetComm語法:SetComm(CType as byte, Port as byte, baud as String, SrnSN as
41、String) as byte功能:進(jìn)行通訊設(shè)置參數(shù)定義:Ctype 通訊協(xié)議(字節(jié)) ctype=0 RS232;ctype=1 RS485Port 通訊串口號(hào)(字節(jié)) port=1 com1;port=2 com2 baud 波特率(字符串)115200,57600,38400,28800,19200,14400,9600,4800,2400,1200SrnSN 控制卡序列號(hào)或控制卡節(jié)點(diǎn)號(hào)(建議使用控制卡節(jié)點(diǎn)號(hào))返回值: 0 通訊設(shè)置成功 31 波特率參數(shù)錯(cuò)誤 說明:在不改變通訊方式的情況下,調(diào)用一次即可反復(fù)使用。2、打印函數(shù)PrintStr 語法:PrintStr(str as stri
42、ng, X as Integer,Y as Integer, Color as byte, FontlibNo as byte )功能:適用于有實(shí)時(shí)變化數(shù)據(jù)或顯示內(nèi)容比較特殊的顯示項(xiàng)或腳本。實(shí)現(xiàn)以以打印的方式控制顯示項(xiàng)或腳本。參數(shù)定義:Prnstr 打印字符串; X 顯示項(xiàng)起始點(diǎn)橫坐標(biāo)(像素點(diǎn)) ; Y 顯示項(xiàng)起始點(diǎn)縱坐標(biāo)(像素點(diǎn)) ; Color 顯示顏色; color=0 紅色;color=1 綠色;color=2 黃色 FontLibNo 在 LED 脫機(jī)王中設(shè)定的附加字庫號(hào)如果附加字庫不存在,自動(dòng)轉(zhuǎn)為1616點(diǎn)陣字庫。3、清屏函數(shù)CleanSrn語法:CleanSrn(x1 as In
43、teger,y1 as Integer,x2 as Integer,y2 as Integer) 功能:顯示結(jié)束后清屏。參數(shù)定義:X1 清屏區(qū)域左上腳起始點(diǎn)橫坐標(biāo)(像素點(diǎn)) Y1 清屏區(qū)域左上腳起始點(diǎn)縱坐標(biāo)(像素點(diǎn)) X2 清屏區(qū)域右下腳終止點(diǎn)橫坐標(biāo)(像素點(diǎn)) Y2 清屏區(qū)域右下腳終止點(diǎn)縱坐標(biāo)(像素點(diǎn))二、先在 VB【工程】 【引用】中引用“SendToLed.dll” ,定義 Public led As SendToLed.Class_SendToLed。21 / 47 文檔可自由編輯打印1.設(shè)定通訊參數(shù),端口號(hào)、波特率、和通訊協(xié)議 Set led = New SendToLed.Class
44、_SendToLed led.BHTP_Error = False 通信設(shè)置 Call led.SetComm(1, 1, 9600, 56286) If led.BHTP_Error = True Then Text10.Text = led.LastErrorInfo End If2.通過定時(shí)器控件來設(shè)定 LED 屏幕顯示速度,首先,顯示標(biāo)題“溫室生態(tài)參數(shù)網(wǎng)絡(luò)測試系統(tǒng)” 和日期時(shí)間等,然后,顯示溫室內(nèi)的各種傳感器的采集值。Private Sub huamian_Timer() Dim strd As String Dim str1 As String Dim str2 As String
45、strd = Now str1 = 溫室生態(tài)參數(shù) str2 = 網(wǎng)絡(luò)測試系統(tǒng) Call led.CleanSrn(0, 0, 128, 64) Call led.PrintStr(str1, 16, 6, 0, 1) Call led.PrintStr(str2, 16, 26, 0, 1) Call led.PrintStr(strd, 0, 46, 0, 1) Call led.SendCommand If led.BHTP_Error = True Thentexlist.Text = led.LastErrorInfo如果出現(xiàn)錯(cuò)誤,顯示錯(cuò)誤類型 Elsetexlist.Text = 發(fā)
46、送成功否則顯示發(fā)送成功 End If End SubPrivate Sub huamian_Timer() Y = Len(Text1.Text) Text1.Text For i = 0 To Y - 1 leduf(i) = Right(Left(Text1.Text, i + 1), 1)Next IFor i = 0 To 25 str1 = str1 & leduf(i)Next iFor i = 26 To 51 str2 = str2 & leduf(i)Next iFor i = 52 To 77 str3 = str3 & leduf(i)Next i
47、22 / 47 文檔可自由編輯打印Call led.CleanSrn(0, 0, 128, 64) Call led.PrintStr(str1, 0, 0, 0, 1) Call led.PrintStr(str2, 0, 16, 0, 1)Call led.PrintStr(str3, 0, 32, 0, 1)If led.BHTP_Error = True Thentexlist.Text = led.LastErrorInfo如果出現(xiàn)錯(cuò)誤,顯示錯(cuò)誤類型Elsetexlist.Text = 發(fā)送成功否則顯示發(fā)送成功End IfEnd Sub相應(yīng)的流程圖如下:23 / 47 文檔可自由編輯
48、打印 顯示采集的數(shù)據(jù) 完成 是 是否到達(dá)LED設(shè)定的定時(shí)器時(shí)間? 否 是否到達(dá)LED設(shè)定的定時(shí)器時(shí)間? 否 設(shè)定標(biāo)題,讀取目前時(shí)間 是 顯示標(biāo)題時(shí)間 設(shè)定通訊參數(shù) 數(shù)據(jù)顯示完畢? 是 否 圖 3.8 LED 顯示屏程序流程圖3.5 本章小結(jié)本章小結(jié)本章首先介紹了串口通信技術(shù),本系統(tǒng)的主要軟件設(shè)計(jì)及流程,并詳細(xì)介紹了數(shù)據(jù)采集的處理部分。介紹了溫度傳感器(DS18B20)、溫濕度傳感器(LTM8901)、二氧化碳傳感器(LTM8803)等的數(shù)據(jù)格式以及程序?qū)崿F(xiàn)方法及相應(yīng)的部分程序。最后,對(duì)數(shù)據(jù)的 LED 顯示部分進(jìn)行了說明。24 / 47 文檔可自由編輯打印25 / 47 文檔可自由編輯打印第四章
49、第四章 網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的處理功能和數(shù)據(jù)的處理功能4.1 網(wǎng)絡(luò)通信簡介網(wǎng)絡(luò)通信簡介隨著網(wǎng)絡(luò)通信的興起與迅速發(fā)展,TCP/IP 協(xié)議已成為計(jì)算機(jī)網(wǎng)絡(luò)中最主要的傳輸協(xié)議,TCP/IP 傳輸協(xié)議也越來越為人所熟知。目前的 Internet 網(wǎng)就是基于TCP/IP 協(xié)議的互聯(lián)網(wǎng)絡(luò)。TCP 是傳輸控制協(xié)議,它提供了一種可靠的、面向會(huì)話連接的數(shù)據(jù)流服務(wù),它可以在一個(gè)分組可能發(fā)生丟失、破壞、重復(fù)、延遲和亂序的不可靠物理網(wǎng)絡(luò)之上通過確認(rèn)、流控、復(fù)用同步等自動(dòng)糾錯(cuò)技術(shù)提供一種可靠的進(jìn)程間通信機(jī)制,從而充分保證用戶數(shù)據(jù)傳送的可靠和有序性。使用 TCP 協(xié)議通信時(shí),TCP 建立并控制數(shù)據(jù)發(fā)送方
50、與接收方的會(huì)話關(guān)系,當(dāng)接收方正確收到數(shù)據(jù)后,必須向發(fā)送方發(fā)送確認(rèn)信息。如果發(fā)送方在指定時(shí)間內(nèi)未能收到確認(rèn)信息,將重發(fā)數(shù)據(jù)包。IP 指分組交換協(xié)議,是聯(lián)網(wǎng)的主機(jī)之間定義數(shù)據(jù)包傳送路由的規(guī)則,它的基本任務(wù)是通過網(wǎng)絡(luò)傳送數(shù)據(jù)報(bào),各個(gè) IP 數(shù)據(jù)報(bào)之間是相互獨(dú)立的。IP 本身沒有連接協(xié)議,在交換數(shù)據(jù)前不會(huì)建立會(huì)話關(guān)系。IP 收到數(shù)據(jù)后也不確認(rèn),發(fā)送方和接收方都不檢測數(shù)據(jù)傳輸?shù)恼_性。所以僅有 IP 是不可靠的,不能確保正確傳輸數(shù)據(jù)。TCP 與 IP 的組合則構(gòu)成了功能完整的傳輸協(xié)議。Visual Basic 是 Windows 環(huán)境下簡單、易學(xué)、高效的可視化編程語言開發(fā)系統(tǒng),以其所見即所得的可視化界面
51、設(shè)計(jì)風(fēng)格和 32 位面向?qū)ο蟮某绦蛟O(shè)計(jì)等特點(diǎn),已廣泛地應(yīng)用于各個(gè)領(lǐng)域,是很多計(jì)算機(jī)軟件開發(fā)人員采用的開發(fā)工具。VB 不但提供了良好的界面設(shè)計(jì)能力,而且在網(wǎng)絡(luò)通信方面的功能也很強(qiáng)。采用 VB 開發(fā)網(wǎng)絡(luò)通信應(yīng)用軟件十分方便,尤其軟件界面設(shè)計(jì)非常便捷,編程工作量較小,開發(fā)周期短。4.2 網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的存儲(chǔ)功能網(wǎng)絡(luò)通信實(shí)現(xiàn)報(bào)警和數(shù)據(jù)的存儲(chǔ)功能Visual Basic6.0 中提供了 Winsock 控件,用于支持網(wǎng)絡(luò)中兩臺(tái)以上計(jì)算機(jī)之間進(jìn)行通信。Winsock 控件提供了多樣化的屬性和方法來實(shí)現(xiàn)網(wǎng)絡(luò)通信。通過設(shè)置 Winsock 控件屬性及調(diào)用控件方法就能夠?qū)崿F(xiàn) TCP 或 UDP 方式的網(wǎng)
52、絡(luò)通信。因此,使用 Winsock 控件編寫網(wǎng)絡(luò)通信程序的過程,實(shí)際上就是設(shè)置 Winsock 控件屬性和調(diào)用控件方法的過程。利用這個(gè)控件,編程人員可以輕松地編寫出TCP/IP 客戶服務(wù)器程序。Winsock 控件是不可視控件,它提供了訪問 TCP 和 UDP 網(wǎng)絡(luò)服務(wù)非常簡便的途徑,使編程人員開發(fā)客戶/服務(wù)器應(yīng)用程序時(shí),不必了解 TCP 的細(xì)節(jié)或調(diào)用低級(jí)的 WinsockAPIs 函數(shù),只通過設(shè)置 Winsock 控件的屬性并調(diào)用其方法,就可直接連接到一臺(tái)遠(yuǎn)程計(jì)算機(jī)進(jìn)行,并可實(shí)現(xiàn)雙向數(shù)據(jù)交換。如果訪問 TCP 傳輸控制協(xié)議服務(wù)功能,須建立連接并實(shí)現(xiàn)主機(jī)間點(diǎn)對(duì)點(diǎn)通信。26 / 47 文檔可自由
53、編輯打印4.2.1 TCP/IP 客戶服務(wù)器程序設(shè)計(jì)方法客戶服務(wù)器程序設(shè)計(jì)方法使用 TCP/IP 協(xié)議通訊,首先要指定通信方式為 TCP 方式,將 Winsock 控件的 Protocol 屬性設(shè)置為 sckTCPProtocol。然后,按 TCP 通信協(xié)議規(guī)定,先要申請(qǐng)建立網(wǎng)絡(luò)連接,然后才能傳輸數(shù)據(jù)。1.服務(wù)器程序開始偵聽網(wǎng)絡(luò)服務(wù)器程序窗體中有三個(gè) Winsock 控件,Name 分別為 sckServer、sckBusy和 sckListen。其中 sckListen 是偵聽控件;sckBusy 是;sckServer 連接控件。偵聽控件和連接控件不能是同一個(gè) Winsock 控件。服務(wù)器
54、程序必須首先偵聽網(wǎng)絡(luò),等待客戶的連接申請(qǐng),才有可能建立網(wǎng)絡(luò)連接。服務(wù)器程序開始偵聽網(wǎng)絡(luò)前,需要為偵聽用(sckListen)控件的 LocalPort 屬性設(shè)置通信接口,然后調(diào)用 Listen 方法。服務(wù)器程序開始偵聽網(wǎng)絡(luò)的程序代碼如下:sckListen.LocalPort=2000sckListen.Listen 偵聽網(wǎng)絡(luò)2 客戶程序申請(qǐng)連接當(dāng)服務(wù)器程序已經(jīng)啟動(dòng)運(yùn)行并開始偵聽網(wǎng)絡(luò)后,在客戶程序申請(qǐng)連接前,需要為客戶 Winsock 控件的 RemodeHost 屬性設(shè)置遠(yuǎn)程主機(jī),為 RemodePort 屬性設(shè)置通信接口,然后再調(diào)用 Connect 方法向服務(wù)器程序申請(qǐng)連接。設(shè)置遠(yuǎn)程主機(jī)名
55、,可以是計(jì)算機(jī)名也可是 IP 地址。如果是主機(jī)計(jì)算機(jī)名,則需要系統(tǒng)翻譯為相應(yīng)的 IP 地址;如果是主機(jī) IP 地址,則直接進(jìn)行連接。申請(qǐng)連接的程序代碼如下:sckClient.Protocol = sckTCPProtocol 設(shè)置協(xié)議為 TCP 方式sckClient.RemoteHost = IP 地址設(shè)置遠(yuǎn)程主機(jī)接口號(hào),該值必須與設(shè)置遠(yuǎn)程主機(jī)服務(wù)器程序的接口號(hào)一致sckClient.RemotePort = 2000sckClient.Connect 申請(qǐng)連接3 服務(wù)器程序應(yīng)答連接請(qǐng)求服務(wù)器程序啟動(dòng)偵聽網(wǎng)絡(luò)后,當(dāng)客戶程序執(zhí)行 Connect 方法申請(qǐng)連接時(shí),服務(wù)器程序的偵聽控件(sckL
56、isten)觸發(fā) ConnectionRequest 事件,并傳遞連接請(qǐng)求句柄。編程人員需要在該當(dāng)事件程序中調(diào)用連接控件(sckServer)的 Accept 方法實(shí)現(xiàn)連接。服務(wù)器程序應(yīng)答連接的程序代碼如下:Private Sub sckListen_ConnectionRequest(ByVal requestID As Long)sckServer.Accept requestID 應(yīng)答連接請(qǐng)求End Sub當(dāng)服務(wù)器程序執(zhí)行 Accept 方法建立連接后,客戶程序中的接連控件將觸發(fā)Connect 事件通報(bào)連接完成,否則觸發(fā) Error 事件通報(bào)連接失敗。可以在該事件程序中加入連接后的處理程
57、序。27 / 47 文檔可自由編輯打印如果要求服務(wù)器程序支持多用戶連接,則需要?jiǎng)?chuàng)建 Winsock 控件數(shù)組,在連接時(shí)動(dòng)態(tài)生成 Winsock 控件與客戶程序建立連接。程序代碼應(yīng)修改如下:Private Sub sckListen_ConnectionRequest(ByVal requestID As Long)Dim i As LongIf CurNumber= 10 And Val(InByte(i) = 0 And Val(InByte(i) = 9 Then Buf1 = Buf1 + Format(Hex(InByte(i), 00) Else Buf1 = Buf1 + Hex(
58、InByte(i) End IfNext iShujuchuli 數(shù)據(jù)處理函數(shù) Case comEvSend 傳輸寄存器有 Sthreshold 個(gè)字符 End SelectEnd SubPrivate Sub Command5_Click() 刷新啟動(dòng)按鈕 Timer1.Enabled = True Command7.Enabled = False If Option3.Value = True Then Timer1.Interval = 2000 單位為毫秒 End If If Option4.Value = True Then Timer1.Interval = 30000 End I
59、f If Option5.Value = True Then36 / 47 文檔可自由編輯打印 Timer1.Interval =60000 End IfEnd SubPrivate Sub Timer1_Timer() If Timer2.Enabled = True Then Else Tim 定時(shí)器處理函數(shù)定時(shí)發(fā)送命令 End IfEnd SubPrivate Sub Command6_Click() 刷新停止按鈕 Timer1.Enabled = FalseEnd SubPrivate Sub Command2_Click() 關(guān)閉串行通信端口按鈕 關(guān)閉串行通信端口 For i = 0
60、 To 7 Label1(i).Caption = Next i For i = 0 To 17 Text1(i) = Next i End SubPrivate Sub Command7_Click()保存 Open App.Path + ws.dat For Output As #1 Print #1, Text1(17) Close #1 MsgBox 保存成功! Command8.Enabled = TrueEnd SubPrivate Sub Command3_Click() 結(jié)束系統(tǒng)按鈕 EndEnd SubPrivate Sub tcpClient_DataArrival(ByVal bytesTotal A
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療設(shè)備融資租賃中區(qū)塊鏈技術(shù)的便捷性體現(xiàn)
- 細(xì)胞膜-系統(tǒng)的邊界教學(xué)設(shè)計(jì)與反思
- app推廣服務(wù)合同樣本
- 親子活動(dòng)基地合同范例
- 機(jī)器人焊接 10 項(xiàng)目五任務(wù)5.2教學(xué)設(shè)計(jì)
- 公共綠化養(yǎng)護(hù)合同范例
- 化學(xué)教學(xué)個(gè)人年度工作總結(jié)模版
- 光伏材料購銷合同范例
- 幼兒園小班暑期家訪工作總結(jié)模版
- 供貨附加合同范例
- 人教版(新教材)高中物理選擇性必修2教學(xué)設(shè)計(jì)2:2 2 法拉第電磁感應(yīng)定律教案
- 2024-2025學(xué)年人教版數(shù)學(xué)八年級(jí)下冊(cè)期中押題重難點(diǎn)檢測卷(含答案)
- 基建科室面試題及答案
- 儒林外史名著試題及答案
- 國開電大軟件工程形考作業(yè)3參考答案 (一)
- 2025年11.0C-雙基地感知關(guān)鍵技術(shù)研究與驗(yàn)證白皮書-未來移動(dòng)通信論壇
- 《天津T建設(shè)集團(tuán)公司應(yīng)收賬款管理問題及完善對(duì)策研究》9800字(論文)
- 2024年汽車維修案例分析方法試題及答案
- 地質(zhì)災(zāi)害地震課件
- 輸血病人的個(gè)案護(hù)理
- 粵教粵人版初中地理七下知識(shí)梳理
評(píng)論
0/150
提交評(píng)論