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