您現(xiàn)在的位置:中國(guó)農(nóng)業(yè)儀器網(wǎng) > 技術(shù)文章 > 人工氣候室主機(jī)系統(tǒng)軟件設(shè)計(jì)方案
人工氣候室主機(jī)系統(tǒng)軟件設(shè)計(jì)方案
控制植物生長(zhǎng)環(huán)境的設(shè)施和設(shè)備由簡(jiǎn)單的生長(zhǎng)箱發(fā)展到控制復(fù)雜的人工氣候室。筆者開發(fā)的基于CAN(controller areanetwork,即控制器局域網(wǎng))總線的人工氣候室智能測(cè)試系統(tǒng),主要用于對(duì)植物生長(zhǎng)的溫度、濕度、光照度和CO2含量等狀態(tài)參數(shù)的自動(dòng)檢測(cè),對(duì)人工氣候?qū)嶒?yàn)室的異常情況進(jìn)行故障初發(fā)期的報(bào)警處理,模擬人類智能信息融合能力,分析植物生長(zhǎng)狀態(tài),控制植物生長(zhǎng)環(huán)境所需的溫度、濕度、光照度和CO2含量,從而為植物生長(zhǎng)環(huán)境的信息融合和控制決策奠定了基礎(chǔ)。系統(tǒng)具有參數(shù)檢測(cè)、參數(shù)分析、故障自檢、系統(tǒng)保密、病毒防護(hù)、知識(shí)查詢等多種功能。主機(jī)軟件采用VB(Visual Basic)和LabVIEW編寫。VB作為可視化的編程語(yǔ)言具有簡(jiǎn)單易學(xué)、功能強(qiáng)大的特點(diǎn),能在短時(shí)期內(nèi)開發(fā)一個(gè)完整、易于操作的應(yīng)用軟件。而美國(guó)NI(National Instrument)公司推出的LabVIEW圖形化編程語(yǔ)言,是計(jì)算機(jī)硬件、儀器測(cè)控硬件和用于數(shù)據(jù)分析及圖形用戶界面的軟件之間的有效結(jié)合,是最成功的虛擬儀器軟件,提供了所見即所得的圖形化界面編輯環(huán)境。在系統(tǒng)的主機(jī)軟件設(shè)計(jì)中,VB用于完成數(shù)據(jù)信息的通信,LabVIEW用于完成數(shù)字、圖形化處理。二者結(jié)合,使主機(jī)軟件具有比其他僅以VB為開發(fā)平臺(tái)的系統(tǒng)主機(jī)軟件更豐富完善的功能和視覺效果。系統(tǒng)已投入實(shí)際應(yīng)用。
1 系統(tǒng)構(gòu)成
系統(tǒng)主要由中心控制室、試驗(yàn)培養(yǎng)室和人工能源室三大部分組成。中心控制室是自然能源利用和人工能源分配的控制中心。試驗(yàn)培養(yǎng)室是用于模擬自然環(huán)境的人工氣候室。人工能源室是在自然能源受限的情況下,按中心控制室的指令向試驗(yàn)培養(yǎng)室提供人工能源,以滿足培養(yǎng)室各試驗(yàn)單元和整體環(huán)境的要求。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)以PC機(jī)(586/266以上機(jī)型)作為主機(jī),以80C592單片機(jī)系統(tǒng)和溫度、濕度、光照度和CO2含量等參數(shù)測(cè)量電路為分機(jī)。作為系統(tǒng)的核心,主機(jī)安放在系統(tǒng)的控制室,分機(jī)安放在各個(gè)培養(yǎng)室,原則上一個(gè)光照箱安放一個(gè)分機(jī)。一臺(tái)主機(jī)可以管理1~200臺(tái)分機(jī),一臺(tái)分機(jī)可以連接檢測(cè)溫度、濕度、光照度和CO2含量等共計(jì)1~128個(gè)傳感器。主機(jī)通過CAN串行總線,管理著10 km范圍內(nèi)安放在培養(yǎng)室中的分機(jī)(CAN節(jié)點(diǎn));每臺(tái)分機(jī)通過安裝在培養(yǎng)室中的各類不同的傳感器對(duì)狀態(tài)參數(shù)的采集與信息傳輸。
根據(jù)不同類型植物在不同生長(zhǎng)時(shí)期及不同生長(zhǎng)季節(jié),控制室主機(jī)設(shè)定植物不同的理想生長(zhǎng)狀態(tài)參數(shù)。同時(shí),主機(jī)根據(jù)安裝在培養(yǎng)室的分機(jī)中各傳感器所檢測(cè)到的實(shí)際狀態(tài)參數(shù),與設(shè)定的理想狀態(tài)參數(shù)比較、通過模糊運(yùn)算以及處理,控制人工能源室向培養(yǎng)室提供人工能源。這種以CAN總線結(jié)構(gòu)的通信方式,具有實(shí)時(shí)性好、運(yùn)行成本低、系統(tǒng)組建方便和工作的高可靠性等優(yōu)點(diǎn)。而主機(jī)軟件的合理設(shè)計(jì)是系統(tǒng)穩(wěn)定、可靠運(yùn)行的關(guān)鍵,它直接影響著植物生長(zhǎng)所需的環(huán)境狀態(tài)參數(shù)。
2 主機(jī)軟件設(shè)計(jì)
主機(jī)軟件設(shè)計(jì)遵循模塊化設(shè)計(jì)思想,采用結(jié)構(gòu)化程序設(shè)計(jì)方案,具有較好的模塊性、可移植性和可修改性。主機(jī)軟件模塊主要有:通信模塊、數(shù)據(jù)顯示模塊、圖形化顯示模塊、歷史數(shù)據(jù)記錄模塊、數(shù)據(jù)分析處理模塊、決策和控制模塊等。其中,溫度、濕度、光照度和CO2含量等參數(shù)的圖形化顯示還具有顏色提示和警示功能。例如,溫度檢測(cè)圖形化顯示時(shí),紅色顯示表明溫度過高,綠色表示溫度在正常范圍,黃色表示溫度過低。系統(tǒng)進(jìn)行檢測(cè)時(shí),根據(jù)設(shè)定,主機(jī)首先連接某一分機(jī)或所有分機(jī),然后將分機(jī)采集的測(cè)量數(shù)據(jù)傳送到主機(jī),存放在數(shù)據(jù)庫(kù)中,進(jìn)行分析處理。由于具有圖形化顯示功能,從主機(jī)顯示或打印輸出上,可以一目了然地得到培養(yǎng)室的運(yùn)行情況并實(shí)現(xiàn)系統(tǒng)故障自檢及其他相關(guān)功能。主機(jī)的工作流程如圖2所示。
2. 1 主機(jī)通信軟件模塊設(shè)計(jì)系統(tǒng)主機(jī)通信包括主機(jī)RS2232的串口通信以及主機(jī)與分機(jī)之間的CAN總線通信;CAN總線通信模塊包括點(diǎn)名、檢測(cè)、設(shè)置等通信軟件模塊。
2. 1. 1 主機(jī)的串口通信軟件設(shè)計(jì)
主機(jī)計(jì)算機(jī)中一般都有兩個(gè)RS2232串行通信口,該口完成串行數(shù)據(jù)轉(zhuǎn)換和串行數(shù)據(jù)接收、發(fā)送任務(wù),采用RS2232通信標(biāo)準(zhǔn),其結(jié)構(gòu)和使用都很簡(jiǎn)單。而主機(jī)系統(tǒng)軟件VB的MSCOMM控件提供了事件驅(qū)動(dòng)和查詢方式兩種方法實(shí)現(xiàn)串口通信。其中:事件驅(qū)動(dòng)是處理串行端口交互作用的一種非常有效的方法;而查詢方式是通過MSCOMM控件間接調(diào)用API函數(shù),充分利用系統(tǒng)已有的ActiveX控件實(shí)現(xiàn)快速開發(fā)正是VB的優(yōu)點(diǎn)之一;兩種方法都能實(shí)現(xiàn)串口通信和數(shù)據(jù)信息的傳輸。
2. 1. 2 人工氣候室的CAN總線特點(diǎn)與工作原理
CAN總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),它以半雙工的方式工作,一個(gè)節(jié)點(diǎn)發(fā)送信息,多個(gè)節(jié)點(diǎn)接收信息,可以實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),提高數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)目煽啃浴F浣Y(jié)構(gòu)形式如圖3所示。
CAN總線的信息存取采用一種稱作廣播式的存取工作方式,信息可以在任何時(shí)候由任何節(jié)點(diǎn)發(fā)送到空閑的總線上,每個(gè)節(jié)點(diǎn)的CAN總線接口必須接收總線上出現(xiàn)的所有信息,因此各節(jié)點(diǎn)都設(shè)置有一個(gè)接收寄存器,接收寄存器首先將信息接收,然后根據(jù)接收信息的標(biāo)識(shí)符決定是否讀取信息包中的數(shù)據(jù),即判定是否使用這一信息。
CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼。CAN總線面向數(shù)據(jù)而不是面向節(jié)點(diǎn),采用這種方法的優(yōu)點(diǎn)是可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制,加入和減少設(shè)備不影響系統(tǒng)的工作。因此,系統(tǒng)可以根據(jù)用戶的不同需要,任意改變分機(jī)的數(shù)量。CAN總線收發(fā)數(shù)據(jù)的長(zhǎng)度最多為8 B,因而不存在占用總線時(shí)間過長(zhǎng)的問題,可以保證通信的實(shí)時(shí)性。通信速率最高可達(dá)1Mb/s(通信距離40 m),通信距離最遠(yuǎn)可達(dá)10 km(傳輸速率為5 kb/s)。通信介質(zhì)可以是同軸電纜或光導(dǎo)纖維,甚至可采用雙絞線。
2. 1. 3 點(diǎn)名通信軟件模塊設(shè)計(jì)
點(diǎn)名、檢測(cè)、設(shè)置等通信模塊,命令格式基本相同,因?yàn)楦髯詧?zhí)行的命令號(hào)不同,所以能實(shí)現(xiàn)不同的功能。下面以點(diǎn)名命令的通信模塊詳細(xì)說明。點(diǎn)名命令主要用來(lái)查詢分機(jī)個(gè)數(shù)以及分機(jī)下掛溫度、濕度、光照度和CO2含量傳感器個(gè)數(shù),該命令一般在系統(tǒng)初次上電時(shí)才被執(zhí)行。
人工氣候室的CAN節(jié)點(diǎn)個(gè)數(shù)為1~200個(gè),因此主機(jī)必須事先知道分機(jī)的個(gè)數(shù)及其地址,以便主機(jī)統(tǒng)一管理。分機(jī)下掛溫度、濕度、光照度和CO2含量傳感器,采用的80C592單片機(jī)可以連接分布于培養(yǎng)室的傳感器個(gè)數(shù)為1~128個(gè),因此,系統(tǒng)中的每個(gè)分機(jī)管理的傳感器個(gè)數(shù)也為1~128個(gè)。所以,系統(tǒng)主機(jī)也必須事先知道系統(tǒng)分機(jī)的傳感器個(gè)數(shù)及其地址,才可完成對(duì)培養(yǎng)室中具體區(qū)域的具體溫度、濕度、光照度和二氧化碳監(jiān)測(cè)的檢測(cè)等工作。
系統(tǒng)主機(jī)發(fā)送的點(diǎn)名命令格式為:“0BBH”+CANADD+“0AAH”+cmnd+Byteh+Bytel+ad2rh+adrl+chkxor+chksum,其中:“0BBH”為主機(jī)發(fā)送命令的起始碼,即命令頭;CANADD為系統(tǒng)中CAN節(jié)點(diǎn)的地址;“0AAH”為主、分機(jī)之間,以及分機(jī)與各傳感器之間進(jìn)行通信的命令起始碼;cmnd為命令號(hào);Byteh、Bytel為所要檢測(cè)的數(shù)據(jù)字節(jié)數(shù),其中Byteh為字節(jié)高8位,Bytel為低8位,所檢測(cè)的數(shù)據(jù)總長(zhǎng)度=(Byteh* 256+Bytel)個(gè)字節(jié);adrh、adr分別為檢測(cè)對(duì)象的傳感器型號(hào)和傳感器編號(hào)(每個(gè)對(duì)象都有其固定的傳感器型號(hào)和傳感器編號(hào),這由協(xié)議來(lái)規(guī)定);chkxor、chksum分別為異或校驗(yàn)、和校驗(yàn)。
2. 2 VB與LabVIEW的程序嵌套設(shè)計(jì)
將VB與LabVIEW應(yīng)用于系統(tǒng)的主機(jī)軟件開發(fā),可以同時(shí)利用VB、LabVIEW的技術(shù)優(yōu)勢(shì),組成靈活的虛擬儀器應(yīng)用系統(tǒng),實(shí)現(xiàn)監(jiān)測(cè)信息的圖形化處理及對(duì)系統(tǒng)的有效控制。
2. 2. 1 系統(tǒng)資源的共享
利用VB完成系統(tǒng)的自檢、通信、歷史數(shù)據(jù)記錄、數(shù)據(jù)分析處理、決策和控制等軟件模塊的設(shè)計(jì),利用LabVIEW完成主機(jī)系統(tǒng)自檢、數(shù)據(jù)顯示、圖形化顯示等軟件模塊的設(shè)計(jì),利用VB與LabVIEW共同完成主機(jī)自檢、數(shù)據(jù)顯示、圖形化顯示等軟件模塊的設(shè)計(jì)。
當(dāng)主機(jī)將從串口采集主集中器傳送的數(shù)據(jù),通過VB管理,數(shù)據(jù)以Access數(shù)據(jù)庫(kù)的形式儲(chǔ)存起來(lái)。DDE(dynamic data ex2change,即動(dòng)態(tài)數(shù)據(jù)交換)技術(shù)的應(yīng)用,使得虛擬儀器LabVIEW軟件平臺(tái)能夠調(diào)用該數(shù)據(jù)庫(kù)中的數(shù)據(jù),以顯示參數(shù)結(jié)果。在本系統(tǒng)中,采用了功能強(qiáng)大的DDE系列函數(shù)完成了數(shù)據(jù)的交換和共享工作。實(shí)踐證明,DDE技術(shù)運(yùn)行可靠,不易出錯(cuò)。
2. 2. 2 在VB中嵌入LabVIEW
主機(jī)軟件VB中嵌入LabVIEW,是通過OLE(object linkingand embedding,對(duì)象的鏈接和嵌入)技術(shù)來(lái)實(shí)現(xiàn)的,OLE是系統(tǒng)主機(jī)虛擬化顯示的核心技術(shù)。利用OLE技術(shù),在開發(fā)系統(tǒng)主機(jī)的虛擬化顯示功能時(shí),系統(tǒng)虛擬顯示部分的開發(fā)程序以Lab2VIEW平臺(tái)為中心(而不是以VB為中心)。通過OLE,VB能夠?qū)abVIEW軟件作為對(duì)象嵌入到VB中去,而且VB對(duì)所嵌入的LabVIEW的處理就像對(duì)其本身對(duì)象的處理一樣方便快捷。為實(shí)現(xiàn)OLE自動(dòng)化功能,首先生成一個(gè)變量來(lái)引用Lab2VIEW,這個(gè)變量稱為對(duì)象變量(ObjectVariable)。以溫度虛擬檢測(cè)為例,源程序設(shè)計(jì)如下:
Dim LVappAsLabVIEW.Application———‘定義LabVIEW應(yīng)用程序變量Dim LVIAs LabVIEW.VirtualInstrument———‘定義虛擬儀器變量
Dim LVpathAs String———‘定義虛擬儀器系統(tǒng)路徑LVpath=APP. Path +": \LabVIEW \user. lib\實(shí)時(shí)溫度. vi"
SetLVapp=CreateObject("LabVIEW.Application")———‘啟動(dòng)虛擬儀器應(yīng)用程序
SetLVI=LVapp.GetVIReference(LVpath)———‘調(diào)用路徑所指向的虛擬儀器系統(tǒng)
LVI.FPAutoCenter=True———‘當(dāng)虛擬儀器程序被運(yùn)行時(shí),LabVIEW前面板位于屏幕的中央
LVI.FPW inOpen=True———‘調(diào)用虛擬儀器程序時(shí)打開并顯示前面板
LVI.Run (True)———‘運(yùn)行虛擬儀器程序利用以上代碼,可以在VB程序中嵌入LabVIEW,實(shí)現(xiàn)系統(tǒng)圖形化虛擬面板功能。當(dāng)虛擬面板生成以后,便可以操作面板中的各種控件(Controls),來(lái)運(yùn)行或控制虛擬儀器程序。程序運(yùn)行完畢以后,關(guān)閉虛擬儀器前面板( front panel),以釋放計(jì)算機(jī)的內(nèi)存空間。
3 結(jié)束語(yǔ)
人工氣候室智能測(cè)試系統(tǒng)主機(jī)軟件的CAN總線通信軟件的設(shè)計(jì)采用全程跟蹤和記錄技術(shù),方便了工作人員對(duì)通信過程的了解,提高了系統(tǒng)的故障解決能力。VB與LabVIEW應(yīng)用于人工氣候室智能測(cè)試系統(tǒng),充分利用了VB的易開發(fā)優(yōu)勢(shì)和虛擬儀器的圖形化、模塊化編程優(yōu)勢(shì),使主機(jī)軟件功能大為增強(qiáng)。此外,系統(tǒng)可與其他系統(tǒng)軟件連接,并可實(shí)現(xiàn)遠(yuǎn)程資源共享和網(wǎng)上信息瀏覽與查詢。
- 【中國(guó)農(nóng)業(yè)儀器網(wǎng)】聲明部分文章轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),且不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與本網(wǎng)聯(lián)系。
- 上一篇:如何提高碾米機(jī)的精米留胚率
- 下一篇:鐘鼎式分樣器改進(jìn)方案