張小剛,張琪琪
(國網江西省電力公司九江供電分公司,江西 九江 332000)
為應對全球化石燃料加速枯竭的能源危機和日益高漲的能源需求,各國大力的推動可再生能源快速的發展,改變能源消費結構,可再生能源將逐漸替代常規化石燃料能源。而光伏發電在其自身得天獨厚的條件下,它的發展也是越來越迅速[1]。同時光伏發電也容易受到氣象環境等因素的影響。為分析光照強度、氣溫、濕度等氣象條件對光伏發電的影響,需要對發電數據及微氣象數據進行采集與分析。另外,由于光伏發電系統通常布設在野外,其數據需要通過GPRS 網絡,傳送到信息中心進行存儲與分析[1,2]。在數據發送端,使用了帶GPRS 傳輸協議的DTU,運行有一個SOCKET 客戶端,自動連接到指定IP 地址和端口的SOCKET 服務器。在數據接收端,SOCKET 服務器監視來自客戶端連接請求,并接收、解析及保存數據[3,4,5]。本文對基于GPRS 及SOCKET 的光伏發電數據接收系統進行設計。
同時,為保證socket 服務器的長期運行,設計了看門狗軟件Watch 以監視socket 的運行狀態。另外,還設計了遠程調試程序,用于對socket 服務程序進行遠程更新。
整個光伏發電數據傳輸系統結構組成如圖1 所示。

圖1 系統總體組成
本文主要描述其數據接收系統。光伏發電數據接收系統主要組成部分包括SOCKET服務器、看門狗軟件程序、以及遠程調試程序。其主要作用是接收來自監測終端采集的數據(該數據通過GPRS通信方式發送),并保存到后臺服務器中。其傳輸的主要參數有:逆變器輸出工作狀態電壓、電流、總有用功率、日發電量、總發電量、總運行時間6個電量參數;以及氣象站輸出的溫度、日照、風速、風向4個參數,共10個數據。通過將這10組數據在一定的時間間隔內進行推送,實時的顯示出來,以供工作人員的參考。
由于數據參數需要遠程傳輸,所以需要數據接收轉發器和PC服務器通信協議。下面就光伏發電數據傳輸系統的數據通信協議進行說明。其中,上行數據(即由DTU向接收端傳送)傳輸幀的格式為:起始符+設備號+數據域+結束符,具體標示如表1 所示(61 個字節)。下行數據(由接收端向DTU 返回應答)傳輸帳格式固定為“0×73_03_65”3個字節。

表1 上行數據幀格式
其中:
1)起始符:固定為“0×73”。(即ASCII碼”S”);
2)設備號:0×01→湖口;0×02→彭澤;0×03→共青1號;0×04→共青2號;
3)溫度:范圍-999→+999(備注,表達為ASCII碼.單位:0.1攝氏度)(高位補0,比如溫度為2.3度,發送數據就表達為“+023”);
4)日照:范圍0000→9999(備注,表達為ASCII碼.單位:流明)(高位補0);
5)風速:范圍000→999(備注,表達為ASCII 碼.單位:米/秒)(高位補0);
6)風向:范圍000→999(備注,表達為ASCII 碼.單位:度)(高位補0);
7)A 相電壓:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 V)(高位補0);
8)B 相電壓:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 V)(高位補0);
9)C 相電壓:范圍0000→9999(備注,表達為ASCII碼.單位:0.1V)(高位補0);
10)A 相電流:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 A)(高位補0);
11)B 相電流:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 A)(高位補0);
12)C 相電流:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 A)(高位補0);
13)當前功率:范圍00000→99999(備注,表達為ASCII碼.單位:W;該值是總有功功率)(高位補0);
14)日發電量:范圍0000→9999(備注,表達為ASCII碼.單位:0.1 kWh;(高位補0);
15)總發電量:范圍000000→999999(備注,表達為ASCII碼.單位:kWh;(高位補0);
16)總運行時間:范圍000000→999999(備注,表達為ASCII碼.單位:小時;(高位補0);
17)截止符:固定為“0×65”。(即ASCII碼“E”)。
圖2為服務器端主程序流程圖。

圖2 服務器端主程序流程
接收數據服務器端的設計主要是利用了微軟的可視化編程工具C#.NET平臺所建立起的可視化操作界面,并結合SQL Server 技術存儲相應處理后到的數據。服務器端與數據接收轉發器通過Socket 通信技術,建立連接以實現數據的傳輸。
在服務器端的設計中,基于.NET平臺,在服務器窗體設計中,添加相應的控件,并將這些非受管代碼轉換成受管代碼,才可以在.NET 公用語言框架內運行,獲得本地IP地址和本地端口號,將相應通信信息顯示在信息框內。其中服務器端主要功能包括:
服務器端開放固定端口,并通過Dns.GetHostEntry()函數來獲得本地的IP。再通過Socket 通信技術監聽到數據接收轉發器,并與之建立連接。否則,一直在不斷地監聽。
服務器端與數據接收轉發器端建立連接后,通過ReceiveVarData()函數接收數據接收轉發器發送的數據包。并對此數據包進行解包,取出相應數據進行分析。
將處理過的數據放入數據庫中后,繼續接收數據接收轉發器每隔10 min發送的數據。
數據接收轉發器定時發送數據,通過GPRS模塊將數據包經Internet發送到Socket服務器端,服務器端通過Socket 通信技術建立連接后,將接受數據轉發器發來的數據包,并返回發送反饋應答信息。服務器端通過自帶的ReceiveVarData()函數對數據包進行接收,其接受具體的流程如圖3所示。

圖3 數據接收流程
服務器端接收到為十進制的數據包,通過BitConverter.ToString()函數將數據包的十進制數轉化為十六進制數;然后通過判斷其數據長度是否為完整的數據包,其次分別驗證數據包的幀頭是否為“73H”、結束符是否為“65H”以及設備號是否對應,若以上條件均滿足條件則接受的數據包為完整的數據包,然后將完整的數據存儲在數據庫中。
為方便開發人員通過遠程的方式,對接收到的數據進行分析,socket服務器中集成了數據轉發功能。當接收到數據轉發請求后,從指定的數據庫表中提取數據,發送給數據請求端。數據請求端發來的數據請求格式(字符串)為:
remotedata/tablename/orderColumn/rowNumber 即以“remotedata/”字符串開頭,再加上所請求的數據表名、排序字段、數據行數。例如:

SOCKET服務器接收到上述請求后,先從數據庫的workdata1表中,按nid的逆序提取100條數據,然后分行寫入一個文本文件,再將該文本文件發送到數據請求端。
為保證SOCKET服務器的長期可靠運行,以及開發人員通過遠程的方式對其進行更新,開發了看門狗軟件及遠程調試軟件。
SOCKETE服務器需要不間斷運行以接收SOCKET客戶端發來的數據,因此需要監測其工作狀態,以保證在其發生故障時,能夠重啟服務。為此,設計了一個看門狗軟件Watch。該看門狗作為一個socket客戶端,連接到socket 服務器,然后每隔30 秒,向SOCKET 服務器發送一個問詢字符串“watch”。SOCKET 服務器接收到后,返回給watch 程序一個應答“OK”。如果watch 連發三次但沒有接收到正確的回復(或者連接不到SOCKET服務器),則重啟SOCKET 服務器。在重啟SOCKET 服務器之前,從數據庫中檢查是否有更新的SOCKET 服務器程序版本,如有,則先下載再重啟。
遠程調試軟件作為一個SOCKET客戶端,連接到SOCKET服務器,其功能包括:
1)輸入需要遠程連接的IP地址及端口;
2)連接到指定IP及端口的SOCKET服務器;
3)向SOCET 服務器傳送最新的程序文件,由SOCKET服務器保存到數據庫;
4)重啟SOCKET服務器;
5)向SOCKET 服務器請求指定的數據庫表中的數據;
6)向SOCKET服務器請求日志文件。
本文通過仿真,驗證了不同容量不同地點DG接入配電網對用戶端電壓的影響,并通過對比不同功率因素DG接入配電網中對配電網電壓分布的影響,得出可通過調節分布式電源的功率因素來調節配網線路電壓分布。為分布式電源參與電網調壓提供了一定參考依據,也為配網滾動規劃提供一個有益的參考。
[1]黃海宏,朱晶晶,梁平.通用型光伏電站監控系統的研制[J].電氣自動化.2010(05).
[2]舒杰,吳昌宏,張先勇.基于GPRS的風光互補發電無線遠程監測系統[J].可再生能源.2010(01).
[3]廉小親,張曉力,段振剛,等.基于GPRS的光伏發電遠程監測系統的設計[J].測控技術.2011(05).
[4]彭繼慎,李文帥,李秋香.太陽能光伏發電無線遠程監控系統的研究與設計[J].計算機測量與控制.2012(12).
[5]陳國華.一種分布式光伏電站遠動信息無線實時采集與傳輸方案[J].電氣技術.2014(6).