海 濤 梁挺興 彭舜杰 林 波 朱 浩 陳 凱
(廣西大學(xué)電氣工程學(xué)院1,廣西 南寧 530004;廣西比迪光電科技工程有限責(zé)任公司2,廣西 南寧 530031)
遠程監(jiān)控技術(shù)已在農(nóng)業(yè)、電力行業(yè)、工業(yè)、軍事等領(lǐng)域得到廣泛的應(yīng)用[1]。隨著光伏發(fā)電技術(shù)的發(fā)展,光伏裝機容量在電網(wǎng)中所占的比例不斷增加,越來越多的獨立和并網(wǎng)光伏電站即將或已經(jīng)投入運行使用。當(dāng)光伏電站需要更為智能化、人性化的科學(xué)管理時,可靈活擴展的遠程光伏監(jiān)控系統(tǒng)則顯得至關(guān)重要[2]。市場上的很多光伏設(shè)備是國內(nèi)外不同廠商生產(chǎn)的不同產(chǎn)品,大部分廠商只開發(fā)用于自己產(chǎn)品的監(jiān)控平臺。當(dāng)一個已被投入運行的光伏系統(tǒng)需要擴大運行規(guī)模時,需對原有的監(jiān)控系統(tǒng)重新部署,其面臨的難題將是:添加原系統(tǒng)沒有的新設(shè)備,淘汰落后的設(shè)備;原來的光伏設(shè)備已經(jīng)不再生產(chǎn)或者最新的光伏設(shè)備的成本更低、性能更好;添加新的控制和管理功能。漫長的重部署過程將影響光伏電站的生產(chǎn)過程,故提出一種可靈活擴展的光伏監(jiān)控系統(tǒng)方案,縮短重新設(shè)計監(jiān)控系統(tǒng)的時間,作出少量的改變,即可讓擴展后的系統(tǒng)重新運行;采用多線程的設(shè)計方案提高系統(tǒng)運行的速度。
按通信介質(zhì)分類,光伏遠程監(jiān)控的方式可分為有線監(jiān)控和無線監(jiān)控兩類[3]。本文重點介紹如何實現(xiàn)有線光伏監(jiān)控系統(tǒng)的靈活擴展部分,3 種常見的有線監(jiān)控方案對比說明如下。
方式1:下位機采用如RS-485 總線等工業(yè)總線直接與上位機通信。該方式的特點是能小范圍內(nèi)實現(xiàn)監(jiān)控,結(jié)構(gòu)簡單,成本低。缺點是無法實現(xiàn)遠距離監(jiān)控,在單總線上,節(jié)點數(shù)量受限制,不同通信速率的設(shè)備很難共存,無法實現(xiàn)靈活的擴展。
方式2:采用公用電話網(wǎng)監(jiān)控方式。該方式的特點是通過對連接公用電話網(wǎng)的Modem 進行撥號,其實就是大部分居民家里很常見的上網(wǎng)方式。雖然該方式能實現(xiàn)遠距離監(jiān)控,但是本地主機和遠程主機都必須配置Modem,控制方式也相對繁雜,使用不廣泛[4]。
方式3:在第一種方式的基礎(chǔ)上,將RS-485 等通信接口轉(zhuǎn)換為以太網(wǎng)接口,并通過工業(yè)以太網(wǎng)交換機和路由器實現(xiàn)局域網(wǎng)和互聯(lián)網(wǎng)的監(jiān)控方式。其特點是監(jiān)控范圍廣、通信速度快、節(jié)點數(shù)無限制,可在此基礎(chǔ)上實現(xiàn)遠程監(jiān)控系統(tǒng)的靈活擴展[5]。
基于光伏電站地處偏遠、占地遼闊的特點,本文選擇方式3 作為光伏系統(tǒng)的遠程監(jiān)控方案。光伏發(fā)電發(fā)展迅猛,在市場上能買到各式各樣的光伏設(shè)備[6]。研發(fā)光伏設(shè)備的廠商為搶占市場份額,必須遵循業(yè)內(nèi)標(biāo)準(zhǔn)。大多數(shù)光伏設(shè)備都配置了RS-485 通信接口+Modbus 通信協(xié)議的通信選擇,故提出基于串口服務(wù)器(serial port server,SPS)的以太網(wǎng)監(jiān)控方案,如圖1所示。
圖1 基于串口服務(wù)器的以太網(wǎng)監(jiān)控方案Fig.1 Ethernet monitoring solution based on serial port server
實驗中,使用6 塊標(biāo)稱功率為50 W 的光伏組件組成光伏陣列,先串聯(lián)兩塊,再并聯(lián)三路輸出,經(jīng)繼電保護模塊后,由匯流箱匯集成一路輸出,最后由并網(wǎng)逆變器輸送至電網(wǎng)。在匯流箱中可以獲取光伏陣列的輸出參數(shù),通過交流電采集模塊可采集并網(wǎng)逆變器的輸出參數(shù),由于兩者輸出的參數(shù)變化快,將它們連接到波特率較大的串口服務(wù)器1。繼電保護模塊和由溫度采集模塊和太陽總輻射傳感器組成的環(huán)境氣象儀并不需要很快的通信速率,將它們連接到波特率較小的串口服務(wù)器2。串口服務(wù)器實現(xiàn)了RS-485 轉(zhuǎn)以太網(wǎng)的功能,是方式3 的關(guān)鍵部件。SPS1、SPS2和本地主機都要經(jīng)交換機而處于同一個網(wǎng)段。
串口服務(wù)器(SPS)可以很大程度地降低系統(tǒng)復(fù)雜性和提高系統(tǒng)的可擴展性,不同波特率的設(shè)備只需接在對應(yīng)的SPS 上,監(jiān)控軟件統(tǒng)一地只負(fù)責(zé)對SPS 以太網(wǎng)端的操作,減小了設(shè)計監(jiān)控系統(tǒng)的工作量。靈活地利用這個特性就能實現(xiàn)可擴展的遠程監(jiān)控平臺[7]。該方案使用的SPS 支持TCP 協(xié)議,使用VB.NET 語言的Socket 接口完成對底層設(shè)備的控制。SPS 必須配置后才能使用,而配置過程也是比較簡單的,只需在瀏覽器中輸入默認(rèn)地址進入Web 管理頁面,設(shè)置相關(guān)IP 和串口相關(guān)的參數(shù)[8]。
在Microsoft Visual Studio 2010 的集成開發(fā)環(huán)境中,使用面向?qū)ο蟮腣B.NET 語言編寫程序,其中VB.NET 語言中所提供的部分功能和接口是該方案實現(xiàn)光伏監(jiān)控系統(tǒng)靈活擴展的邏輯基礎(chǔ)。使用SQL Server 2000 數(shù)據(jù)庫存儲監(jiān)控系統(tǒng)的歷史數(shù)據(jù)。
本方案的主要目的是在硬件和程序邏輯上作出很小的改動,便可以實現(xiàn)光伏遠程監(jiān)控系統(tǒng)的靈活擴展。在軟件部分實現(xiàn)系統(tǒng)靈活擴展的關(guān)鍵是:將不同類型、不同型號的設(shè)備定義成對應(yīng)的設(shè)備類,系統(tǒng)擴展則表現(xiàn)為對應(yīng)設(shè)備類的增減。
基本的光伏發(fā)電系統(tǒng)由光伏陣列、匯流箱和并網(wǎng)逆變器構(gòu)成。市場上主流的光伏設(shè)備都配置了帶Modbus 協(xié)議的RS-485 接口,再設(shè)置一個SPS,就能通過以太網(wǎng)監(jiān)控匯流箱和并網(wǎng)逆變器。因此,軟件部分實現(xiàn)設(shè)備類模塊、Modbus 模塊、TCP 模塊和數(shù)據(jù)庫模塊能實現(xiàn)基本的光伏遠程監(jiān)控系統(tǒng)。匯流箱采用安科瑞的8 路匯流箱。由于所使用的并網(wǎng)逆變器不帶通信接口,故使用DAM_3502 交流電采集模塊監(jiān)控并網(wǎng)逆變器的輸出。
合理、清晰、有效的軟件組織是解決移植和擴展問題的基礎(chǔ)。監(jiān)控系統(tǒng)的軟件組織和功能模塊如圖2 所示,各個功能模塊之間相互獨立。
圖2 軟件組織與功能模塊Fig.2 The software organization and functional modules
圖2(a)中,MyClass 存放所有的設(shè)備類、Modbus協(xié)議類、Socket 處理類和數(shù)據(jù)庫處理類;SysFile 存放網(wǎng)絡(luò)、設(shè)備和數(shù)據(jù)庫的配置參數(shù);MyModule 存放軟件運行后的全局參數(shù);MyForm 存放軟件全部的窗體模塊;Main 主要負(fù)責(zé)啟動軟件和調(diào)用以上功能模塊。Socket數(shù)據(jù)的收發(fā)、數(shù)據(jù)庫的存儲、數(shù)據(jù)的顯示部分采用了VB.NET 的多線程技術(shù),在隊列數(shù)據(jù)結(jié)構(gòu)的配合下,提高了數(shù)據(jù)處理速度。
各功能模塊的自定義結(jié)構(gòu)體如表1 所示。
表1 功能模塊的自定義結(jié)構(gòu)體Tab.1 The custom structures of function modules
系統(tǒng)各功能模塊的主要功能如下。MyModbusRTU模塊完成Modbus 數(shù)據(jù)的提取;通過VB. NET 提供的System.Net.Sockets 接口實現(xiàn)MySocketTCP 模塊;MySQL模塊完成數(shù)據(jù)庫的操作;MyDev 模塊從Modbus 數(shù)據(jù)中提取真實的設(shè)備數(shù)據(jù)。各功能模塊結(jié)構(gòu)如圖3所示。
①MyModbusRTU 模塊。
該模塊是設(shè)備層應(yīng)用的基礎(chǔ),如圖3(a)所示。其中Modbus 功能函數(shù)和獲取Modbus 數(shù)據(jù)是該模塊的主要功能。為了靈活地實現(xiàn)與其他模塊之間的關(guān)聯(lián),自定義了4 個結(jié)構(gòu)體,如表1 的前4 行所示,它們是實現(xiàn)系統(tǒng)靈活擴展的關(guān)鍵。Dev 用于描述設(shè)備,設(shè)備名DevName和DevClass 是該結(jié)構(gòu)的兩個重要參數(shù)。RW_Cmd 用于描述Modbus 協(xié)議命令,其中RegName 代表一次讀寫操作,DevObj 是Object 類型變量,表示該命令的所屬設(shè)備。Fun_Data 用于描述Modbus 返回數(shù)據(jù),其中CopeType 表示是讀還是寫,Cmd 表示是由哪個Modbus 命令返回。ReturnData 用于描述設(shè)備數(shù)據(jù),其中DevObj 表示對于哪個設(shè)備,Data 表示該設(shè)備的真實數(shù)據(jù)。在結(jié)構(gòu)體中嵌入Object 類型變量能實現(xiàn)在程序邏輯上的靈活應(yīng)用[9]。在Mobus 功能函數(shù)部分實現(xiàn)了不同功能碼的處理函數(shù),1 ~4 號功能碼的處理函數(shù)為:
ReadRegister(ByVal Cmd01_04 As RW_Cmd)As Byte()
圖3 功能模塊結(jié)構(gòu)圖Fig.3 Structure of functional modules
②MySocketTCP 模塊。
該模塊是網(wǎng)絡(luò)通信的基礎(chǔ),如圖3(b)所示。其中Socket 連接、發(fā)送和接收是該模塊實現(xiàn)的主要功能,使用在類模塊中嵌入多線程和數(shù)據(jù)隊列的方式實現(xiàn)。在多SPS 應(yīng)用時,只需使用New 方法建立對應(yīng)數(shù)量的MySocketTCP 類對象,便可實現(xiàn)多 SPS 的擴展。MySocketTCP 模塊的工作過程如圖4 所示。
圖4 MySocketTCP 模塊的工作過程Fig.4 The work process of MySocketTCP module
③MyDev 模塊。
MyDev 模塊是所有設(shè)備類的集合,系統(tǒng)擴展體現(xiàn)在MyDev 中設(shè)備類的增減。以實現(xiàn)設(shè)備類DAM_3502 為例,如圖3(c)所示,設(shè)備類具有相同的格式,修改部分代碼就可以實現(xiàn)不同的設(shè)備類。為便捷地實現(xiàn)一個設(shè)備類,自定義了參數(shù)寄存器描述結(jié)構(gòu)體RegDescript,如表1 的最后一行所示。其中,Name 表示該參數(shù)描述的名稱,也稱之為一次操作;Start 表示該參數(shù)在設(shè)備中的起始地址;Len 表示該參數(shù)的長度;WR 表示該參數(shù)是否可寫;Show 表示該參數(shù)是否可顯示。如對逆變器輸出功率的描述,則設(shè)置為(“InverterActivePower”,12,1,F(xiàn)alse,True)。設(shè)備類的主要功能是處理FunData 數(shù)據(jù),從而獲得ReturnData 數(shù)據(jù),并壓入ReturnData 隊列,為之后的顯示和數(shù)據(jù)庫操作搭起了一座橋梁。
④MySQL 模塊。
在VS2010 中,只有System. Data. OleDb 接口支持SQL Server 2000 數(shù)據(jù)庫,MySQL 模塊如圖3(d)所示。數(shù)據(jù)庫操作是該模塊的主要部分,實現(xiàn)了從ReturnData 隊列中提取ReturnData 數(shù)據(jù)。在MySQL 模塊中,擴展的靈活性體現(xiàn)在ReturnData 數(shù)據(jù)中操作名稱Name 與數(shù)據(jù)庫表格中的表格名稱一致。
系統(tǒng)運行界面如圖5 所示。
圖5 系統(tǒng)運行界面Fig.5 The system running interface
擴展前監(jiān)控系統(tǒng)由匯流箱、交流電采集模塊和串口服務(wù)器1 組成。必須設(shè)置數(shù)據(jù)庫參數(shù)、網(wǎng)絡(luò)參數(shù)、設(shè)備參數(shù)后,系統(tǒng)才能正常運行。系統(tǒng)運行過程為:當(dāng)窗體加載后,調(diào)用系統(tǒng)運行函數(shù),首先配置所有的運行信息,如果成功,則連接所有的串口服務(wù)器,否則報警并等待再次運行。如果所有串口服務(wù)器連接成功,則啟動所有的線程,否則等待重新連接,其運行界面如圖5(a)所示。從圖中可清晰地看出當(dāng)天6 點至18 點的小時發(fā)電量。
考慮到此時的監(jiān)控系統(tǒng)過于簡單,可加入繼電保護模塊、溫度模塊和太陽總輻射傳感器模塊擴展系統(tǒng)。由溫度模塊和輻照度傳感器模塊組成的環(huán)境氣象儀,可以采集到光伏發(fā)電的氣象數(shù)據(jù);利用歷史的光伏發(fā)電數(shù)據(jù)和氣象數(shù)據(jù),可以實現(xiàn)發(fā)電預(yù)測的功能[10]。擴展過程如下:①以實現(xiàn)DAM_3502 設(shè)備類的方法,為繼電保護模塊、溫度模塊和太陽總輻射傳感器模塊編寫 設(shè) 備 類(RelayControl、WP3066ADAMTemperature、SR100);②添加串口服務(wù)器2;③設(shè)置繼電保護模塊、溫度模塊和太陽總輻射傳感器模塊;④調(diào)整界面,運行程序,界面如圖5(b)所示。
本設(shè)計實現(xiàn)了系統(tǒng)靈活擴展,提高了軟件的組織性,減少了對計算機資源的占用。在該方案基礎(chǔ)上,不但可以開發(fā)基于C/S 的軟件,還能開發(fā)基于B/S 的軟件。雖然是針對光伏電站所設(shè)計的遠程監(jiān)控系統(tǒng),但是稍作改變,便可應(yīng)用于其他領(lǐng)域。
[1] 鄧素枚.光伏電站數(shù)據(jù)采集系統(tǒng)的研究與實現(xiàn)[D].北京:北京交通大學(xué),2012.
[2] 戴錚.富互聯(lián)網(wǎng)環(huán)境下的設(shè)備遠程監(jiān)控技術(shù)研究[D].武漢:華中科技大學(xué),2012.
[3] 劉建.基于GPRS 的光伏式遠程氣象數(shù)據(jù)采集傳輸終端開發(fā)[D].杭州:浙江工業(yè)大學(xué),2012.
[4] 葉瓊?cè)?光伏并網(wǎng)遠程監(jiān)控系統(tǒng)的研究與設(shè)計[D].泉州:華僑大學(xué),2012.
[5] 楊然.光伏發(fā)電環(huán)境參數(shù)采集及網(wǎng)絡(luò)數(shù)據(jù)監(jiān)控平臺的設(shè)計[D].武漢:武漢紡織大學(xué),2012.
[6] 彭繼慎,李文帥,李秋香.太陽能光伏發(fā)電無線遠程監(jiān)控系統(tǒng)的研究與設(shè)計[J].計算機測量與控制,2012,20(12):29 -30.
[7] 許建風(fēng),田建創(chuàng),方蕾.基于串口服務(wù)器的PLC 網(wǎng)絡(luò)控制系統(tǒng)[J].浙江工業(yè)大學(xué)學(xué)報,2008,36(2):196-197.
[8] 陳平,郝繼飛,周曉飛,等.基于串口服務(wù)器組網(wǎng)的自來水廠供水監(jiān)控系統(tǒng)[J].湖南科技大學(xué)學(xué)報:自然科學(xué)版,2011,26(2):80-81.
[9] 趙春燕,孫英銳,董峰.高性能氣象數(shù)據(jù)存儲集群及在線擴展技術(shù)應(yīng)用[J].計算技術(shù)與自動化,2013,32(3):117 -119.
[10]康洪波,劉瑞梅,侯秀梅.基于神經(jīng)網(wǎng)絡(luò)光伏發(fā)電預(yù)測模型的研究[J].電源技術(shù),2013,37(3):447 -448.