楊思俊
(西安航空職業(yè)技術(shù)學(xué)院電子工程系,陜西西安710089)
隨著計算機(jī)控制技術(shù)的發(fā)展,計算機(jī)被廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)領(lǐng)域中,數(shù)據(jù)采集系統(tǒng)多采用上位機(jī)和下位機(jī)的主從工作方式。因?yàn)閱纹瑱C(jī)具有價格低、功能強(qiáng)、抗干擾能力好、溫限寬和面向控制等特點(diǎn),所以下位機(jī)一般采用單片機(jī)對現(xiàn)場數(shù)據(jù)采集與對設(shè)備一級監(jiān)控;計算機(jī)的分析處理能力較強(qiáng),有友好的人機(jī)界面和大容量的多種存儲方式,故上位機(jī)一般采用計算機(jī)對采集數(shù)據(jù)進(jìn)行圖形顯示、分析以及管理。上位機(jī)與下位機(jī)通過串行接口實(shí)現(xiàn)通信,在本系統(tǒng)采用了Visual Basic 6.0開發(fā)串口通信程序。
太陽能發(fā)電監(jiān)測分上位機(jī)和下位機(jī)兩部分,下位機(jī)對各個模塊的工作輸入電壓、電流,輸出電壓、電流數(shù)據(jù)進(jìn)行存儲、顯示。由于本設(shè)計的太陽能發(fā)電裝置用于通信基站的電源,其應(yīng)用的環(huán)境一般位于偏僻且交通欠發(fā)達(dá)的地區(qū),所以下位機(jī)的數(shù)據(jù)需通過GPRS傳送到上位機(jī),以便于監(jiān)測和故障排除[1-3]。
GPRS模塊(即MC35i)和外部設(shè)備之間的通信協(xié)議是通過AT指令集來完成的。AT指令集是從終端設(shè)備(Terminal Equipment,TE)或數(shù)據(jù)終端設(shè)備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter,TA)或數(shù)據(jù)電路終端設(shè)備(Data Circuit Terminal Equipment,DCE)發(fā)送的。AT+CMGC指令的功能為Send anSMS command(發(fā)出一條短消息)。對短消息的控制有3種模式,即Block Mode、基于AT命令的PDU Mode和Text Mode。目前,PDU Mode應(yīng)用最為廣泛,它不僅支持中文短信,也能發(fā)送英文短信,其短消息正文經(jīng)過十六進(jìn)制編碼后作為一個二進(jìn)制字符串被傳輸。PDU模式收發(fā)短信可以使用3種編碼:7 bit、8 bit和UCS2編碼。7 bit編碼用于發(fā)送普通的ASCLL字符,8 bit編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2編碼用于發(fā)送Unicode字符。短信發(fā)送框圖如圖1所示(圖中XX表示第幾條短信)。
目前市場上支持GPRS的模塊有很多種,綜合考慮后采用西門子的MC35i模塊,該模塊在支持GSM的基礎(chǔ)上增加了對GPRS的支持,上傳波特率可達(dá)21.4 kb/s,下傳波特率最大為85.6 kb/s,并支持CS-1,CS-2,CS-3,CS-4等4種編碼方案,是一個具有較高穩(wěn)定性的工業(yè)及模塊。MC35i的工作電壓范圍為3.3~4.8 V,傳輸功率在GMS 1 800時為1 W,休眠電流為3 mA。MC35i提供一個40引腳的外部控制接口,其中包括了控制、數(shù)據(jù)傳輸、SIM卡、聲音以及電源接口。MC35i接口采用AT指令集,并支持部分西門子的擴(kuò)展AT指令。
圖1 短信發(fā)送框圖Fig.1Sending SMS
MC35i的電源采用單個3.3 V到4.8 V的電源,由于MC35i在進(jìn)行數(shù)據(jù)傳輸或通話過程中峰值電流可能達(dá)到2 A,所以電源必須能夠提供足夠的電流以保證在大電流時電源電壓不低于3.3 V。如果在工作工程中電源電壓下降到低于3.3 V或電壓下降幅度超過400 mV時,MC35i將自動關(guān)閉。比如,在峰值電流2 A時,在線路上的電壓損耗必須考慮,如果線路電阻為50 mΩ,那么電壓損耗為100 mV,因此在布線時必須考慮這些問題。
MC35i的開關(guān)機(jī)需要在模塊的ON/OFF引腳上加上脈寬1 s以上的低電平。當(dāng)模塊處于關(guān)機(jī)狀態(tài)檢測到ON/OFF引腳的下降沿并持續(xù)1 s以上的低電平時啟動整個模塊,同理,當(dāng)模塊啟動后檢測到持續(xù)1 s以上的低電平,則延時8 s關(guān)機(jī)。所有的AT指令操作都必須在開機(jī)狀態(tài)下才能執(zhí)行[4]。
開機(jī)后還要對MC35i進(jìn)行初始化來實(shí)現(xiàn)單片機(jī)對模塊的控制:首先要測試模塊串口的連接狀況,通過發(fā)送AT指令,等待模塊的回復(fù),返回OK則連接成功,沒有響應(yīng)則表示模塊連接存在問題;接著還要向模塊發(fā)送ATEO指令來關(guān)閉回顯。回顯功能主要用于串口調(diào)試,具體應(yīng)用時應(yīng)關(guān)閉該功能,防止回顯字符和返回參數(shù)混合。
MC35i模塊是采用AT 指令集進(jìn)行控制的,采用AT指令集可以實(shí)現(xiàn)模塊參數(shù)的設(shè)置,數(shù)據(jù)的發(fā)送與接收。AT指令集是調(diào)制解調(diào)器通信接口的工業(yè)標(biāo)準(zhǔn),指令由ASCII字符組成,除“A/”、“+++”指令外,所有指令都是以“AT”開頭,以<回車><換行>結(jié)束,絕大多數(shù)指令被執(zhí)行后都有返回參數(shù)。
常見的AT指令有:
設(shè)置通信波特率:使用AT+IPR=19 200命令,把波特率設(shè)為19 200 b/s。
設(shè)置接入網(wǎng)關(guān):通過AT+CGD CONT=1,“IP”?!癈MNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動夢網(wǎng)。
設(shè)置移動終端的類別:通過AT+CGCLASS=“B”設(shè)置移動終端的類別為B類,即同時*多種業(yè)務(wù),但只能運(yùn)行一種業(yè)務(wù),即在同一時間只能使用GPRS上網(wǎng),或者使用GSM的語音通信。
測試GPRS服務(wù)是否開通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著GPRS失敗。中國移動在GPRS與Internet網(wǎng)中間建立了許多的網(wǎng)關(guān)支持節(jié)點(diǎn)(GGSN),以連接GPRS網(wǎng)與外部的Internet網(wǎng)絡(luò)。GPRS模塊可以通過撥“*99***1#”登錄到GGSN上,并通過PPP協(xié)議獲取動態(tài)分配到Internet網(wǎng)的IP地址。
由于Visual Basic 6.0引入了面向?qū)ο蟮木幊虣C(jī)制,巧妙地將Windows編程的復(fù)雜性封裝起來,只需使用窗體和控件等可視化界面設(shè)計程序,從而降低了程序設(shè)計的難度。本文就采用了VB來設(shè)計上位機(jī)軟件,以實(shí)現(xiàn)太陽能發(fā)電監(jiān)測的功能。
1)數(shù)據(jù)傳輸幀格式
下位機(jī)與上位機(jī)通信的數(shù)據(jù)傳輸幀格式為:
地址碼(1)+功能碼(1)+數(shù)據(jù)數(shù)量(1)+數(shù)據(jù)域()+CRC校驗(yàn)(2)
2)上位機(jī)軟件功能碼分類
0x01讀取下位機(jī)歷史數(shù)據(jù)
0x02讀取系統(tǒng)當(dāng)前時間
0x03設(shè)定時間
0x04讀取實(shí)時數(shù)據(jù)
0x05報警指示
VB6.0中,使用MSComm時,首先要在程序中打開相應(yīng)的串口,然后對相應(yīng)的串口通信參數(shù)進(jìn)行設(shè)置[5]。串口通信時,無論發(fā)送還是接收,都要在通信程序中設(shè)置一個Variant類型變量作“中介”。程序設(shè)計如下:
Private Sub MSComm1_OnComm()’串口通信控件設(shè)置
Dim indata As Variant
Select Case MSComm1.CommEven’...通訊事件發(fā)生
Case comEvReceive’...有接收事件發(fā)生
Do While MSComm1.InBufferCount<>0
indata=MSComm1.Input’讀地址碼,功能碼,數(shù)據(jù)數(shù)量,1~3字
emp(i)=AscB(indata)
If emp(0)<>&H3A Then’判斷幀頭
MSComm1.InBufferCount=0’停止接收
Else
i=i+1
End If
Loop
If i=emp(2)+5 Then’接收數(shù)據(jù)總長度
disp_flag=True
i=0
End If
End Select
End Sub
RTHreshold=1’最小接收字符數(shù)為1,當(dāng)接收緩沖區(qū)達(dá)到1時,引發(fā)OnComm事件中的接收事件
MSComm1.Settings=“4800,n,8,1”’設(shè)置通訊參數(shù)MSComm1.PortOpen=True’打開串口
太陽能發(fā)電監(jiān)測主要是對太陽能電源工作時的各模塊的輸入電壓、電流,輸出電壓、電流以及環(huán)境溫度的計算與監(jiān)測。其測試界面如圖2所示。
圖2 實(shí)時數(shù)據(jù)監(jiān)測界面Fig.2Interface of real-time data collection
監(jiān)測系統(tǒng)具有實(shí)時監(jiān)測功能,上位機(jī)每5 s鐘發(fā)送命令,下位機(jī)接收到命令后即刻將實(shí)時數(shù)據(jù)上傳。其讀取下位機(jī)歷史數(shù)據(jù)時需輸入要查詢的起始時間和終止時間,由于下位機(jī)每小時只采樣一個數(shù)據(jù),所以上位機(jī)會顯示出對應(yīng)的數(shù)據(jù)[6],功能界面如圖3所示。
圖3 歷史數(shù)據(jù)查詢界面Fig.3Interface of historical data inquire
地址碼(1)+功能碼(1)+數(shù)據(jù)數(shù)量(1)+起始時間(4)+終止時間(4)+CRCH(1)+CRCL(1)的格式傳輸給下位機(jī),例如:要讀取2007年12月8日9時至2008年2月20日5時的數(shù)據(jù)則幀內(nèi)容為
0x3a0 x010x080x090x080x120x080x050x20 0x02 0x09 0x10 0x81
注:終止時間不應(yīng)超過當(dāng)前時間,起始時間應(yīng)在終止時間之前,則歷史數(shù)據(jù)就會通過GPRS上傳。此外,監(jiān)測系統(tǒng)還具有校時和報警功能,監(jiān)測系統(tǒng)獲取系統(tǒng)時間,按照如下幀格式進(jìn)行對下位機(jī)的時間設(shè)定。
地址碼(1)+功能碼(1)+數(shù)據(jù)數(shù)量(1)+時間(7)+CRCH(1)+CRCL(1)
圖4 系統(tǒng)時間設(shè)置界面Fig.4Interface of system time setting
如果下位機(jī)中的各分機(jī)中出現(xiàn)斷路、短路或通信故障等異常情況時,下位機(jī)即時發(fā)出報警信號,并傳輸給上位機(jī),上位機(jī)接收到信號后進(jìn)行報警提示。
在實(shí)驗(yàn)系統(tǒng)中,為了提高發(fā)電效率,對于太陽能光電池轉(zhuǎn)換效率低的問題,引用了MPPT(最大功率跟蹤)技術(shù)來提高太陽能電池的利用率。分別采集了帶MPPT技術(shù)的太陽能基站電源的控制器與不帶MPPT技術(shù)的控制器的電壓、電流,并將發(fā)電功率進(jìn)行了比較,在設(shè)計中做了大量的實(shí)驗(yàn),采集了輸出電壓、電流,并形成了圖表予以分析。以下是日光強(qiáng)度逐漸增強(qiáng)時的數(shù)據(jù)測試。實(shí)際采集過程是每5 s采集一次,這里將簡單將每隔1分鐘的數(shù)據(jù)進(jìn)行列表分析,如表1所示。
表1 日光強(qiáng)度逐漸增強(qiáng)時數(shù)據(jù)表Tab.1Sunlight gradually increased data
在同樣的外界條件下,日光逐漸升強(qiáng)時引入MPPT技術(shù)的太陽能發(fā)電技術(shù)和無MPPT技術(shù)的情況下,將采集的數(shù)據(jù)進(jìn)行分析,太陽能基站電源發(fā)電功率的比較見圖5曲線所示。
圖5 功率比較Fig.5Power compared
由以上的數(shù)據(jù)可統(tǒng)計,在引入MPPT技術(shù)的太陽能發(fā)電技術(shù)后,發(fā)電功率增長了25.9%。
太陽能發(fā)電監(jiān)測主要是對太陽能電源工作時的各模塊的輸入電壓、電流,輸出電壓、電流以及環(huán)境溫度的計算與監(jiān)測。上位機(jī)每5 s鐘發(fā)送命令,下位機(jī)接收到命令后即刻將實(shí)時數(shù)據(jù)傳送。如果下位機(jī)中的各分機(jī)中出現(xiàn)斷路、短路或通信故障等異常情況時,下位機(jī)即時發(fā)出報警信號,并傳輸給上位機(jī),上位機(jī)接受到信號后進(jìn)行報警提示。
本文通過采用GPRS對數(shù)據(jù)進(jìn)行遠(yuǎn)程傳輸,結(jié)合上位機(jī)軟件的監(jiān)測,使整個系統(tǒng)的應(yīng)用更為便捷,實(shí)驗(yàn)證明,其傳輸與監(jiān)測均具有高的可靠性,為新能源的普及提供了條件。
[1]鄭萬溪,黃元慶,張鑫,等.基于GPRS通信技術(shù)的遠(yuǎn)程氣體檢測系統(tǒng)[J].傳感器與微系統(tǒng),2008,27(2):83-85.ZHENG Wan-xi,HUANG Yuan-qing,ZHANG Xin,et al.Long distance detecting system based on GPRS communication technology[J].Transducer and Microsystem Technologies.2008,27(2):83-85.
[2]Lin C E,Li C,Hou A,et al.A real-time remote control architectureusingmobilecommunication[J].IEEE Transactions on Instrumentation and Measurement,2003,52(4):997-1003.
[3]QIU Wang-biao,QIU Zhi-yuan.Design for temp-humidity control system of tobacco parching House based on Fuzzy-PID Control[C]//Proceedings of the 2006 IEEE International Conference on Mechatronics and Automation,2006:2229-2234.
[4]張占新,孟如,孟慶洪,等.基于MC35的無線數(shù)據(jù)采集系統(tǒng)[J].微計算信息,2005,21(7):100-102.ZHANG Zhan-xin,MENG Ru,MENG Qing-hong,et al.The wireless date acquisition system based on MC35[J].Control and Automation Publication Group,2005,21(7):100-102.
[5]陳三鳳,劉曉波.基于VB6.0與單片機(jī)串行通信的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].計算機(jī)應(yīng)用,2004,24(1)66-68.CHEN San-feng,LIU Xiao-bo.Data-acquisition system design based on serial communication between VB6.0 and SCM[J].Journal of Computer Applications.2004,24(1):66-68.
[6]李芳,賀雨田.基于VB的液壓在線監(jiān)測與故障診斷儀的上位機(jī)軟件設(shè)計[J].石油儀器,2008,22(1):90-92.LI Fang,HE Yu-tian.Software design in host computer of online detecting and failure diagnosis instrument of hydraulic system based on VB[J].Petroleum Instruments,2008,22(1):90-92.