劉誠浩 葛明濤



摘 要:【目的】風光發電數據的采集是為了記錄和分析風光發電設備的各種相關數據,以幫助監測和優化風光發電系統的運行。【方法】以Qt框架為基礎,利用開發工具,設計了一款風光發電數據采集軟件,該軟件可實現利用TCP通信獲取設備采集的信息、使用MySql數據庫存儲和管理歷史數據以及設備的相關參數調試、與天氣相關性的查看和數據導出分析等功能。【結果】經過測試,該系統運行穩定可靠,圖形界面交互性好,功能可拓展性高,可以高效地通過數字、曲線等可視化方式,將數據以直觀的形式展示給用戶?!窘Y論】在實際應用中,風光發電采集系統在風力發電和光伏發電中起著至關重要的作用,實現了對系統的實時監測、遠程控制、故障診斷和性能優化,提高了風光發電設備的可靠性、高效性和可持續發展能力。
關鍵詞:風光發電;Qt;MySql;TCP通信
中圖分類號:TP311.1? ? 文獻標志碼:A? ? ?文章編號:1003-5168(2024)06-0006-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.06.001
Design of Wind and Solar Power Generation Data Acquisition Software Based on Qt
LIU Chenghao GE Mingtao
(Pingdingshan University, Pingdingshan 467000, China)
Abstract:[Purposes] Wind power generation data acquisition is to record and analyze various data related to wind power generation equipment, which helps monitor and optimize the operation of wind power generation system. [Methods] Based on the Qt framework, a wind and solar power generation data acquisition software is designed by using development tools, which can realize TCP communication to obtain information collected by equipment, use MySql database to store and manage historical data, debug relevant parameters, view equipment and weather correlation, and export and analysis of data. [Findings] After testing, the system runs stably and reliably, has good graphical interface interaction, high function scalability, and can efficiently display data to users in an intuitive form through visual methods such as numbers and curves. [Conclusions] In practical applications, wind and solar power generation acquisition system plays a vital role in wind power generation and photovoltaic power generation system, which can realize real-time monitoring, remote control, fault diagnosis and performance optimization of the system, and improve the reliability, efficiency and sustainable development of wind and solar power generation equipment.
Keywords: wind and solar power generation; Qt; MySql; TCP communication
0 引言
隨著全球能源危機和環境問題的日益突出,可再生能源的開發和利用成了全球關注的焦點。中國是全球最大的風力和光伏發電國家,擁有豐富的風能資源和充足的太陽能資源,具備大規模的風力、光伏發電裝機容量。中國的風光發電行業保持著快速增長的態勢,2022年,全國風力、光伏發電新增裝機突破1.2億千瓦,連續三年突破1億千瓦,再創歷史新高;發電量首次突破1萬億千瓦時,達到1.19萬億千瓦時,同比增長21%,占全社會用電量的13.8%,接近全國城鄉居民生活用電量[1]。風光發電產業的發展為減少碳排放、應對氣候變化做出了積極貢獻,推動了中國能源結構的轉型升級。然而風光發電系統的監測和管理依然面臨著許多挑戰,如數據采集、存儲和分析等方面仍存在一定的困難。因此,設計一款高效的風光發電數據采集軟件具有重要的研究意義。
本研究設計的采集系統可以用于監測和管理風力發電和光伏發電,旨在實現對風光混合發電設備運行狀態、發電效率和發電量等關鍵指標的實時監測和分析。該系統的應用可以涵蓋以下4個方面。
①發電設備狀態監測:監測風力發電機組和光伏電池組的運行狀態,包括設備的工作狀態、轉速、溫度、功率等參數。通過實時監測,及時發現并處理設備故障和異常情況,提高設備的可靠性和運行效率。
②發電效率分析:通過對風力發電和光伏發電系統的數據采集和分析,評估發電設備的效率和性能。
③發電量統計和分析:實時記錄和統計風力發電和光伏發電的發電量,并進行數據分析和報表生成。
④數據可視化:將采集到的數據以圖表、曲線和地圖等形式進行可視化展示。
綜上所述,本研究設計的基于Qt的風光發電數據采集軟件對風光發電系統的監測管理、能源轉型、環境保護及可持續發展等方面都具有重要參考價值。
1 總體設計
1.1 上位機設計
采集系統的上位機軟件是基于Qt Creator軟件開發環境并在window11操作系統上運行。Qt Creator是一個利用Qt開發的輕量級跨平臺集成開發環境,因其良好的封裝機制和豐富的API函數而廣泛使用。Qt是一款跨平臺的C++圖形用戶界面應用程序開發框架,基于類庫本身,用戶可通過自定義或內建對話框的方式去構建操作面板和顯示面板,可以為用戶提供良好的人機交互界面。同時通過采用Qt Creator 4.10.1集成開發環境,能夠使開發人員更加快速完成開發任務。上位機的設計流程如圖1所示。
1.2 總體功能設計
風光發電數據采集系統的總體功能設計如圖2所示,主要功能為數據獲取、數據解析、數據顯示、數據存儲、TCP調試及天氣信息展示。
1.2.1 數據獲取。通過TCP網絡編程技術與服務器建立連接并獲取風光發電設備發送至服務器的實時數據,通過數據處理算法對采集到的數據進行處理和分析,提取關鍵指標和信息。
1.2.2 數據解析。 解析服務器反饋數據,實時更新數據至數據顯示模塊。
1.2.3 數據顯示。通過設計直觀、易懂的用戶界面,提升用戶體驗,提高操作效率。界面包括數據變化曲線、實時數據更新、數據查看等功能,以便用戶能夠直觀地瀏覽和操作系統,滿足用戶需求。
1.2.4 數據存儲。為了實現數據的持久化存儲和管理,使用MySql數據庫來儲存采集到的數據,以便數據的長期保存和快速檢索,保證數據的安全性和可靠性。
1.2.5 TCP調試。通過TCP建立與服務器的連接,確保能夠實時獲取和發送數據。
1.2.6 天氣信息展示。通過解析天氣API提供的關于城市的JSON文件內容,進行天氣顯示。
2 軟件設計
2.1 數據獲取和TCP調試設計
選擇本機作為服務端,獲取本機IP地址。首先通過QHostInfo類的localHostName()函數獲取本機的主機名;其次使用fromName()函數將主機名轉換為IP地址;最后使用QHostAddress類的toString()函數將IP地址轉換為字符串形式。選定端口號,聲明tcpServer作為QTcpServer對象,用于監聽和接收服務器作為客戶端發來的連接請求。調用tcpServer的listen()函數,并將其綁定到指定的IP地址和端口號上,開始監聽連接請求。使用QTcpServer的newConnection信號連接到一個槽函數,當有新的連接請求時觸發。在槽函數中,使用tcpServer的nextPendingConnection()函數獲取新的QTcpSocket對象,用來表示與客戶端的連接。使用連接的QTcpSocket對象來讀取和處理客戶端發送的數據[2]。其TCP通信如圖3所示。
2.2 數據解析設計
數據解析是處理TCP連接中的數據的關鍵步驟。當服務器與本機建立的TCP通信中存在可讀數據時,需要對獲取的數據進行解析,并提取出關鍵字符對應的數據內容,然后進行回調顯示。
在數據解析過程中,可以使用字符串處理技術來提取所需的數據內容。通過查找特定的關鍵字符或者使用正則表達式來定位和提取數據。一旦數據被提取出來,立即將其傳遞給回調函數進行顯示或進一步處理。
數據解析的目的是從原始數據中提取有用的信息,以便進行后續的操作和展示。通過合適的解析方法,可以將數據內容從復雜的字符串中提取出來,使其更易于理解和處理。其代碼流程如圖4所示。
2.3 數據顯示設計
數據顯示主要包含4個界面,在注冊和登錄界面可以通過用戶信息寫入、驗證用戶ID及驗證身份密鑰等方式進行身份識別。
數據庫管理界面通過創建QSqlDatabase來連接MySql數據庫,采用基礎的Sql語句及搜索條件進行索引數據庫內容,從而顯示數據庫中保存的數據。
主顯示界面中包含TCP的連接和調試及天氣信息概況,并以狀態圖的形式顯示數據采集系統與服務器的實時連接狀態。主界面還包含了不同界面之間的跳轉功能,通過按鍵的方式實現界面的切換,保證并行操作的執行,使每個子界面的運行均可完成獨立且不同的功能,并采用信號與槽的工作機制,確保界面之間的數據互通性。
數據顯示界面包括發電量信息、累計收益信息、檢測數據等。其中數據曲線通過創建QChart對象和相應的QLineSeries對象將其關聯,并設置x軸和y軸的范圍與刻度。通過定時器和信號槽機制,定時調用刷新函數,將新數據添加到圖表中,并更新x軸的范圍,使其顯示最近的一段時間內的數據,實現在QGraphicsView實時顯示數據曲線變化的功能[3]。數據顯示模塊主要功能如圖5所示。
2.4 數據存儲設計
數據存儲主要使用兩種方式。一種方式使用MySql存儲,使數據采集信息可以長久地記錄。在代碼中通過創建一個QSqlQuery對象query用于執行SQL查詢操作,使用query.addBindValue()函數將需要插入的數據綁定到預處理的SQL語句中,從而將傳入的數據值更新到數據庫,并查詢和顯示數據庫中的所有數據。該方式通過將傳入的數據轉換為浮點數類型,并調用相應的數據庫操作函數,實現數據的插入和查詢[4]。數據庫管理界面如圖6所示。
另一種方式使用QXlsx保存采集數據,進行數據智能分析等處理。首先使用QXlsx的Document類創建一個XLS文件對象;其次將XLS文件的列名作為表頭寫入文件;最后使用Document類的saveAs函數將XLS文件保存到指定的文件路徑。
2.5 天氣信息設計
首先創建網絡訪問管理器,并連接finished()信號和處理HTTP服務返回的數據槽函數;其次根據城市名稱獲取城市編碼,構建天氣查詢的URL,并通過網絡訪問管理器發送GET請求;再次進行解析JSON數據,提取日期、城市、天氣情況、溫度、風力等信息;最后繪制溫度曲線,創建一個QPainter對象,將其綁定到對應的標簽上。通過獲取x軸坐標,即日期標簽的位置,并根據溫度和平均溫度的差值來確定y軸坐標。繪制溫度點和溫度文字,則分別使用drawEllipse()函數和drawText()函數繪制。天氣詳情如圖7所示。
3 軟件測試
在實際測試中,通過采集設備、服務器、軟件程序三者聯動,在不同環境的不同時間均可實時顯示外部設備所采集的數據信息。主界面和子界面的切換友好,TCP連接與調試均可實時顯示連接狀態和接受字符串;數據顯示可以完整且準確地將服務器發送的參數進行曲線顯示;天氣信息可以確切地展示當天及未來四天的情況;數據庫顯示界面可以實時查看保存的信息,實現多客戶端聯動監控[5],保證數據準確性。經測試,軟件運行穩定,交互方式友好,信息顯示清晰完整。軟件數據顯示測試如圖8所示。
4 結語
本研究設計了一款基于Qt框架的風光發電數據采集軟件,實現了系統高效、穩定且交互性良好的運行。該軟件可以實時監測風力和光伏發電設備狀態,深入分析發電效率和發電量,為系統優化管理提供技術支持。通過Qt Creator構建跨平臺集成開發環境,設計直觀用戶界面,提高操作便捷性。利用TCP通信技術建立數據連接,MySql數據庫存儲數據,QXlsx進行數據顯示。使用QChart和QLineSeries技術實現數據可視化,展示數據趨勢,提升用戶體驗和分析便利。該軟件穩定可靠,可以實時顯示數據信息。
參考文獻:
[1]丁怡婷.去年風電光伏發電量首次突破1萬億千瓦時[N].人民日報,2023-02-14.
[2]馬睿.基于Qt的TCP網絡編程研究與應用[J].福建電腦,2010(11):138-139.
[3]狄輝輝,李京華,劉景桑,等.基于Qt/E的嵌入式實時曲線顯示界面設計與實現[J].電子測量技術,2011(12):76-79.
[4]韓改寧,李永鋒,高伊騰.基于嵌入式Qt下的MySQL數據庫設計與開發[J].微型電腦應用,2020(5):25-27.
[5]黃翩,張瓊,祝婷.基于Qt的一個服務器多個客戶端的TCP通信[J].電子科技,2015(3):76-78,82.