刘诚浩 葛明涛
摘 要:【目的】风光发电数据的采集是为了记录和分析风光发电设备的各种相关数据,以帮助监测和优化风光发电系统的运行。【方法】以Qt框架为基础,利用开发工具,设计了一款风光发电数据采集软件,该软件可实现利用TCP通信获取设备采集的信息、使用MySql数据库存储和管理历史数据以及设备的相关参数调试、与天气相关性的查看和数据导出分析等功能。【结果】经过测试,该系统运行稳定可靠,图形界面交互性好,功能可拓展性高,可以高效地通过数字、曲线等可视化方式,将数据以直观的形式展示给用户。【结论】在实际应用中,风光发电采集系统在风力发电和光伏发电中起着至关重要的作用,实现了对系统的实时监测、远程控制、故障诊断和性能优化,提高了风光发电设备的可靠性、高效性和可持续发展能力。
关键词:风光发电;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.