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