2. EMS系统架构:硬件、软件与通信协议

大家好,我是老张。在光储系统里摸爬滚打了十几年,今天跟各位聊聊EMS的架构。

很多人觉得EMS就是个“黑盒子”,接上电池和光伏就能用。其实不然。我见过太多项目,因为架构没选好,后期运维成本高得吓人。说白了,架构决定了系统的上限。

2.1 EMS的硬件架构

硬件是EMS的骨架。我个人习惯把硬件分成三层:

  • 采集层:负责从现场设备“拿数据”。比如电表、传感器、逆变器、BMS。
  • 控制层:核心控制器,通常是PLC或工控机。我建议用双机热备,别省这个钱。
  • 人机交互层:触摸屏、操作站、服务器。嗯,这里要注意,触摸屏别选太便宜的,夏天高温容易死机。

我记得有一次在西北的项目,现场温度45度,普通工控机直接罢工。后来换了宽温型,才稳住。所以硬件选型,一定要看环境。

核心要点:硬件架构要满足“高可用、易扩展、抗干扰”。别为了省钱用消费级设备,工业现场不是闹着玩的。

2.2 EMS的软件架构

软件是EMS的灵魂。我见过不少团队,硬件堆得很猛,软件却一塌糊涂。

软件架构通常分四层:

  1. 数据采集层:负责跟硬件打交道。协议解析、数据清洗、异常过滤。
  2. 数据处理层:实时计算、历史存储、告警判断。这里我建议用时序数据库,比如InfluxDB。
  3. 业务逻辑层:策略调度、功率分配、SOC均衡。说白了,就是“什么时候充、什么时候放”。
  4. 展示层:Web界面、APP、大屏。UI要简洁,别整花里胡哨的。

你想想看,如果数据采集层不稳定,上层再漂亮也没用。我曾经在一个项目中,采集层用了轮询方式,结果设备一多,CPU直接跑满。后来改成事件驱动,才解决问题。

个人经验:软件架构一定要考虑“断网续传”。现场网络不稳定,数据丢了就麻烦了。我习惯在采集层加一个本地缓存,网络恢复后自动补传。

2.3 EMS的通信协议

通信协议是EMS的“语言”。选对了,事半功倍;选错了,天天扯皮。

目前主流的有三种:Modbus、IEC 104、MQTT。我一个个说。

2.3.1 Modbus

Modbus是老大哥了。简单、稳定、兼容性好。几乎所有设备都支持。

但Modbus有个缺点:实时性差。它是主从模式,主机轮询从机。设备一多,轮询周期就长。我建议Modbus只用于数据量小、实时性要求不高的场景。

// Modbus RTU 读取保持寄存器示例
// 功能码 0x03,起始地址 0x0000,读取 2 个寄存器
请求:01 03 00 00 00 02 C4 0B
响应:01 03 04 00 01 00 02 79 8A

避坑指南:我曾经遇到一个项目,Modbus线缆走线跟动力电缆并排,结果通信频繁出错。后来加了屏蔽和隔离,才稳定。记住:Modbus通信线一定要远离强电。

2.3.2 IEC 104

IEC 104是电力系统的“正规军”。它支持遥测、遥信、遥控、遥调。说白了,就是能读数据、能看状态、能下发指令。

IEC 104的优点是标准化程度高,电网公司都认。但配置复杂,需要懂规约的人来搞。

我个人习惯:如果项目要接入电网调度,必须用IEC 104。别想着用Modbus转,电网那边不认。

// IEC 104 遥测报文示例
// 类型标识 0x09(遥测),传送原因 0x03(突发)
68 0E 00 00 00 00 09 03 01 00 01 00 00 00 00 00

2.3.3 MQTT

MQTT是物联网时代的“新贵”。轻量、支持发布/订阅模式、适合云平台。

我特别喜欢MQTT的一点:断线重连机制。网络断了,它会自动重连,而且消息不会丢。这在光伏电站这种网络不稳定的场景,太实用了。

但MQTT也有坑:安全性。默认不加密,数据容易被截获。我建议一定要用TLS加密,别裸奔。

// MQTT 发布主题示例
// 主题:ems/solar/power
// 消息:{"value": 150.5, "unit": "kW"}
mosquitto_pub -h broker.ems.com -t "ems/solar/power" -m '{"value":150.5,"unit":"kW"}'

协议选型建议:

  • 现场设备通信:Modbus RTU/TCP
  • 电网调度通信:IEC 104
  • 云平台/远程运维:MQTT

2.4 知识体系结构图

下面这张图,是我自己画的EMS架构总览。你一看就明白了。

EMS系统架构总览 硬件架构 采集层 控制层 人机交互层 电表/传感器/逆变器 PLC/工控机 触摸屏/服务器 软件架构 数据采集层 数据处理层 业务逻辑层 展示层 协议解析/数据清洗 实时计算/历史存储 策略调度/SOC均衡 Web/APP/大屏 通信协议 Modbus IEC 104 MQTT 现场设备通信 电网调度通信 云平台/远程运维

这张图把EMS架构分成了三层:硬件、软件、通信协议。每一层都有它的职责。你想想看,如果硬件层不稳定,软件层再牛也没用。反过来,通信协议选错了,硬件和软件也连不起来。

我的建议:做EMS项目,先定通信协议,再选硬件,最后开发软件。这个顺序别搞反了。我见过太多团队,先买硬件,结果发现协议不匹配,最后只能加网关,又贵又麻烦。

好了,关于EMS架构,今天就聊这么多。记住一句话:架构设计,七分在前期规划,三分在后期调试。别急着动手,先把架构想清楚。


专注资料整理