本系统是一个用于监测GIS设备局部放电的软件,提供实时数据显示和分析功能。系统基于PyQt5开发,集成了Modbus TCP通信、数据可视化和局部放电类型识别功能。

系统新增了局部放电类型识别模块,可以对PRPD图进行分析,识别出局部放电的类型,包括:
- 电晕放电 (Corona)
- 颗粒放电 (Particle)
- 悬浮放电 (Floating)
- 沿面放电 (Surface)
- 气隙放电 (Void)
为了方便用户使用,系统提供了一键启动脚本:
- 双击运行
启动GIS局放监测系统.bat - 脚本会自动启动局放类型识别API服务和主程序
- 启动系统后,在左侧控制面板中找到「局放类型识别」模块
- 点击「检查API服务」按钮,确认API服务状态为「已连接」
- 当PRPD图显示有效数据后,点击「识别当前局放类型」按钮
- 系统会自动分析当前PRPD图,并显示识别结果和置信度
- 通过Modbus TCP协议实时采集GIS设备局部放电数据
- 显示放电次数总和和UHF_DB最大值等关键指标
- 实时更新系统状态和连接信息
- PRPD图(相位分辨局部放电图):直观展示放电相位与幅值关系
- PRPS图(相位分辨局部放电谱):三维展示放电相位、周期和幅值关系
- 支持参考波形显示,便于对比分析
- 数据记录功能:可随时开始/停止记录监测数据
- 数据导出功能:将记录的数据导出为CSV格式,便于后续分析
- 支持自定义刷新率,灵活调整数据更新频率
- 数据表格视图:实时显示采集的数据,支持过滤、搜索和导出
- 系统日志:记录系统运行状态和数据采集过程
- 设备连接/断开控制
- 显示内容自定义(PRPD图、PRPS图、参考波形等)
- 友好的用户界面,操作简单直观
- 操作系统:Windows 7/10/11
- Python 3.6+
- 依赖库:
- PyQt5
- matplotlib
- numpy
- pymodbus
- struct
- csv
- 确保已安装Python 3.6或更高版本
- 安装所需依赖库:
pip install pyqt5 matplotlib numpy pymodbus- 下载本项目代码
- 运行主程序:
python 3_11_gis_modbusTCPGUI_v3.py- 确保监测设备已正确连接到网络
- 默认连接地址为192.168.0.150:6789(可在代码中修改)
- 点击"连接设备"按钮建立连接
- 系统启动后会自动开始数据采集和显示
- 顶部面板显示系统信息和关键数据指标
- 图表区域实时更新PRPD图和PRPS图
- 点击"开始记录"按钮开始记录数据
- 数据记录过程中按钮变为"停止记录"
- 点击"停止记录"结束数据记录
- 点击"导出数据"将记录的数据导出为CSV文件
- 通过控制面板的复选框控制是否显示PRPD图、PRPS图和参考波形
- 可调整刷新率(100-5000毫秒)以适应不同的监测需求
- 切换到"数据视图"选项卡查看实时数据表格和系统日志
- 数据过滤功能:
- 按数据类型过滤(放电次数、uhf_db、相位)
- 文本搜索功能
- 日期过滤
- 表格管理:
- 导出表格数据为CSV文件
- 清空表格数据
- 设置最大行数限制(防止内存占用过大)
- 日志管理:
- 清除日志
- 保存日志到文本文件
- 自动滚动设置
- 采用Modbus TCP协议与设备通信
- 自定义唤醒序列确保设备正常响应
- 支持多组寄存器数据的读取和解析
- 实时解析设备返回的原始数据
- 支持int16和float32等多种数据类型
- 数据缓存和统计分析
- 数据过滤和搜索功能
- 基于PyQt5构建现代化GUI界面
- 采用Matplotlib实现数据可视化
- 响应式布局适应不同屏幕尺寸
- 选项卡设计,分离图表视图和数据视图
- 标准输出重定向到日志区域
-
连接失败怎么办?
- 检查设备IP地址和端口是否正确
- 确认网络连接是否正常
- 尝试重启设备和软件
-
数据显示异常?
- 检查设备是否正常工作
- 确认寄存器配置是否正确
- 尝试调整刷新率
-
导出数据失败?
- 确保有足够的磁盘空间
- 检查文件路径是否有写入权限
- 确认是否已记录数据
-
系统运行缓慢?
- 检查表格数据量是否过大,可适当减小最大行数限制
- 调整刷新率,减少数据更新频率
- 关闭不需要的显示内容(如PRPS图)
-
PRPD图显示问题
-
问题1: colorbar不断累积:在长时间运行后,PRPD图的colorbar会不断累积,导致界面混乱。
- 解决方法:在
update_plot方法中添加colorbar清除逻辑,确保每次更新前移除旧的colorbar。 - 技术实现:添加
self.colorbar属性跟踪当前colorbar,并在每次更新前检查并移除。
- 解决方法:在
-
问题2: PRPD图随时间变窄:长时间运行后,PRPD图会逐渐变窄,显示空间被挤压。
- 解决方法:使用
make_axes_locatable为colorbar创建固定空间,避免挤压主图。 - 技术实现:
from mpl_toolkits.axes_grid1 import make_axes_locatable divider = make_axes_locatable(self.ax1) cax = divider.append_axes("right", size="5%", pad=0.05) self.canvas.colorbar = self.canvas.fig.colorbar(scatter, cax=cax, label='幅值 (dB)')
- 解决方法:使用
-
问题3: PRPS图挤压PRPD图:在某些情况下,3D的PRPS图会挤压2D的PRPD图显示空间。
- 解决方法:使用
GridSpec控制子图布局,设置固定的宽度比例。 - 技术实现:
from matplotlib.gridspec import GridSpec gs = GridSpec(1, 2, width_ratios=[1, 1]) # 1行2列,宽度比例1:1 self.ax1 = self.fig.add_subplot(gs[0, 0]) # 左侧PRPD图 self.ax2 = self.fig.add_subplot(gs[0, 1], projection='3d') # 右侧PRPS图
- 解决方法:使用
-
本系统由电力设备监测团队开发,用于GIS设备局部放电监测和分析。
- v1.2 (当前版本):添加数据记录和导出功能,优化界面,增加数据表格和日志功能
- v1.1:增加PRPS图显示,改进数据处理
- v1.0:基础版本,实现数据采集和PRPD图显示
本软件仅供内部使用,未经授权不得分发或商用。
如有问题或建议,请联系:
- 电子邮件:support@gismonitoring.com
- 技术支持热线:400-123-4567
