樊東亮 白俊平 朱春穎 聞娜 黃亮 王健
摘 要:隨著新能源技術(shù)的發(fā)展,微電網(wǎng)已成為電力系統(tǒng)重要組成部分,但由于其能源的間歇性,易造成電能質(zhì)量下降。針對這一問題,該文設(shè)計了一種基于C#的微電網(wǎng)電能質(zhì)量檢測系統(tǒng)。基于STM32F429芯片的MCU將采集到的電能數(shù)據(jù)處理后,利用無線網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至上位機,基于C#開發(fā)的上位機利用C/S模式與MCU通信,并將數(shù)據(jù)存儲于服務(wù)器中,為后續(xù)提高電能質(zhì)量提供數(shù)據(jù)支撐。運行表明該系統(tǒng)準(zhǔn)確、快捷,實際應(yīng)用效果良好。
關(guān)鍵詞:微電網(wǎng) STM32 C# C/S
中圖分類號:TN918 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2019)02(a)-00-02
1 系統(tǒng)結(jié)構(gòu)
此設(shè)計方案主要由3個層次結(jié)構(gòu)分別是主站層(主要包括上位機、服務(wù)器和工作站)、通信層(主要實現(xiàn)數(shù)據(jù)傳輸)和遠(yuǎn)動層(MCU數(shù)據(jù)采集終端)。
2 MCU(數(shù)據(jù)采集終端)硬件結(jié)構(gòu)
硬件結(jié)構(gòu)主要是由STM32F429芯片組成的MCU,該芯片外圍包括顯示屏、輸入按鍵、UART接口(RS232串口、RS485串口)、以太網(wǎng)通信、電能數(shù)據(jù)采集、傳感器等模塊。主要實現(xiàn)對光伏、風(fēng)力和儲能設(shè)備的電氣量參數(shù)進(jìn)行實時數(shù)據(jù)采集,并將數(shù)據(jù)上傳至上位機進(jìn)行處理。
3 上位機通信程序設(shè)計
上位機通信程序依托C#編程語言,采用TCP/IP協(xié)議,調(diào)用套接字Socket來實現(xiàn)。
3.1 Socket通信
Socket是一種網(wǎng)絡(luò)上跨平臺的進(jìn)程間的通信機制,它是應(yīng)用程序的基石[1]。Socket分為兩種:
(1)流套接字,用TCP提供一條雙向的、可靠的、順序的、無重復(fù)的數(shù)據(jù)流。
(2)數(shù)據(jù)報套接字,用UDP提供雙向數(shù)據(jù)流,但不保證是可靠、有序、無重復(fù)的。
為了保證可靠的數(shù)據(jù)傳輸,程序采用TCP協(xié)議的流式Socket。首先服務(wù)器初始化,通過調(diào)用socket()建立一個套接字,然后調(diào)用bind()將該套接字和本地網(wǎng)絡(luò)地址聯(lián)系在一起,再調(diào)用listen()使套接字做好偵聽的準(zhǔn)備,并規(guī)定它請求隊列的長度,之后就調(diào)用accept()來接收連接。客戶在建立套接字后就可以調(diào)用connect()和服務(wù)器建立連接。連接一旦建立,客戶機和服務(wù)器之間就可以通過調(diào)用write()和read()來發(fā)送和接收數(shù)據(jù)。數(shù)據(jù)傳送結(jié)束后,雙方調(diào)用Close()關(guān)閉套接字。其流程圖如圖1所示。
3.2 多線程技術(shù)
傳統(tǒng)的應(yīng)用程序主要以單線程形式運行,即程序的運行控制權(quán)由單個線程獨占來完成所有任務(wù)。如遇到復(fù)雜任務(wù)時,就會造成響應(yīng)速度慢的問題。多線程技術(shù)可以利用CPU的空閑時間片,用較少的時間對用戶做出響應(yīng),這樣可以更好地利用系統(tǒng)資源,提高整體運行效率[2]。因此,該系統(tǒng)上位機采用多線程技術(shù),通過區(qū)分不同的Socket,從而實現(xiàn)各通信間同時進(jìn)行,互不干擾,提高CPU的利用率。部分C#服務(wù)器程序如下。
(1)服務(wù)器初始化。
int port = 2000; //定義偵聽端口
TcpListener tcplistener = new TcpListener ( port ) ; //實例監(jiān)聽
private bool listener= true; //設(shè)定監(jiān)聽標(biāo)示位,判斷偵聽狀態(tài)
Treading Tread tcpServerTread; //創(chuàng)建線程,接收信息
(2)服務(wù)器開啟循環(huán)監(jiān)聽。
tcpServerThread=new Thread(new ThreadStart ( Listen ) );//實例化監(jiān)聽程序
tcpServerThread.Start();//啟動線程
private void listen()
{
while(listener)
{
tcplistener.Start ( ) ; //開始監(jiān)聽
TcpClient tcpclient = tcplistener.AcceptTcpClient ( ) ; //通過TCP連接請求
}
}
4 工作站軟件設(shè)計
該系統(tǒng)軟件設(shè)計依托C#編程平臺主要實現(xiàn)功能包括以下幾方面。
(1)SCADA(數(shù)據(jù)采集與監(jiān)視系統(tǒng))。管理人員通過軟件操作界面查看、監(jiān)測微電網(wǎng)中各分布式電源(風(fēng)力發(fā)電、光伏發(fā)電和儲能設(shè)備)、母線、負(fù)荷等電氣量(電壓、電流、功率等)。同時展示微電網(wǎng)系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),使管理人員深入了解系統(tǒng)運行情況。
(2)事件信息管理。主要提供故障系統(tǒng)告警、查詢等功能,為用戶維護(hù)設(shè)備提供服務(wù)。
(3)氣象及發(fā)電量預(yù)測。該系統(tǒng)可通過網(wǎng)絡(luò)接口訪問中國氣象網(wǎng),查詢當(dāng)前和未來氣象信息,利用該信息預(yù)測短期設(shè)備發(fā)電量,為系統(tǒng)穩(wěn)定運行提供最優(yōu)方案。
(4)用戶信息管理。主要包括操作員姓名、電話、操作權(quán)限等功能。
(5)報表管理。主要包括電能質(zhì)量信息綜合分析報表、歷史數(shù)據(jù)報表等功能。
5 結(jié)語
該文設(shè)計了基于C#的微電網(wǎng)電能質(zhì)量監(jiān)測系統(tǒng),通過遠(yuǎn)程實時監(jiān)控微電網(wǎng)中光伏發(fā)電、風(fēng)機發(fā)電、儲能設(shè)備和負(fù)荷的電壓、電流、功率等電能參數(shù),保障電網(wǎng)良好的電能質(zhì)量,為系統(tǒng)的可靠性運行奠定基礎(chǔ)。運行表明,該系統(tǒng)具有實時性好、方便、快捷等特點,具有很高的實用價值。
參考文獻(xiàn)
[1] 時珊珊,魯宗相,周雙喜,等.中國微電網(wǎng)的特點和發(fā)展方向[J].中國電力,2009,42(7):21-25.
[2] 蘇玲,張建華,王利,等.微電網(wǎng)相關(guān)問題及技術(shù)研究[J].電力系統(tǒng)保護(hù)與控制,2010,38(19):235-239.