李玉霞 狄敬國(guó)
摘要為了減輕溫室管理的難度,實(shí)現(xiàn)溫室的遠(yuǎn)程監(jiān)控,提出了一種新型智能化的溫室控制方法,采用VC++進(jìn)行編程,實(shí)現(xiàn)計(jì)算機(jī)與PLC的遠(yuǎn)程通信,可以靈活地監(jiān)測(cè)控制溫室里的溫度、潮濕度、光照強(qiáng)度等。操作控制方便,工作可靠穩(wěn)定,環(huán)保節(jié)能。實(shí)際操作證實(shí),該遠(yuǎn)程通信技術(shù)在溫室的自動(dòng)遠(yuǎn)程控制方面起到了很大的作用,提高了勞動(dòng)效率和農(nóng)業(yè)管理水平。
關(guān)鍵詞PLC;VC++;遠(yuǎn)程通信
中圖分類(lèi)號(hào)S273文獻(xiàn)標(biāo)識(shí)碼A文章編號(hào)0517-6611(2014)09-02799-02
基金項(xiàng)目山東省星火計(jì)劃項(xiàng)目(2012XH11009)。
作者簡(jiǎn)介李玉霞(1979- ),女,山東萊蕪人,講師,從事通信技術(shù)研究。
監(jiān)測(cè)控制溫室環(huán)境要充分根據(jù)客觀的自然條件,例如太陽(yáng)光照、雨水等非人為資源,進(jìn)一步通過(guò)操作調(diào)節(jié)溫室內(nèi)相應(yīng)的氣溫、潮濕度、光照強(qiáng)度等必須的生長(zhǎng)環(huán)境參數(shù),才可以給溫室內(nèi)的植物提供優(yōu)良的生長(zhǎng)環(huán)境,達(dá)到優(yōu)質(zhì)、高產(chǎn)、高效的目的,從而提高經(jīng)濟(jì)效益[1]。為了使人們的生活更加方便,多種作物、水果蔬菜必須在溫室中種植。該溫室控制系統(tǒng)采用PLC作為控制器。PLC采集并分析溫室的溫度、濕度、光照等數(shù)據(jù),通過(guò)控制加熱器、通風(fēng)機(jī)、移動(dòng)噴灌等設(shè)備,達(dá)到自動(dòng)控制各項(xiàng)參數(shù)的目的。
為減輕溫室管理的難度,實(shí)現(xiàn)對(duì)溫室的遠(yuǎn)程監(jiān)控與管理,筆者基于FINS協(xié)議實(shí)現(xiàn)了計(jì)算機(jī)與PLC的遠(yuǎn)程通信。計(jì)算機(jī)采用VC++ 6.0編程,借助現(xiàn)有的電話網(wǎng)絡(luò)可以方便地讀取參數(shù)數(shù)據(jù),并控制溫室的各種設(shè)備,方法簡(jiǎn)單,實(shí)用性強(qiáng),特別適合居住地與溫室相距較遠(yuǎn)、數(shù)據(jù)量較小的場(chǎng)合。
1硬件設(shè)計(jì)
該設(shè)計(jì)以O(shè)MRON公司的CP1H PLC作為溫室控制器。CP1H主機(jī)支持模擬量輸入輸出,無(wú)需額外擴(kuò)展,節(jié)省成本。溫室內(nèi)現(xiàn)場(chǎng)數(shù)據(jù)信息的采集是利用不同的傳感器,例如對(duì)溫度數(shù)據(jù)的采集使用溫度傳感器,對(duì)光照強(qiáng)度參數(shù)的采集利用光電傳感器,對(duì)濕度數(shù)據(jù)的采集利用濕度傳感器等。根據(jù)所采集信號(hào)控制調(diào)溫抽濕風(fēng)扇、溫室內(nèi)外設(shè)置的遮陽(yáng)網(wǎng)、灌溉用的水泵、風(fēng)機(jī)等設(shè)備,從而達(dá)到對(duì)溫室的智能操控調(diào)節(jié),能夠靈活自主地對(duì)溫室內(nèi)的相應(yīng)信號(hào)參數(shù)進(jìn)行調(diào)節(jié),對(duì)溫室內(nèi)的作物生長(zhǎng)參數(shù)能夠進(jìn)行自動(dòng)監(jiān)控,使系統(tǒng)的可維護(hù)性和可擴(kuò)展性進(jìn)一步得到提升。
下位PLC的監(jiān)測(cè)控制是由上位機(jī)來(lái)完成的,該系統(tǒng)采用的是計(jì)算機(jī),從而完成了計(jì)算機(jī)遠(yuǎn)程對(duì)溫室相應(yīng)參數(shù)的操作。CP1H型PLC上沒(méi)有串行接口,需要加裝 RS232C串行通信模塊(型號(hào)為CP1WCIF01),該通信模塊支持多種通信功能。CP1H型PLC是OMRON的新型PLC,數(shù)據(jù)區(qū)有較大擴(kuò)充,其通信協(xié)議也有很大變化,因此該系統(tǒng)采用FINS通信協(xié)議實(shí)現(xiàn)通信[2]。計(jì)算機(jī)與PLC都要連接調(diào)制解調(diào)器,計(jì)算機(jī)可以讀寫(xiě)PLC的數(shù)據(jù)甚至控制其運(yùn)行,從而實(shí)現(xiàn)上位計(jì)算機(jī)對(duì)溫室的遠(yuǎn)程管理與監(jiān)控。通信結(jié)構(gòu)如圖1所示。
3FINS通信協(xié)議
FINS通信協(xié)議是OMRON網(wǎng)絡(luò)通信的核心,用于工廠自動(dòng)化網(wǎng)絡(luò)的指令響應(yīng)系統(tǒng)。FINS通信幀包括FINS指令幀和FINS響應(yīng)幀兩種形式。兩種形式的幀都是由FINS報(bào)頭(存儲(chǔ)傳輸控制信息)、FINS指令域(存儲(chǔ)1個(gè)FINS指令)以及FINS參數(shù)/數(shù)據(jù)域(存儲(chǔ)指令參數(shù)和發(fā)送/響應(yīng)數(shù)據(jù))3個(gè)部分所組成的。需要特別指出的是在用FINS協(xié)議完成電腦與PLC的通訊時(shí),要結(jié)合OMRON公司的HOSTLINK協(xié)議來(lái)實(shí)現(xiàn),即在FINS數(shù)據(jù)幀前后加入HOSTLINK的起始符、校驗(yàn)碼和結(jié)束符等信息。通信幀的開(kāi)始和結(jié)束分別用起始符及設(shè)備號(hào)和校驗(yàn)碼及結(jié)束符標(biāo)示。響應(yīng)幀中還包括響應(yīng)碼。FINS嵌入HOST-LINK后,完整的通信幀格式如圖2所示。
4計(jì)算機(jī)程序設(shè)計(jì)
VC++6.0中可以利用MSComm控件通過(guò)串行口發(fā)送和接收數(shù)據(jù)。如果通過(guò)串口連接Modem,則可以經(jīng)過(guò)電話線與遠(yuǎn)程設(shè)備進(jìn)行數(shù)據(jù)交換。MSComm控件提供了事件驅(qū)動(dòng)法來(lái)處理串口數(shù)據(jù)交換。該方法利用OnComm事件捕獲通信數(shù)據(jù),當(dāng)CommEvent屬性發(fā)生變化時(shí),就產(chǎn)生事件并等待相應(yīng)處理[3]。
上位機(jī)對(duì)PLC進(jìn)行讀寫(xiě)操作時(shí),上位機(jī)先發(fā)出命令給PLC,啟動(dòng)通信過(guò)程,并接收PLC的返回?cái)?shù)據(jù)[4]。程序主要由串口初始化、Modem撥號(hào)、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收與校驗(yàn)碼計(jì)算等幾部分組成。
4.1Modem撥號(hào)Modem啟動(dòng)后首先進(jìn)入命令狀態(tài),準(zhǔn)備接收和解釋上位機(jī)發(fā)來(lái)的AT命令,連接后進(jìn)入在線狀態(tài)開(kāi)始數(shù)據(jù)的發(fā)送和接收,此時(shí)不接收用戶命令,直至上位機(jī)發(fā)送“+++”后,再進(jìn)入命令狀態(tài)。Modem命令格式是AT+命令及其參數(shù)。該程序使用音頻撥號(hào)ATDT+電話號(hào)碼,上位機(jī)通過(guò)Modem與遠(yuǎn)程PLC建立通信。撥號(hào)成功后,響應(yīng)數(shù)據(jù)顯示: