張小剛,張琪琪
(國(guó)網(wǎng)江西省電力公司九江供電分公司,江西 九江 332000)
為應(yīng)對(duì)全球化石燃料加速枯竭的能源危機(jī)和日益高漲的能源需求,各國(guó)大力的推動(dòng)可再生能源快速的發(fā)展,改變能源消費(fèi)結(jié)構(gòu),可再生能源將逐漸替代常規(guī)化石燃料能源。而光伏發(fā)電在其自身得天獨(dú)厚的條件下,它的發(fā)展也是越來(lái)越迅速[1]。同時(shí)光伏發(fā)電也容易受到氣象環(huán)境等因素的影響。為分析光照強(qiáng)度、氣溫、濕度等氣象條件對(duì)光伏發(fā)電的影響,需要對(duì)發(fā)電數(shù)據(jù)及微氣象數(shù)據(jù)進(jìn)行采集與分析。另外,由于光伏發(fā)電系統(tǒng)通常布設(shè)在野外,其數(shù)據(jù)需要通過(guò)GPRS 網(wǎng)絡(luò),傳送到信息中心進(jìn)行存儲(chǔ)與分析[1,2]。在數(shù)據(jù)發(fā)送端,使用了帶GPRS 傳輸協(xié)議的DTU,運(yùn)行有一個(gè)SOCKET 客戶端,自動(dòng)連接到指定IP 地址和端口的SOCKET 服務(wù)器。在數(shù)據(jù)接收端,SOCKET 服務(wù)器監(jiān)視來(lái)自客戶端連接請(qǐng)求,并接收、解析及保存數(shù)據(jù)[3,4,5]。本文對(duì)基于GPRS 及SOCKET 的光伏發(fā)電數(shù)據(jù)接收系統(tǒng)進(jìn)行設(shè)計(jì)。
同時(shí),為保證socket 服務(wù)器的長(zhǎng)期運(yùn)行,設(shè)計(jì)了看門狗軟件Watch 以監(jiān)視socket 的運(yùn)行狀態(tài)。另外,還設(shè)計(jì)了遠(yuǎn)程調(diào)試程序,用于對(duì)socket 服務(wù)程序進(jìn)行遠(yuǎn)程更新。
整個(gè)光伏發(fā)電數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)組成如圖1 所示。
圖1 系統(tǒng)總體組成
本文主要描述其數(shù)據(jù)接收系統(tǒng)。光伏發(fā)電數(shù)據(jù)接收系統(tǒng)主要組成部分包括SOCKET服務(wù)器、看門狗軟件程序、以及遠(yuǎn)程調(diào)試程序。其主要作用是接收來(lái)自監(jiān)測(cè)終端采集的數(shù)據(jù)(該數(shù)據(jù)通過(guò)GPRS通信方式發(fā)送),并保存到后臺(tái)服務(wù)器中。其傳輸?shù)闹饕獏?shù)有:逆變器輸出工作狀態(tài)電壓、電流、總有用功率、日發(fā)電量、總發(fā)電量、總運(yùn)行時(shí)間6個(gè)電量參數(shù);以及氣象站輸出的溫度、日照、風(fēng)速、風(fēng)向4個(gè)參數(shù),共10個(gè)數(shù)據(jù)。通過(guò)將這10組數(shù)據(jù)在一定的時(shí)間間隔內(nèi)進(jìn)行推送,實(shí)時(shí)的顯示出來(lái),以供工作人員的參考。
由于數(shù)據(jù)參數(shù)需要遠(yuǎn)程傳輸,所以需要數(shù)據(jù)接收轉(zhuǎn)發(fā)器和PC服務(wù)器通信協(xié)議。下面就光伏發(fā)電數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)通信協(xié)議進(jìn)行說(shuō)明。其中,上行數(shù)據(jù)(即由DTU向接收端傳送)傳輸幀的格式為:起始符+設(shè)備號(hào)+數(shù)據(jù)域+結(jié)束符,具體標(biāo)示如表1 所示(61 個(gè)字節(jié))。下行數(shù)據(jù)(由接收端向DTU 返回應(yīng)答)傳輸帳格式固定為“0×73_03_65”3個(gè)字節(jié)。
表1 上行數(shù)據(jù)幀格式
其中:
1)起始符:固定為“0×73”。(即ASCII碼”S”);
2)設(shè)備號(hào):0×01→湖口;0×02→彭澤;0×03→共青1號(hào);0×04→共青2號(hào);
3)溫度:范圍-999→+999(備注,表達(dá)為ASCII碼.單位:0.1攝氏度)(高位補(bǔ)0,比如溫度為2.3度,發(fā)送數(shù)據(jù)就表達(dá)為“+023”);
4)日照:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:流明)(高位補(bǔ)0);
5)風(fēng)速:范圍000→999(備注,表達(dá)為ASCII 碼.單位:米/秒)(高位補(bǔ)0);
6)風(fēng)向:范圍000→999(備注,表達(dá)為ASCII 碼.單位:度)(高位補(bǔ)0);
7)A 相電壓:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 V)(高位補(bǔ)0);
8)B 相電壓:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 V)(高位補(bǔ)0);
9)C 相電壓:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1V)(高位補(bǔ)0);
10)A 相電流:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 A)(高位補(bǔ)0);
11)B 相電流:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 A)(高位補(bǔ)0);
12)C 相電流:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 A)(高位補(bǔ)0);
13)當(dāng)前功率:范圍00000→99999(備注,表達(dá)為ASCII碼.單位:W;該值是總有功功率)(高位補(bǔ)0);
14)日發(fā)電量:范圍0000→9999(備注,表達(dá)為ASCII碼.單位:0.1 kWh;(高位補(bǔ)0);
15)總發(fā)電量:范圍000000→999999(備注,表達(dá)為ASCII碼.單位:kWh;(高位補(bǔ)0);
16)總運(yùn)行時(shí)間:范圍000000→999999(備注,表達(dá)為ASCII碼.單位:小時(shí);(高位補(bǔ)0);
17)截止符:固定為“0×65”。(即ASCII碼“E”)。
圖2為服務(wù)器端主程序流程圖。
圖2 服務(wù)器端主程序流程
接收數(shù)據(jù)服務(wù)器端的設(shè)計(jì)主要是利用了微軟的可視化編程工具C#.NET平臺(tái)所建立起的可視化操作界面,并結(jié)合SQL Server 技術(shù)存儲(chǔ)相應(yīng)處理后到的數(shù)據(jù)。服務(wù)器端與數(shù)據(jù)接收轉(zhuǎn)發(fā)器通過(guò)Socket 通信技術(shù),建立連接以實(shí)現(xiàn)數(shù)據(jù)的傳輸。
在服務(wù)器端的設(shè)計(jì)中,基于.NET平臺(tái),在服務(wù)器窗體設(shè)計(jì)中,添加相應(yīng)的控件,并將這些非受管代碼轉(zhuǎn)換成受管代碼,才可以在.NET 公用語(yǔ)言框架內(nèi)運(yùn)行,獲得本地IP地址和本地端口號(hào),將相應(yīng)通信信息顯示在信息框內(nèi)。其中服務(wù)器端主要功能包括:
服務(wù)器端開(kāi)放固定端口,并通過(guò)Dns.GetHostEntry()函數(shù)來(lái)獲得本地的IP。再通過(guò)Socket 通信技術(shù)監(jiān)聽(tīng)到數(shù)據(jù)接收轉(zhuǎn)發(fā)器,并與之建立連接。否則,一直在不斷地監(jiān)聽(tīng)。
服務(wù)器端與數(shù)據(jù)接收轉(zhuǎn)發(fā)器端建立連接后,通過(guò)ReceiveVarData()函數(shù)接收數(shù)據(jù)接收轉(zhuǎn)發(fā)器發(fā)送的數(shù)據(jù)包。并對(duì)此數(shù)據(jù)包進(jìn)行解包,取出相應(yīng)數(shù)據(jù)進(jìn)行分析。
將處理過(guò)的數(shù)據(jù)放入數(shù)據(jù)庫(kù)中后,繼續(xù)接收數(shù)據(jù)接收轉(zhuǎn)發(fā)器每隔10 min發(fā)送的數(shù)據(jù)。
數(shù)據(jù)接收轉(zhuǎn)發(fā)器定時(shí)發(fā)送數(shù)據(jù),通過(guò)GPRS模塊將數(shù)據(jù)包經(jīng)Internet發(fā)送到Socket服務(wù)器端,服務(wù)器端通過(guò)Socket 通信技術(shù)建立連接后,將接受數(shù)據(jù)轉(zhuǎn)發(fā)器發(fā)來(lái)的數(shù)據(jù)包,并返回發(fā)送反饋應(yīng)答信息。服務(wù)器端通過(guò)自帶的ReceiveVarData()函數(shù)對(duì)數(shù)據(jù)包進(jìn)行接收,其接受具體的流程如圖3所示。
圖3 數(shù)據(jù)接收流程
服務(wù)器端接收到為十進(jìn)制的數(shù)據(jù)包,通過(guò)BitConverter.ToString()函數(shù)將數(shù)據(jù)包的十進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制數(shù);然后通過(guò)判斷其數(shù)據(jù)長(zhǎng)度是否為完整的數(shù)據(jù)包,其次分別驗(yàn)證數(shù)據(jù)包的幀頭是否為“73H”、結(jié)束符是否為“65H”以及設(shè)備號(hào)是否對(duì)應(yīng),若以上條件均滿足條件則接受的數(shù)據(jù)包為完整的數(shù)據(jù)包,然后將完整的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。
為方便開(kāi)發(fā)人員通過(guò)遠(yuǎn)程的方式,對(duì)接收到的數(shù)據(jù)進(jìn)行分析,socket服務(wù)器中集成了數(shù)據(jù)轉(zhuǎn)發(fā)功能。當(dāng)接收到數(shù)據(jù)轉(zhuǎn)發(fā)請(qǐng)求后,從指定的數(shù)據(jù)庫(kù)表中提取數(shù)據(jù),發(fā)送給數(shù)據(jù)請(qǐng)求端。數(shù)據(jù)請(qǐng)求端發(fā)來(lái)的數(shù)據(jù)請(qǐng)求格式(字符串)為:
remotedata/tablename/orderColumn/rowNumber 即以“remotedata/”字符串開(kāi)頭,再加上所請(qǐng)求的數(shù)據(jù)表名、排序字段、數(shù)據(jù)行數(shù)。例如:
SOCKET服務(wù)器接收到上述請(qǐng)求后,先從數(shù)據(jù)庫(kù)的workdata1表中,按nid的逆序提取100條數(shù)據(jù),然后分行寫入一個(gè)文本文件,再將該文本文件發(fā)送到數(shù)據(jù)請(qǐng)求端。
為保證SOCKET服務(wù)器的長(zhǎng)期可靠運(yùn)行,以及開(kāi)發(fā)人員通過(guò)遠(yuǎn)程的方式對(duì)其進(jìn)行更新,開(kāi)發(fā)了看門狗軟件及遠(yuǎn)程調(diào)試軟件。
SOCKETE服務(wù)器需要不間斷運(yùn)行以接收SOCKET客戶端發(fā)來(lái)的數(shù)據(jù),因此需要監(jiān)測(cè)其工作狀態(tài),以保證在其發(fā)生故障時(shí),能夠重啟服務(wù)。為此,設(shè)計(jì)了一個(gè)看門狗軟件Watch。該看門狗作為一個(gè)socket客戶端,連接到socket 服務(wù)器,然后每隔30 秒,向SOCKET 服務(wù)器發(fā)送一個(gè)問(wèn)詢字符串“watch”。SOCKET 服務(wù)器接收到后,返回給watch 程序一個(gè)應(yīng)答“OK”。如果watch 連發(fā)三次但沒(méi)有接收到正確的回復(fù)(或者連接不到SOCKET服務(wù)器),則重啟SOCKET 服務(wù)器。在重啟SOCKET 服務(wù)器之前,從數(shù)據(jù)庫(kù)中檢查是否有更新的SOCKET 服務(wù)器程序版本,如有,則先下載再重啟。
遠(yuǎn)程調(diào)試軟件作為一個(gè)SOCKET客戶端,連接到SOCKET服務(wù)器,其功能包括:
1)輸入需要遠(yuǎn)程連接的IP地址及端口;
2)連接到指定IP及端口的SOCKET服務(wù)器;
3)向SOCET 服務(wù)器傳送最新的程序文件,由SOCKET服務(wù)器保存到數(shù)據(jù)庫(kù);
4)重啟SOCKET服務(wù)器;
5)向SOCKET 服務(wù)器請(qǐng)求指定的數(shù)據(jù)庫(kù)表中的數(shù)據(jù);
6)向SOCKET服務(wù)器請(qǐng)求日志文件。
本文通過(guò)仿真,驗(yàn)證了不同容量不同地點(diǎn)DG接入配電網(wǎng)對(duì)用戶端電壓的影響,并通過(guò)對(duì)比不同功率因素DG接入配電網(wǎng)中對(duì)配電網(wǎng)電壓分布的影響,得出可通過(guò)調(diào)節(jié)分布式電源的功率因素來(lái)調(diào)節(jié)配網(wǎng)線路電壓分布。為分布式電源參與電網(wǎng)調(diào)壓提供了一定參考依據(jù),也為配網(wǎng)滾動(dòng)規(guī)劃提供一個(gè)有益的參考。
[1]黃海宏,朱晶晶,梁平.通用型光伏電站監(jiān)控系統(tǒng)的研制[J].電氣自動(dòng)化.2010(05).
[2]舒杰,吳昌宏,張先勇.基于GPRS的風(fēng)光互補(bǔ)發(fā)電無(wú)線遠(yuǎn)程監(jiān)測(cè)系統(tǒng)[J].可再生能源.2010(01).
[3]廉小親,張曉力,段振剛,等.基于GPRS的光伏發(fā)電遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].測(cè)控技術(shù).2011(05).
[4]彭繼慎,李文帥,李秋香.太陽(yáng)能光伏發(fā)電無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制.2012(12).
[5]陳國(guó)華.一種分布式光伏電站遠(yuǎn)動(dòng)信息無(wú)線實(shí)時(shí)采集與傳輸方案[J].電氣技術(shù).2014(6).