張洪波,李相白,李建春
(1.云南馳宏鋅鍺股份有限公司曲靖鋅廠,曲靖 655000;2.云南馳宏資源綜合利用開發(fā)有限公司,曲靖 655000)
目前,如何引導溫室種植戶根據作物的生長要求進行環(huán)境因子的調節(jié)以獲得作物產量和質量的提高,是溫室環(huán)境因子監(jiān)控系統(tǒng)的主要目標和研究方向[1]。如何利用自動控制系統(tǒng)對溫室環(huán)境進行有效的控制,是目前我國溫室研究的重要課題之一,對我國溫室產業(yè)水平的提高有著重大的現實意義[2]。以微機為核心的溫室綜合環(huán)境控制系統(tǒng)獲得了長足發(fā)展,并逐步邁入網絡化、智能化階段[3]。
在寧夏國家經濟林木種苗快繁工程技術研究中心的溫室監(jiān)控系統(tǒng)中,為保證溫室控制系統(tǒng)的可靠性,將系統(tǒng)設計為三級主從控制系統(tǒng)。以ARM系列單片機為中間主控制器的模塊化下位機數據采集和控制單元以便于系統(tǒng)的擴展。上位機服務器直接面向網絡,保存下位機采集的數據。選用主控器自帶TCP/IP功能與服務器通信,自帶RS485通信功能連接下位機的數據采集與控制單元。具體結構如圖1所示。
數據傳輸的準確性至關重要。確保主控制器和下位機之間進行及時、準確、可靠的數據通訊是系統(tǒng)可靠運行的關鍵[4]。
系統(tǒng)通信幀分為指令幀和數據幀,其幀組成格式相同,數據校驗均采用CRC16校驗,校驗內容包括地址、指令、數據3個部分,數據部分可根據實際需要使用0~N個字節(jié)。數據是固定長度的。接收端只要發(fā)出指令就可以了,使用固定長度數據,最大限度的預留數據空間。一個采集器采集的數據包括溫度(3個字節(jié))、濕度(3個字節(jié))、土壤濕度、土壤溫度、空氣濕度、空氣溫度、光照強度。通信幀由以下部分組成:地址(A) 指令(C) 數據(D) 校驗(V)1個字節(jié) 1個字節(jié) N個字節(jié) 2個字節(jié)
圖1 系統(tǒng)結構圖
采集器上位下發(fā)命令(2個字節(jié)地址+01+$),采集器返回數據格式:(由下位提供給上位共15字節(jié)數據)
控制器下位回發(fā)(本機地址+0x66+$),系統(tǒng)主要指令說明見表1。
表1 系統(tǒng)主要指令說明
下位機地址原則上可以自由設置,設置范圍為0~255。但是由于采集的數據范圍是(0~100),有可能和地址沖突,因此地址一律用128以上的編號。另外可以用一個比特來說明該下位是采集器還是控制器,這樣會占用72個地址11000000(控制),10000000(采集)。
下位機起始狀態(tài)為接收地址信息,控制485的DE端子非通信態(tài)一直處在接收態(tài),地址信息通過命令字來設置。設置好的地址保存在ROM里。每個下位機起始地址設置為255,呼喚下位地址如果為255則重新設置自己需要的地址,并做標識,這種只能一個一個安裝,不能同時安裝2個或以上。
在系統(tǒng)的通信過程中,由于受外界干擾,可能會出現數據/命令幀丟失或出錯的情況,這種情況有時會導致雙方都處在等待對方數據/命令的狀態(tài),即進入死鎖狀態(tài)。為消除死鎖現象的出現,采取了限定時間片的方法來限制上位機與每個下位機的通信時間。針對不同的等待狀態(tài),規(guī)定了不同的等待時間。
1)上位機等待回應命令幀時間:查詢命令幀在總線上傳輸的時間+下位機接收比較處理的時間+[Ti=t*i]+回應命令幀在總線上的傳輸時間+彈性時間。
2)下位機等待發(fā)送命令幀時間:回應命令幀在總線上傳輸的時間+上位機接收比較處理的時間+發(fā)送命令幀在總線上的傳輸時間+彈性時間。
3)上位機等待數據幀的時間:發(fā)送命令幀在總線上的傳輸時間+下位機接收比較處理的時間+數據幀在總線上的傳輸時間+彈性時間。
上位機在當前等待時間內沒有收到回應命令,則重發(fā)查詢命令幀,若重發(fā)超過3次,則向系統(tǒng)報告下位機出故障。上位機在等待數據幀限制時間內沒有收到數據幀,則把已經收完的數據送到其它模塊處理,并且結束本次通信,開始訪問下一個下位機。下位機準備發(fā)送回應命令幀/數據幀的時間<(上位機等待命令幀/數據幀的時間-回應命令幀/數據幀在總線上傳輸的時間),一旦準備發(fā)送命令的時間≥(上位機等待命令幀/數據幀的時間-回應命令幀/數據幀在總線上傳輸的時間),下位機就自動放棄發(fā)送而重新發(fā)送請求,若重發(fā)超過3次仍然都是時間過時,則放棄,進入其他工作。
溫室控制系統(tǒng)軟件主要包括下位機數據采集模塊、下位繼電器輸出模塊、上下位通信模塊以及主控制器控制模塊的軟件設計。依據系統(tǒng)和硬件需求,確保設計功能的完成。
因系統(tǒng)測量設計使用的傳感器都是模擬信號,需要下位采集系統(tǒng)進行A/D變換來控制采集,并通過相應的濾波處理后進行存儲或者數據的通信傳送。系統(tǒng)對溫室環(huán)境溫度、濕度,土壤溫度、濕度,光照強度等參量不停的循環(huán)采集,進行簡單的濾波處理后,瞬時值放在變量中。采集控制流程圖如圖2所示。
圖2 采集控制流程圖
繼電器控制的主要目的是為了使執(zhí)行機構準確、及時、有效的響應主控制器的控制指令,繼電器控制主要是通過時間和控制數目來實現控制作用。其中時間遞減是以時間片為單元進行,控制的倍數以及對哪幾個端口進行控制由主控制器發(fā)送??刂茊卧浖鞒倘鐖D3所示。
其中KFlag為控制結束判斷指令,GFlag為控制信息更新標志。
通信模塊主要是為了完成主控制器和下位采集單元及控制單元的信息交換。它包括主控制器向控制單元發(fā)送控制指令,控制單元回饋控制信息。主控制器向采集單元發(fā)送采集指令,采集單元接收信息上傳采集數據幾個部分。
主控制器控制指令發(fā)送流程如圖4所示。該動作由主控制器發(fā)起,首先給下位采集、控制單元發(fā)送地址信息,采集、控制單元以中斷方式進行接收,進行地址解析后判斷切合與否,當控制單元做好接收準備后,回發(fā)確認信息。主控制器判斷后以設定好的數據幀格式編輯控制指令,進行發(fā)送。當超過一定次數沒有接收時則進行丟棄。
數據采集單元串行通信采用中斷方式,485一直處于接收狀態(tài),當判斷到主控制器發(fā)來的地址是自己的地址時,解析指令,將對應變量中的數據發(fā)送出去。具體流程如圖5所示。
圖5 采集單元指令接收流程
主控制器為多線程工作機制,這里對其控制主線程進行流程說明。溫室智能控制系統(tǒng)主要的控制理論依據以專家系統(tǒng)知識存儲,在進行相關項目控制之時,獲取控制模式信息。依據不同的生物生長特性需求以及生長階段制定相應的控制目標,從而進行溫室參數控制。主控器主要控制流程如圖6所示。
圖6 主控器主要控制流程
軟件抗干擾設計就是在軟件環(huán)節(jié)盡可能的消除不正常狀態(tài)出現的影響。根據干擾進入系統(tǒng)后所造成后果的不同,軟件抗干擾所采取的措施也不同[5-7]。
(1)為提高實時數據采集系統(tǒng)檢測數據的準確性和檢測精度,采用數字濾波技術。因系統(tǒng)測量的溫室環(huán)境溫度、濕度,土壤溫度、濕度數據都是屬于變化緩慢的信號,系統(tǒng)選擇中值平均濾波。
(2)控制輸出在本系統(tǒng)中主要為RS485通信和控制單元的繼電器控制環(huán)節(jié)。為避免因干擾而造成的系統(tǒng)控制失常,采取軟件冗余、設置當前輸出狀態(tài)寄存單元以及設置自檢程序等措施。
(3)在下位單片機的采集單元和控制單元軟件編程過程中,通過適當的設置程序陷阱,來強迫程序重新開始運行,以保證程序工作在正常的運行狀態(tài)。
根據溫室控制系統(tǒng)的設計功能需求,詳細設計了溫室監(jiān)控系統(tǒng)的下位機RS485通信、數據采集及控制器的軟件流程。確定了通信幀格式、地址分配方案以及通信超時處理措施。實現了溫室控制系統(tǒng)的下位機軟件功能。系統(tǒng)自2010年4月份在寧夏國家經濟林木種苗快繁工程技術研究中心E溫室投入運行以來,數據通信采集精度都達到了設計要求,效果良好。
[1]張曾科.模糊數學在自動化技術中的應用[M].北京:清華大學出版社,1997:9-26.
[2]龍慶華,智能溫室計算機自動監(jiān)控系統(tǒng)[J].華南師范大學學報(自然科學版),2002(1):5-8.
[3]張智.基于單片機的日光溫室控制系統(tǒng)的設計[J].微計算機信息,2006,22(12):77 -78.
[4]辛萌萌.RS-485通信接口芯片的lC設計與實現[D].大連:大連理工大學,2007.
[5]趙明,劉海江.單片機應用系統(tǒng)中的抗干擾措施[J].儀表技術,2002(6):48-49.
[6]顧慧燕.計算機系統(tǒng)的抗干擾技術[J].信息技術,2003,27(6):61 -62.
[7]李雪松,許峰.單片機應用系統(tǒng)抗干擾問題的解決方案[J].信息技術,2002(2):9-12.