工厂的能源管理,一直是笔糊涂账。
车间主任每个月看到电费单才心疼——"怎么又超了?"但具体是哪条产线、哪台设备、哪个时段烧掉的电,说不清楚。水、气、热、空压机、中央空调,每种能源各自一本账,全靠人工抄表加 Excel 汇总,滞后、粗糙、还经常对不上。
市面上商业 EMS(能源管理系统)动辄几十万上百万,小厂装不起,大厂装了也常常是个摆设——数据采不全、报表不好用、定制化太贵。
然后我在 Gitee 上发现了云捷 EMS。
一句话:开源的完整能源管理系统,从采集到大屏全链路打通,MIT 协议免费商用
云捷 EMS 是一套基于 Vue3 + Spring Boot + Spring Cloud & Alibaba 微服务架构的能源管理系统,MIT 协议开源,可以免费商用。
它不是一个半成品 Demo——数据采集、数据接收、计算引擎、分布式数据分片、能源管理、设备预警、报表大屏、一次图系统,八大模块全链路打通。适用于工厂、园区、写字楼等高能耗场景。
代码注释率 40% 以上,基于 RuoYi-Cloud 框架开发,Java 开发者上手很快。
采集端:50+ 种工业协议,基本不用写代码
能源管理系统的第一步是数据采集,也是最脏最累的一步。你的工厂里有电表、水表、热表、光伏逆变器、空压机、配电箱……每种设备可能说的协议都不一样。
云捷 EMS 的硬件网关层支持 50 余种协议的采集和解析:
关键是:采集配置是可视化操作的。 在后台配置好通道和点位参数,直接订阅硬件网关上传的数据,基本上不需要开发。
数据上报支持三种方式:
虚拟电表是个实用功能——你可以配置虚拟点位做汇总计算,比如 D = d1 + d2 + d3,自动算出楼层、车间、班组、工序的能耗汇总。不用自己写聚合逻辑。
计算引擎:ShardingSphere 刀片技术,秒级 5 万条不是吹的
能源管理系统最大的技术挑战是数据量——几百上千个点位,每秒一条数据,一天就是几千万条。传统方案到这里就趴窝了:
• 时序库查询慢,内存干到 90% • 关系数据库写入慢,大量表被锁定,CPU 100% • MQTT 严重堵塞,消费不了 • 导出报表占用正常系统资源
云捷 EMS 用的是 Apache ShardingSphere 分布式数据库分片技术:分表 + 分库 + 分片 + 分区。
效果:8 核 32G 云服务器,PTS 压测,秒级处理 5 万条数据。
ShardingSphere 兼容 SQL-92 标准,MySQL、PostgreSQL、SQL Server、Oracle 都能用。京东、京东白条、京东金融、搜狐、网易都在用这套方案——这是 Apache 顶级项目,不是野路子。
八大模块拆解
1️⃣ 数据采集转发
硬件网关层,50+ 协议采集,可视化配置路由和转发方式(MQTT / TCP Socket / 其他),配置转发的点位变量(电压、电流、Ua、Ub 等)。
2️⃣ 数据采集接收
服务端接收层,支持 MQTT 订阅、WebSocket 订阅、IEC 104 直连、Modbus 直连、DLT645 直连。收到数据后进 RabbitMQ 消息队列,分布式处理。
3️⃣ 计算引擎
实时数据通过 ShardingSphere 读写分离,供前端实时调用。业务数据自动按日/月/年预计算,存入业务库,查询时不用临时算,直接取结果。
4️⃣ 分布式数据分片
ShardingSphere 刀片技术,分表 + 分库 + 分片 + 分区。毫秒级海量数据处理能力。
5️⃣ 能源管理
水、电、汽、热、油、空压机、中央空调、光伏逆变器、机房、楼层配电箱等全品类能源数据的采集和分析。多维度能耗分析,支持按车间、班组、工序、时间段钻取。
6️⃣ 设备预警
报警阈值配置,超限自动告警。告警 → 工单 → 派单 → 处理 → 关闭,全流程闭环。
7️⃣ 数据报表大屏
可视化配置,拖拉拽。 这不是宣传话术——数据看板支持组件库拖拽配置,选择展示方式,日月年检索。大屏也是可视化配置:创建卡片、编辑卡片、选位置、关联数据,完成。
智能报表同样如此——创建报表模板、关联数据、一键配置。告别 Excel 手工汇总。
8️⃣ 一次图系统
完整的开源一次图绘制系统。支持绘制、添加组件、绑定数据、动画特效、高级代码编辑。电力系统的一次接线图可以直接在系统里画出来,实时数据绑定到图上,设备状态一目了然。
项目地址:Gitee 地址:/guangdong122/energy-management