唐艷榮,馮能蓮,郭靖
(1.安徽農(nóng)業(yè)大學(xué) 工學(xué)院,安徽合肥230036;2.北京工業(yè)大學(xué),北京100022)
數(shù)據(jù)采集系統(tǒng)是指將溫度、壓力、電壓、電流、位移等模擬量采集、轉(zhuǎn)化為數(shù)字量后,由計(jì)算機(jī)存儲(chǔ)、處理、顯示或打印的系統(tǒng)[1]。而在實(shí)際應(yīng)用中,往往由于煤田、礦井等惡劣環(huán)境的現(xiàn)場數(shù)據(jù)或大量分布廣泛的現(xiàn)場數(shù)據(jù)不方便進(jìn)行現(xiàn)場采集[2],這就需要采用現(xiàn)代遠(yuǎn)程采集技術(shù)來解決。
隨著移動(dòng)通信技術(shù)的迅速發(fā)展[3],利用無線網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)傳輸被廣泛應(yīng)用于各個(gè)領(lǐng)域[4]。作為第2代移動(dòng)通信向第3代過度的技術(shù)[5],GPRS網(wǎng)絡(luò)比現(xiàn)有的GSM網(wǎng)絡(luò)有以下優(yōu)點(diǎn):實(shí)時(shí)在線、快速登錄、按流量計(jì)費(fèi)、傳輸速率高、支持IP協(xié)議和X.25協(xié)議等[5-7]。本文介紹的系統(tǒng)是以GPRS網(wǎng)絡(luò)為傳輸網(wǎng)絡(luò),飛思卡爾單片機(jī)為控制核心,通過各種傳感器采集混合動(dòng)力試驗(yàn)臺(tái)架的實(shí)驗(yàn)數(shù)據(jù),經(jīng)A/D口轉(zhuǎn)化為數(shù)字量,再由單片機(jī)控制GPRS模塊將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)——監(jiān)控中心。
基于GPRS技術(shù)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)如圖1所示。按功能可分為3個(gè)部分:上位機(jī)、下位機(jī)和通信網(wǎng)絡(luò)。其中上位機(jī)是監(jiān)控中心,下位機(jī)用于現(xiàn)場采集數(shù)據(jù)及控制,而通信網(wǎng)絡(luò)則是把下位機(jī)的數(shù)據(jù)傳輸?shù)缴衔粰C(jī)。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
為了給用戶提供一個(gè)可視化的檢測界面,上位機(jī)采用面向?qū)ο蟮木幊誊浖B編寫的。監(jiān)測界面由控制模塊、實(shí)時(shí)繪制曲線模塊,數(shù)據(jù)接收顯示模塊、數(shù)據(jù)保存模塊和GPRS通信模塊5個(gè)部分組成。其工作原理是:創(chuàng)建一個(gè)服務(wù)器Socket類,設(shè)置其LocalPort屬性,使其作為偵聽端口;然后使用Listen方法進(jìn)入偵聽狀態(tài),等待客戶機(jī)程序的連接請求,若有客戶機(jī)發(fā)出連接請求,服務(wù)器程序則產(chǎn)生ConnectionRequest事件;連接成功后,服務(wù)程序用Accept方法接受客戶機(jī)程序的requestID請求,這樣服務(wù)程序就可以用SendData方法發(fā)送數(shù)據(jù);當(dāng)服務(wù)程序接收到數(shù)據(jù)時(shí),產(chǎn)生DataArrival事件,用GetData方法接受數(shù)據(jù)。接收到的數(shù)據(jù)經(jīng)過TCP/IP包解析處理后用iplotx控件進(jìn)行實(shí)時(shí)曲線繪制,使用Text控件顯示,List控件進(jìn)行保存。用Socket控件實(shí)現(xiàn)GPRS網(wǎng)絡(luò)通信必須要將GPRS網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)連接,其方法是上位機(jī)要在具有一個(gè)獨(dú)立公網(wǎng)IP地址的PC機(jī)環(huán)境下運(yùn)行,且上下位機(jī)要使用同一種協(xié)議。
下位機(jī)即現(xiàn)場數(shù)據(jù)采集系統(tǒng),是由控制核心、傳感器模塊、AD轉(zhuǎn)化模塊、GPRS模塊、PWM波模塊組成。其中控制核心為飛思卡爾DG128單片機(jī),本身帶有AD模塊、PWM模塊、232串口通信模塊等。AD模塊有8路,可以同時(shí)轉(zhuǎn)換8路信號(hào),PWM模塊也可以同時(shí)產(chǎn)生8路PWM波信號(hào)。
由于本系統(tǒng)中同時(shí)采集2路信號(hào),故有2路傳感器:一路采集電壓信號(hào);另一路采集位移信號(hào)。傳感器模塊把采集到的模擬信號(hào)經(jīng)過處理后送到單片機(jī)的AD口,AD模塊把模擬信號(hào)經(jīng)采樣、量化等處理轉(zhuǎn)化成數(shù)字信號(hào),然后由單片機(jī)處理并通過串口把信號(hào)傳送到GPRS模塊,再由GPRS模塊發(fā)送到上位機(jī);GPRS模塊也可以收到上位機(jī)發(fā)送的控制信號(hào),然后傳遞到單片機(jī),單片機(jī)根據(jù)控制信號(hào)命令產(chǎn)生相應(yīng)的PWM波,從而控制被控對象。
GPRS通信模塊負(fù)責(zé)在上位機(jī)與下位機(jī)之間建立無線數(shù)據(jù)傳輸通道。一方面把下位機(jī)采集的數(shù)據(jù)封裝成TCP/IP包通過網(wǎng)絡(luò)傳送到上位機(jī);另一方面把從網(wǎng)絡(luò)中接收的來自上位機(jī)的TCP/IP包解析成相應(yīng)的二進(jìn)制數(shù)據(jù)傳送給下位機(jī)。本系統(tǒng)采用的是SIM300 GPRS模塊,支持TCP/IP協(xié)議,提供RS232串行接口,支持標(biāo)準(zhǔn)AT指令。其實(shí)現(xiàn)網(wǎng)絡(luò)傳輸數(shù)據(jù)的步驟如下:
1)AT 檢查GPRS模塊是否可用,若回應(yīng)OK,則模塊可用,否則模塊不可用;
2)AT+CCID 檢測是否裝有SIM卡;
3)AT+CQMR 檢測軟件版本,5.0以上的才有GPRS功能支持;
4)AT+CSQ 檢測信號(hào)質(zhì)量,確定是否可登上網(wǎng)絡(luò),若返回(10~31,0)的信號(hào)數(shù)字則繼續(xù),如果信號(hào)是(99,99)則應(yīng)該考慮不停的讓模塊搜尋網(wǎng)絡(luò);
5)AT+CGCLASS="B" 設(shè)置模塊工作類型;6)AT+CGATT=1 激活 PDP,獲得 IP;
7)AT+CIPSTART = "TCP","211.71.95.192","2000" 網(wǎng)絡(luò)連接,設(shè)置TCP協(xié)議,IP地址和端口;
8)AT+CIPSEND 若返回“>”,則輸入要傳輸?shù)臄?shù)據(jù),再發(fā)送“CTRL+Z”,即將所要發(fā)送的數(shù)據(jù)發(fā)送到指定IP的服務(wù)器上,否則不能發(fā)送數(shù)據(jù);
9)AT+CIPCLOSE 斷開網(wǎng)絡(luò)連接,此命令只有在TCP/UDP處于CONNECT OK的狀態(tài)下才返回OK,否則返回ERROR。
在運(yùn)行GPRS網(wǎng)絡(luò)傳輸數(shù)據(jù)的過程中,以上AT指令必須設(shè)置,且相鄰指令間須有延時(shí),否則GPRS模塊無法正常工作。
整個(gè)遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的軟件實(shí)現(xiàn)主要包括上位機(jī)監(jiān)控中心和下位機(jī)單片機(jī)控制的數(shù)據(jù)采集設(shè)備的軟件設(shè)計(jì)。其中上位機(jī)監(jiān)控中心軟件設(shè)計(jì)主要是顯示客戶端IP地址、端口號(hào)、數(shù)據(jù)顯示、存儲(chǔ)、實(shí)時(shí)繪制曲線以及與下位機(jī)進(jìn)行通信和遠(yuǎn)程控制;下位機(jī)以飛思卡爾DG128單片機(jī)為核心,輔助外圍設(shè)備,主要負(fù)責(zé)各個(gè)功能模塊的調(diào)度。在軟件設(shè)計(jì)過程中,上位機(jī)和下位機(jī)的通信協(xié)議是TCP/IP協(xié)議,這是因?yàn)門CP/IP協(xié)議可以直接與Internet互通;其次TCP協(xié)議是基于連接的協(xié)議,在傳輸?shù)倪^程中一旦發(fā)現(xiàn)問題就會(huì)發(fā)出信號(hào),要求重新傳輸,知道所有數(shù)據(jù)安全正確的傳輸?shù)侥康牡?;再次TCP協(xié)議的數(shù)據(jù)格式是“TCP頭部+實(shí)際數(shù)據(jù)”,TCP數(shù)據(jù)頭包括源和目標(biāo)主機(jī)端口號(hào)、順序號(hào)、確認(rèn)號(hào)、校驗(yàn)字等,這樣可以提高數(shù)據(jù)傳輸?shù)男室约皽p少誤碼、丟失數(shù)據(jù)等的情況。主程序結(jié)構(gòu)如圖2所示。主程序初始化后進(jìn)入循環(huán)狀態(tài),有數(shù)據(jù)傳輸過來時(shí)執(zhí)行中斷,對數(shù)據(jù)進(jìn)行處理,然后執(zhí)行相應(yīng)的操作,否則一直處于等待狀態(tài),直到有新的數(shù)據(jù)要接收。
圖2 主程序結(jié)構(gòu)圖
本次試驗(yàn)以混合動(dòng)力試驗(yàn)臺(tái)架為被控對象,采集的主要參數(shù)是其臺(tái)架上電機(jī)的轉(zhuǎn)速和轉(zhuǎn)矩。圖3~4分別是試驗(yàn)前、后上位機(jī)界面圖。
圖3 試驗(yàn)前上位機(jī)界面
圖4 試驗(yàn)中上位機(jī)界面
比較圖3與圖4可看出,當(dāng)GPRS通信連接后,上位機(jī)和下位機(jī)便可通信,圖4中顯示的客戶端IP即下位機(jī)的IP地址。下位機(jī)有數(shù)據(jù)傳輸時(shí),上位機(jī)便可以在文本框中顯示出傳輸數(shù)據(jù),且在列表框中也可顯示,還可保存,同時(shí)接收到的數(shù)據(jù)也可被實(shí)時(shí)繪制成曲線并加以保存。從圖4中曲線變化可看出轉(zhuǎn)速和轉(zhuǎn)矩的變化情況,當(dāng)上位機(jī)一直操作加速這一動(dòng)作,電機(jī)就會(huì)一直加速,當(dāng)上位機(jī)不進(jìn)行操作,電機(jī)則保持當(dāng)前的速度勻速轉(zhuǎn)動(dòng)。
本文主要以公共無線廣域網(wǎng)絡(luò)作為載體,將遠(yuǎn)程環(huán)境采集到實(shí)時(shí)數(shù)據(jù),通過無線GPRS模塊傳送到控制中心,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控及實(shí)現(xiàn)數(shù)據(jù)管理。系統(tǒng)運(yùn)行穩(wěn)定可靠,克服了傳統(tǒng)環(huán)境監(jiān)測系統(tǒng)存在的問題,滿足了對環(huán)境監(jiān)測的要求。這一系統(tǒng)只要稍作改動(dòng),就可應(yīng)用于電力抄表、農(nóng)業(yè)生產(chǎn)監(jiān)測、交通狀況監(jiān)測、礦井監(jiān)測等領(lǐng)域,應(yīng)用前景廣泛。
[1]薛家駒.基于GPRS的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)[D].杭州:杭州電子科技大學(xué),2006.
[2]吳葉蘭,廉小親,張曉力,等.一種基于GPRS的無線數(shù)據(jù)采集終端設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,(20):55-57.
[3]蔣學(xué)程,趙國良.單片機(jī)數(shù)據(jù)無線傳輸[J].應(yīng)用科技,2005,(4):28-30.
[4]侯婷,楊洪業(yè),李俊芬,等.GPRS無線數(shù)據(jù)傳輸終端的設(shè) 計(jì)和實(shí) 現(xiàn)[J].微 計(jì) 算 機(jī) 信 息,2006(23):287-289,159.
[5]韓亞東.基于GPRS技術(shù)的無線遠(yuǎn)程監(jiān)測系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2009.
[6]郭啟軍.基于GPRS的無線數(shù)據(jù)傳輸系統(tǒng)的研究與設(shè)計(jì)[D].浙江:浙江師范大學(xué),2009.
[7]逄棟.基于GPRS的無刷直流電機(jī)的遠(yuǎn)程監(jiān)控系統(tǒng)[D].江蘇:江蘇大學(xué),2010.