1.1 系统简介
光伏发电站智能监控管理系统(Power Management System, PMS)是一套专为光伏电站设计的综合性监控管理平台,提供从数据采集、实时监控、告警管理到运维管理的完整解决方案。
1.2 核心功能
光伏发电监控: 逆变器运行状态、发电数据实时监控
事件记录管理: 系统事件、告警信息记录与查询
运行环境监测: 气候数据采集与分析(温度、湿度、风速、辐照度等)
运维管理: 工单管理、设备配置、系统日志
CCTV 视频监控: 通过 ONVIF 协议集成视频监控
外部看板集成: 通过 WebView2 嵌入综合看板系统
1.3 应用场景
适用于分布式光伏电站、地面集中式光伏电站的远程监控和管理,支持本地部署和云端数据同步。
1. 总体架构
1.1 架构设计原则
高内聚低耦合: 按业务领域拆分微服务,服务间通过API通信
无状态设计: 业务服务无状态,便于重启和迁移
数据分离: 时序数据和关系数据分离存储
异步解耦: 使用消息队列实现异步处理,提高系统响应速度
简洁实用: 去除过度设计,保留核心功能
稳定可靠: 看门狗机制保障服务稳定运行
1.2 关键技术选型
层级 技术选型 版本 说明
前端 Vue 3 + TypeScript 3.3.x 前端框架
后端 FastAPI 0.109.x Web框架
ORM SQLAlchemy + Pydantic 2.0.x/2.5.x ORM和验证
数据库 PostgreSQL 15.x 关系型数据库
时序数据库 IoTDB 1.2.x 时序数据存储
消息队列 RabbitMQ 3.12.x 异步消息
反向代理 Nginx 1.25.x API网关
异步任务 Celery 5.3.x 后台任务
容器化 Docker 24.0.x 容器部署
数据采集 pymodbus 3.7.x Modbus协议
看门狗 基于Docker - 进程监控
1.3全局数据流转流程描述
系统数据流转始于采集层,逆变器、气象站等设备通过Modbus/RTSP协议上报数据。接入层的采集服务以5秒频率解析校验数据,并执行“双写”策略:一路写入IoTDB存储历史时序数据,另一路发布至RabbitMQ消息队列。
在存储与处理层,IoTDB支撑历史查询;RabbitMQ驱动两类消费:一是WebSocket服务将实时数据(功率、告警)低延迟推送至前端;二是Celery Worker异步处理告警检测与报表生成。PostgreSQL则独立存储用户、设备及规则等基础信息。
业务层由多个微服务组成,经Nginx路由处理具体业务逻辑。最终在展示层,Nginx将HTTP请求导向综合看板与设备管理页(查历史),将WebSocket连接导向实时监控页(看实时),实现秒级数据刷新与告警通知。