【摘要】本文利用VB軟件完成獨立光伏發(fā)電系統(tǒng)的上位機(jī)部分設(shè)計,通過VB軟件中的MSComm控件、Picture控件、Timer控件等控件實現(xiàn)系統(tǒng)的數(shù)據(jù)采集與遠(yuǎn)程監(jiān)控。文中利用VB編程與RS-232口進(jìn)行串行通信,實現(xiàn)了對現(xiàn)場數(shù)據(jù)的自動采集。重點利用VB編程實現(xiàn)串口通信,并且進(jìn)行數(shù)據(jù)動態(tài)接收保存,將接到的數(shù)據(jù)賦值于全局變量,達(dá)到可以圖表繪制曲線。實際運(yùn)行表明,利用VB完成獨立光伏發(fā)電系統(tǒng)具有動態(tài)顯示功能強(qiáng),可視性強(qiáng),為故障預(yù)報與故障診斷模塊提供了基礎(chǔ)等優(yōu)點。
【關(guān)鍵詞】VB;光伏;數(shù)據(jù)采集;遠(yuǎn)程監(jiān)控
1.引言
工業(yè)革命給人類歷史帶來了輝煌的文明,但同時也造成資源的極大浪費和生態(tài)環(huán)境的破壞,能源問題是全世界都在關(guān)注的問題。因此,尋求一種新的、無污染的、儲量豐富的替代能源迫在眉睫。而與其他能源相比,太陽能具有許多明顯的優(yōu)勢,諸如不受地域限制、能源潔凈、穩(wěn)定性高、無噪聲等。近年來隨著科學(xué)技術(shù)的不斷提升,商品化的太陽能光伏電池的轉(zhuǎn)換效率已達(dá)到18%,使得其應(yīng)用范圍更加寬廣[1]。在電力應(yīng)用方面太陽能利用有并網(wǎng)發(fā)電的家用型發(fā)電系統(tǒng)、獨立供電型的照明系統(tǒng)、一般電池儲能應(yīng)用以及電機(jī)驅(qū)動應(yīng)用。本文主要討論獨立發(fā)電的光伏系統(tǒng)的上位機(jī)部分。
數(shù)據(jù)采集是數(shù)據(jù)處理與分析中的首要環(huán)節(jié)。由于在編程時,要涉及到對硬件的控制,因此,選擇C語言編程的程序員居多,也有選擇C++的少數(shù)程序員。但這兩種經(jīng)典語言掌握難度大,可讀性差。本文采用面向?qū)ο蟮目梢暬木幊陶Z言VB從根本上解決了以上問題,只要有一定編程基礎(chǔ)的技術(shù)人員,均可實現(xiàn)自己編程。
2.太陽能光伏發(fā)電系統(tǒng)
典型的獨立光伏發(fā)電系統(tǒng)是由光伏陣列、MPPT控制器、蓄電池組、交直流變換器和交直流負(fù)載等構(gòu)成,如圖1所示。
圖1 典型光伏發(fā)電系統(tǒng)圖
太陽能電池單體是用于光電轉(zhuǎn)換的最小單元,太陽能電池單體是由一片單晶硅片構(gòu)成的。多個太陽能電池單體通過并聯(lián)、串聯(lián)后構(gòu)成太陽能電池模塊。多個太陽能電池模塊封裝后構(gòu)成太陽能電池陣列,也稱為光伏陣列[2]。太陽能電池單體的功率規(guī)格一般為幾瓦至幾百余瓦不等,是可以單獨作為電源使用的最小單元,將許多個太陽能電池單體串并聯(lián)并且封裝后組成的光伏陣列可以滿足負(fù)載所要求的輸出功率。
蓄電池組主要有兩個作用:一是貯存光伏陣列受光照時所產(chǎn)生的電能;二是隨時向直流負(fù)載或者交流負(fù)載供電。
交直流變換器是光伏發(fā)電系統(tǒng)的關(guān)鍵部件,變換器分直流變換器和交流變換器兩種。直流變換器類似于開關(guān)電源,將直流電壓和電流變換為不同電壓等級的直流電壓和電流;而交流逆變器是將直流電力逆變成交流電力。
3.設(shè)計原則
3.1 數(shù)據(jù)流的設(shè)計原則
在獨立光伏發(fā)電數(shù)據(jù)采集系統(tǒng)中應(yīng)用數(shù)據(jù)流設(shè)計,初步分析可知:光伏陣列被太陽照射后產(chǎn)生的物理量和電氣量被傳感器采集處理后轉(zhuǎn)變?yōu)殡娦盘?;電信號進(jìn)過調(diào)理和模數(shù)轉(zhuǎn)換后生產(chǎn)數(shù)字信號;數(shù)字信號通過接口進(jìn)入VB平臺;最后通過人機(jī)界面顯示數(shù)據(jù)和圖表。
數(shù)據(jù)流計算不同于傳統(tǒng)的計算模式,關(guān)鍵在與數(shù)據(jù)流思想的數(shù)據(jù)本身具有到達(dá)快速、范圍廣泛和持續(xù)的到達(dá)時間這三點。
因此本數(shù)據(jù)采集系統(tǒng)實質(zhì)就是對數(shù)據(jù)流進(jìn)行獲得、處理和顯示的過程。獨立光伏發(fā)電數(shù)據(jù)采集系統(tǒng)就是數(shù)據(jù)流路徑設(shè)計和模塊化的實現(xiàn)過程的統(tǒng)一。
3.2 模塊化的思想
模塊化是指解決一個復(fù)雜問題時自頂向下逐層把系統(tǒng)劃分為若干模塊的過程,每個模塊完成每個子程序的特定功能,所有的模塊通過某種邏輯組裝起來,成為一個完整的能夠完成整個系統(tǒng)功能的整體。模塊化思想指導(dǎo)我們處理復(fù)雜系統(tǒng)時,可分割、組織和打包系統(tǒng),將復(fù)雜系統(tǒng)分解為更好的可實現(xiàn)和管理的模塊。
用VB編程生產(chǎn)的獨立光伏發(fā)電數(shù)據(jù)采集系統(tǒng)采用的就是模塊化的思想。依據(jù)模塊化,可以定義它的接口,包括了輸入輸出數(shù)據(jù),控制信號和狀態(tài)信號。
4.數(shù)據(jù)采集
4.1 RS232串口通信標(biāo)準(zhǔn)
本數(shù)據(jù)采集系統(tǒng)采用RS-232串口通信標(biāo)準(zhǔn)。RS232是美國電子工業(yè)聯(lián)盟(EIA)制定的串行數(shù)據(jù)通信的接口標(biāo)準(zhǔn)[3]。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信。一般PC機(jī)上會有兩組RS232接口,通常稱為COM1和COM2。串口按位發(fā)送和接收字節(jié)。對于串口通信協(xié)議來說,最重要的參數(shù)是:波特率、數(shù)據(jù)位、停止位和奇偶校驗位。對于本獨立光伏運(yùn)行數(shù)據(jù)采集系統(tǒng)來說,可將串口通信協(xié)議設(shè)定為:MSComm1.Settings=”4800,n,8,1”[4]。RS232接口電平采用負(fù)邏輯電平:-15~-3V為邏輯1;+15~+3V為邏輯0。
利用RS-232串行通信接口可以實現(xiàn)兩臺PC機(jī)的點對點之間的通信?,F(xiàn)在計算機(jī)上一般只提供DB-9連接器,并且都為公頭。如圖2所示。
9行串行口的各個針腳功能為:1腳DCD用作載波信號檢測端;2腳RXD為接收數(shù)據(jù)端;3腳TXD為發(fā)送數(shù)據(jù)端;4腳DTR說明數(shù)據(jù)終端是否準(zhǔn)備好;5腳GND接信號地線;6腳DSR說明數(shù)據(jù)裝置是否準(zhǔn)備好;7腳RTS為請求發(fā)送端;8腳CTS為清除發(fā)送端;9腳RI為振鈴信號指示端。
4.2 程序流程
系統(tǒng)程序主要完成接收數(shù)據(jù)、處理數(shù)據(jù)并且繪制數(shù)據(jù)曲線圖的功能。
流程如圖3所示。
5.具體實現(xiàn)
5.1 實現(xiàn)過程
使用VB串口控件MSComm實現(xiàn)通信。選擇Picture控件繪圖作為數(shù)據(jù)采集圖形的顯示控件。要實現(xiàn)數(shù)據(jù)實時采集和動態(tài)圖形顯示還需要Timer控件的配合使用。
5.2 外觀設(shè)計
本系統(tǒng)的界面包括標(biāo)題模塊、運(yùn)行狀況模塊、菜單模塊和圖像顯示模塊。
數(shù)據(jù)采集界面的整體布局如圖4所示。
如圖4所示,我們在VB新建的Form窗體中:
(1)添加一個Picture控件,作為存放湘潭大學(xué)?;盏娘@示控件。
(2)在Picture控件右邊,添加一個Text控件用作標(biāo)題欄,邊框?qū)傩栽O(shè)置為顯示邊框。
(3)Form窗體的右上角用一個Frame控件作為數(shù)據(jù)監(jiān)測窗口。用Shape控件顯示串口通信時正?;蛘吖收系臓顟B(tài)。如果上位機(jī)與下位機(jī)通信正常,則光電池、蓄電池與逆變器的狀態(tài)為正常并且用綠色來顯示。如果通信不正常,則在光電池、蓄電池、逆變器對應(yīng)部分用紅色來顯示通信故障,通知程序員檢查。
(4)Form窗體的主體由三個Command控件和三個Picture控件組成。Command控件用于控制,Picutre控件用于顯示實時數(shù)據(jù)采集曲線。當(dāng)系統(tǒng)使用人員點擊對應(yīng)的光電池、蓄電池、環(huán)境的按鈕,將會在其對應(yīng)的Picture控件中顯示相應(yīng)的實時數(shù)據(jù)采集曲線。
(5)Form窗體的右下角添加一個MSComm控件和三個Timer控件以及一個幫助按鈕。MSComm控件的添加步驟如下:
選擇“工程”菜單下得“部件”子菜單,在彈出的“部件”對話框中,在“控件”選項卡屬性中選中“Microsoft Comm Control 6.0”復(fù)選框,如圖5所示,單擊“確定”按鈕后,在工具箱中就出現(xiàn)了MSComm控件。
5.3 核心部分代碼設(shè)計
Dim Inputsignal As Integer
Private Sub Form_Load()
MSComm1.Settings=\"4800,n,8,1\"
MSComm1.CommPort=5
MSComm1.InputMode=0'以文本方式取回傳入的數(shù)據(jù)
MSComm1.InputLen=0'一次讀取所有數(shù)據(jù)
MSComm1.InBufferSize=512'設(shè)置接收緩沖區(qū)512Byte
MSComm1.InBufferCount=0'清空接收緩沖區(qū)
MSComm1.OutBufferSize=512'設(shè)置發(fā)送緩沖區(qū)512Byte
MSComm1.OutBufferCount=0'清空發(fā)送緩沖區(qū)
MSComm1.RThreshold=1'每個字符到接收緩沖區(qū)觸發(fā)發(fā)接收事件
MSComm1.SThreshold=1'每個字符到發(fā)送緩沖區(qū)都觸發(fā)發(fā)送事件
MSComm1.PortOpen=True'打開串口
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Inputsignal=MSCom1.Input
Text2.Text=Asc(Inputsignal)
Case Else
End Select
End Sub
。。。。。。
5.4 運(yùn)行結(jié)果
程序調(diào)試后,上位機(jī)和下位機(jī)相互連接,對一天的某個時刻進(jìn)行實地測量。并且對溫度進(jìn)行測量。結(jié)果如圖6所示。
6.結(jié)論
本文利用VB軟件完成太陽能光伏發(fā)電系統(tǒng)的上位機(jī)部分設(shè)計,利用到了VB軟件中的MSComm控件、Picture控件、Timer控件等控件。使得基于VB設(shè)計的數(shù)據(jù)采集界面便于用于實際檢測中。
但是由于時間與場地的關(guān)系,不能長時間測量該系統(tǒng)的穩(wěn)定性,且在美觀上該系統(tǒng)界面還有待改進(jìn)。在系統(tǒng)的封裝上還有待加強(qiáng)。
參考文獻(xiàn)
[1]吳財福,張健軒,陳裕愷.太陽能光伏并網(wǎng)發(fā)電及照明系統(tǒng)[M].北京:科學(xué)出版社,2009.
[2]馮垛生.太陽能發(fā)電原理與應(yīng)用[M].北京:人民郵電出版社,2007.
[3]謝標(biāo)鍇(Xie Biaokai).基于LabVIEW的光伏運(yùn)行數(shù)據(jù)采集分析系統(tǒng)(A LabVIEW Based Data Acquisition and Analysis System for Photovoltaic Systemes Performance Optical Engineering)[D].中山:中山大學(xué)光學(xué)工程(Zhongshan university optical engineering),2009.
[4]李江全,湯智輝,朱東芹.Visual Basic數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.
[5]田啟明,張焰林,曹月芹,陳武.Visual Basic程序設(shè)計案例驅(qū)動型教程[M].北京:國防工業(yè)出版社,2008.
[6]安迎迎,孫鳳英(An Yingying,Sun Fengying).基于VB的路面平整度檢測系統(tǒng)數(shù)據(jù)采集界面設(shè)計(Design of Data Acquisition Interface of Pavement Detection System Based on VB)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新(Development Innovation of Machinery Electrical Products),2011,24(1):158-159.
[7]王璐,許雪峰(Wang Lu,Xu Xuefeng).VB串行通信在監(jiān)測系統(tǒng)中的應(yīng)用(Application of Serial Communication in the Monitoring System Based on VB)[J].實驗科學(xué)與技術(shù)(Experiment Science and Technology),2011,9(5):14-15.
[8]喬文剛,汪友龍,李宣,孟有平(Qiao Wengang,Wang Youlong,Li Xuan,Meng Youping).關(guān)于用VB實現(xiàn)實時測試曲線的動態(tài)顯示研究(Research on Dynamic Display of Real-time Testing Curve Actualized by VB)[J].機(jī)床與液壓(Machine tool hydraulics),2009,37(1):126-127.
[9]Kang Jianli,Wu Zhiqiang.Methods of data fitting and graph drawing in Visual Basic[J].Computers and Applied Chemistry,2009,26(6):763-766.
[10]Wang Lu,Xu Xuefeng,Wang Jian.Application of serial communication in energy monitoring system based on VB[J].Journal on Nanchang Institute of Technology,2011,30(1):33-37.
基金項目:湖南省自科基金(項目編號:11JJ8004)、湖南省科技廳項目(項目編號:2010FJ3116)、湖南省教育廳重點項目(項目編號:10A114)。