慧知开源微电网平台慧知开源微电网平台
首页
平台介绍
快速了解
演示环境
  • 系统概述
  • 架构设计
  • 数据底座
  • 设备管理
  • 监控与告警
  • 报表与收益
  • 安全与治理
  • 接口与事件
  • 生产运维
部署指南
首页
平台介绍
快速了解
演示环境
  • 系统概述
  • 架构设计
  • 数据底座
  • 设备管理
  • 监控与告警
  • 报表与收益
  • 安全与治理
  • 接口与事件
  • 生产运维
部署指南
  • EMS 能源管理

    • 系统概述
    • 架构设计
    • 数据底座
    • 设备管理
    • 监控与告警
    • 报表与收益
    • 安全与治理
    • 接口与事件
    • 生产运维
  • 开发文档

    • 平台介绍
    • 快速了解
    • 环境部署
    • 项目介绍
    • 后台手册
    • 前端手册
    • 组件文档
    • 更新日志
  • 微服务工程

    • 服务网关
    • 认证中心
    • 注册中心
    • 配置中心
    • 服务调用
    • 服务监控
    • 链路追踪
    • 熔断和降级
    • 分布式事务
    • 分布式日志
    • 应用容器部署

EMS 架构设计

总体分层

现场感知层
  电表 / 光伏 / 储能 / PCS / 负荷 / 环境传感器
          |
          v
边缘控制层
  协议适配 -> 资源发现 -> 能力快照 -> 控制审计
          |
          v
平台数据层
  业务库 / 实时缓存 / 原始时序 / 汇总报表 / 收益快照
          |
          v
经营应用层
  能源驾驶舱 / 设备监控 / 告警中心 / 报表中心 / 电价管理

架构原则

  1. 现场自治:网络中断时边缘网关仍执行本地采集、保护和已配置控制器,云端恢复后补传数据。
  2. 业务与协议解耦:业务层只识别标准设备、指标和能力,不感知具体 Modbus 寄存器或厂商私有字段。
  3. 控制与分析隔离:控制链路优先保证低延迟和可审计,历史查询和报表批处理不得挤占控制资源。
  4. 时间是第一维度:绑定、价格、能力、报表和配置均有生效时间,历史计算不能套用当前状态。
  5. 失败显式化:离线、过期、缺失、估算和结果未知是正常业务状态,不能用空值或 0 隐藏。

逻辑组件

flowchart LR
    UI[Vue 管理端/大屏] --> GW[Gateway]
    GW --> AUTH[认证与权限]
    GW --> EMS[EMS 业务服务]

    EMS --> MYSQL[(MySQL 业务库)]
    EMS --> REDIS[(Redis 快照/锁/缓存)]
    EMS --> NFS[文件与导出]
    EMS --> BE[慧知自研能源接入中台]
    EMS --> RAW[(Raw InfluxDB)]
    EMS --> AGG[(Aggregated InfluxDB)]

    BE <--> EDGE[慧知自研边缘智能网关]
    EDGE --> DEV[电表/光伏/PCS/BMS/负荷]

    EMS --> JOB[同步/告警/报表/保留任务]
    JOB --> MYSQL
    JOB --> RAW

网关与认证层

负责统一路由、登录态、租户上下文、接口权限、跨域和通用限流。网关只完成粗粒度访问控制,EMS 服务必须继续校验公司、电站和设备数据范围。

EMS 业务服务

当前模块覆盖公司、电站、员工、设备、接入端点、慧知自研边缘智能网关、资源同步、设备编排、能力、控制、实时监控、历史数据、告警、电价、报表、补拉和运维状态。内部按领域服务拆分,避免一个“万能 Service”同时负责接入、计算和展示。

自研能源接入层

API 数据源通过 WebSocket JSON-RPC 管理边缘网关和资源组件;Raw Influx 是实时和原始历史的主要来源;Aggregated Influx 可作为大范围历史的优先数据源。三类连接配置属于同一个接入端点,但健康状态和故障处理相互独立。

核心设计

1. 资源与数据分层

业务数据保存资源身份、绑定、配置和任务状态;时序数据保存高频采样和多粒度汇总。两类数据通过资源 ID、设备 ID 和采样时间联结,不使用大字段将时序数据塞进业务表。

2. 控制器与设备状态机

设备创建和控制具有明确的状态机:PENDING 、PRECHECK 、DISPATCHING 、ACTIVE 、FAILED 、DISABLED。运行状态与任务状态分开,避免“配置下发成功”被误读为“现场功率已达标”。

3. 多租户与数据范围

请求经网关携带租户与用户身份,后端按“租户 -> 公司 -> 电站”的有效范围进行二次校验。所有列表、详情、统计、任务和控制接口都使用同一套范围规则。

4. 定时任务与可恢复性

实时同步、历史修复、报表物化、收益重算和数据保留均由独立任务执行。多实例部署时使用分布式锁,同一租户的任务不会重复计算。

当前调度链路覆盖分钟级实时同步、边缘网关心跳、5 分钟全量同步、历史同步、小时报表、告警评估、日/月/年报表、缺口修复、迟到数据修复和保留策略。每类任务必须记录执行批次、租户、处理范围、成功/失败数、游标和错误摘要。

领域边界

领域核心职责主要数据
组织权限租户、公司、员工、角色和数据范围Company、Employee、UserScope
站点资产电站、地址、容量、视图和边缘网关归属Station、StationEdge、ViewNode
接入编排接入端点、边缘网关创建、资源组件 / App 同步接入端点、边缘网关、资源组件、ProvisionTask
设备模型业务设备、层级、通道映射和绑定历史Device、Hierarchy、ChannelMapping、BindingHistory
数据工程快照、游标、5 分钟历史、补拉和保留MetricSnapshot、History5Min、SyncCursor、BackfillTask
运维告警规则、事件、通知配置和通知日志AlarmRule、AlarmEvent、NotifyLog
经营分析电价、应用关系、报表和同步任务PriceRule、PricePeriod、PriceApply、Report

跨域写入优先通过应用服务或领域事件完成。例如设备绑定成功后发布资源变更事件,数据同步消费者刷新映射,报表消费者从下一个时间窗开始使用新归属。

一致性策略

业务库事务

公司、电站、设备、绑定和任务状态等强一致数据使用本地事务。唯一约束覆盖租户内编码、请求幂等键和有效绑定冲突。外部 JSON-RPC 调用不应长时间占用数据库事务。

外部系统最终一致

创建边缘网关、下发资源组件、读取 Influx 均属于外部操作,采用“任务记录 + 外部调用 + 回读验证 + 状态推进”模式。调用超时进入结果未知,补偿任务通过回读判断实际状态,不能直接重复下发。

缓存一致性

Redis 只承载可重建数据,如实时快照、权限缓存、短期幂等和分布式锁。业务主数据以 MySQL 为准;缓存失效时允许回源,不允许因为缓存丢失而丢失绑定或审计。

控制链路设计

sequenceDiagram
    actor User as 用户
    participant API as EMS Control API
    participant DB as Command Store
    participant BE as 慧知自研能源接入中台
    participant 边缘网关 as 边缘网关/设备
    participant Sync as 实时同步

    User->>API: capability + parameters + requestNo
    API->>API: 权限/在线/能力/范围/过期校验
    API->>DB: 保存 ACCEPTED
    API->>BE: edgeRpc
    BE->>边缘网关: 转发命令
    边缘网关-->>BE: ACK/错误
    BE-->>API: JSON-RPC 结果
    API->>DB: ACKED/REJECTED/UNKNOWN
    Sync->>边缘网关: 后续采样
    Sync->>DB: VERIFIED 或 VERIFY_TIMEOUT

同一资源的互斥命令应串行化;计划类命令带生效时间和过期时间;功率设定值必须结合设备最大充放电功率、SOC、工作模式和现场保护状态裁剪或拒绝。

高可用与降级

依赖故障影响降级策略
慧知自研能源接入中台不可用边缘网关管理和远程控制不可用禁止控制,保留最后状态并显示链路故障
Raw Influx 不可用实时/历史同步中断快照标记过期,任务保留游标,恢复后补拉
Aggregated Influx 不可用大范围历史变慢回退 Raw,并限制查询范围和并发
Redis 不可用缓存、锁和会话受影响核心写操作保护性失败,查询按策略回源
邮件服务不可用告警通知失败事件仍入库,通知任务重试并记录失败
单个租户数据异常该租户任务失败隔离执行,不能阻断其他租户批次

可观测性

每次请求贯穿 requestId/traceId,外部 JSON-RPC 记录 endpoint、edge、method、耗时和结果码但不记录凭据。任务指标至少包括最近成功时间、执行耗时、扫描数、写入数、跳过数、失败数和积压窗口。

建议核心指标:

  • ems_realtime_sync_lag_seconds
  • ems_edge_online_total / ems_edge_offline_total
  • ems_metric_stale_total
  • ems_report_job_duration_seconds
  • ems_backfill_pending_total
  • ems_control_result_total{status=...}
  • ems_alarm_active_total{severity=...}
  • ems_external_request_duration_seconds{system=backend|influx}

技术组件

组件用途
Gateway统一路由、鉴权、跨域与错误返回
Nacos服务发现、环境配置与动态参数
MySQL租户、公司、电站、设备、告警、任务与报表
Redis会话、权限、实时快照、分布式锁与幂等计算
时序存储高频采样、历史曲线、多粒度汇总
ECharts能源流、趋势、排名、大屏可视化

云边协同与数据流

EMS 不直接访问现场 Modbus、MQTT 或串口设备。现场协议由慧知自研边缘智能网关适配,平台通过接入中台 WebSocket 获取资源镜像和控制结果,通过 Timedata/Influx 获取时序数据。

sequenceDiagram
    participant 边缘网关 as 慧知自研边缘智能网关
    participant 接入中台 as 慧知自研能源接入中台
    participant EMS as EMS API
    participant TS as 时序库
    边缘网关->>接入中台: 心跳、资源、采样
    接入中台->>TS: 原始/聚合时序写入
    EMS->>接入中台: JSON-RPC 资源发现/控制预检
    EMS->>TS: 按 edge、component、channel 查询
    EMS->>EMS: 快照、告警、报表和收益计算
    EMS-->>边缘网关: 经接入中台转发控制命令

资源标识与边界

一个测点的全局定位键为 endpointId + edgeId + componentId + channelId。业务表保存稳定的资源 ID,展示名称和设备型号属于可变属性;时序点必须同时写入 sampleTime、quality、source 和 ingestTime,不能仅依赖数据库写入时间。

状态机与一致性

资源编排任务使用 PENDING -> PRECHECK -> DISPATCHING -> VERIFYING -> ACTIVE,失败进入 FAILED;设备运行状态使用 ONLINE/OFFLINE/STALE/FAULT/DISABLED。下发成功只代表边缘网关接受请求,必须等待后续采样验证目标功率或模式。

可扩展性设计

  • 能力驱动 UI:前端根据能力快照渲染控制项,新增设备类型不需要修改通用页面。
  • 事件驱动解耦:资源同步、告警计算、报表物化通过领域事件解耦,事件带租户、资源、发生时间和幂等键。
  • 读写分离:控制和配置走业务库,曲线与聚合走时序库,驾驶舱只读快照,避免大屏查询拖慢控制链路。
  • 降级优先可见性:时序库不可用时保留最后快照并标记 STALE,控制链路不可用时禁止误操作。

容量基线

以 1,000 台设备、每台 10 个测点、10 秒采样估算,写入约 1,000 点/秒。生产部署应将采集、快照、聚合、报表拆分为独立消费者,并为每个租户设置查询时间窗和并发配额。容量压测至少覆盖 2 倍峰值写入、全天报表批量生成和 100 个并发大屏用户。

容量估算方法

每秒点数 = 在线设备数 × 每设备有效通道数 ÷ 采样周期秒数
每日点数 = 每秒点数 × 86,400
理论原始容量 = 每日点数 × 单点平均字节数 × 保留天数

实际容量还要乘以时序索引、标签基数、WAL、副本和压缩系数。tenantId、edgeId、componentId 等稳定低基数字段适合作为标签;SN、告警文本、请求号等高基数值不应直接成为时序标签。

技术决策记录

重要架构变更应形成 ADR,至少记录背景、选择、替代方案、影响和回滚方式。建议优先记录:功率方向、设备与资源组件的映射、历史归属规则、迟到窗口、数据质量门槛、收益版本策略和控制验证规则。

自研技术内核

慧知 EMS 采用“边缘自治 + 云端编排 + 数据资产化 + 经营智能化”的技术路线。边缘网关负责现场协议、实时采集和安全边界;云端平台负责资源治理、策略协同、数据建模、告警闭环和收益核算;数据层把高频采样沉淀为可复用指标资产。

技术内核能力说明差异化价值
边缘自治内核本地采集、协议适配、控制周期和断网保护网络波动不影响现场基础运行
资源编排内核将边缘网关、资源组件、标准通道和能力快照统一治理多厂家设备可规模化复制接入
时序治理内核原始、快照、5 分钟、小时、日月年多层数据链实时展示与经营报表互不拖累
策略控制内核控制命令经过权限、能力、约束、互斥和验证降低远程控制风险,提升可审计性
经营计算内核电价、质量、时区、绑定版本和收益公式统一版本化收益数字可复核、可重算、可归档

架构高级特性

  • 领域化拆分:资源、数据、告警、报表、收益、控制各自有清晰边界,通过事件和版本衔接。
  • 冷热链路分离:实时快照服务大屏和监控,历史时序服务趋势,物化报表服务经营分析。
  • 多租户隔离:所有资源、任务、报表、告警和控制命令都携带租户边界,适合安装商托管多客户。
  • 可恢复任务体系:同步、补拉、报表、收益和保留任务都具备幂等键、水位线和失败重跑能力。
  • 可观测优先:接口、任务、外部依赖、数据新鲜度和控制结果均可指标化,便于生产运维。
最近更新:: 2026/8/21 17:05
Contributors: guankecheng-20250523, 官柯丞
Prev
系统概述
Next
数据底座