项目介绍
个人介绍
本人2023年毕业后,一直在杭州某新能源企业从事储能EMS能源管理系统开发工作。中间遇到过不少坑,我经历过春节前两天还在远程部署调试EMS,也经历过五一五天假期全在加班交付的操蛋场景。我经历过夏天39度户外现场的高温拷打,也经历过深夜12点工厂里的星夜验证。调试工作可谓是贯彻了我这一整段研发生涯,占据了我一大半的开发时间,在被调试折磨得欲仙欲死后,我痛定思痛,决定开发一款EMS模拟设备管理系统,以减免我痛苦的调试工作,同时也可以更好地帮助我测试EMS。
工作语言: C++、Python。
主要工作内容:
- Linux C++开发,Web后端
- 电力通讯协议(Modbus、DL/T645-2007、IEC104、IEC61850)
- 策略算法
- 实时数据采集
- 历史时序数据存储
- 第三方平台对接(调度、云平台)
项目背景
开发初衷:为什么要做这个 EMS Simulate 模拟器?
公司没有测试环境,也很难搭建测试环境,真实环境搭建流程非常繁琐,而且成本很高。
公司主要负责做集成,大项目EMS都是外采,只有部分小项目会分给内部EMS部门做,也就意味着部门其实拿不到什么资源,所以很多时候软件开发出来只能到项目现场调试,那么问题就会非常多,有些时候影响交付进度,容易吃到客户的投诉和内部交付部门的投诉。
2023年开始我刚进到公司的时候,主要还是接的一些小型站控级的储能集装箱项目,一般在5-10MW左右,每个现场都是不同厂家的PCS、BMS、电表、保护设备等等,也就意味着每个现场都需要重新配置点表。同时不同现场还有各种定制化的需求,比如说:
- 有些项目要接虚拟电厂、客户云平台、地方调度等(对于EMS来说就是数据转发,通过IEC104协议或者Modbus协议)。
- 有些项目1个PCS拖2个BMS的,需要调整功率下发策略和保护策略。
- 设备有些时候是走串口服务器,有些时候是走交换机,有些时候是直连。接的设备有多有少,小项目可能就几个通道,大项目可能就是10几个通道甚至更多,EMS软件底层的通讯在面对如此复杂的场景,存在些许兼容性的问题,导致数据采集异常。
上面这些问题平时开发很难进行测试,传统的调试工具只能简单地测试通讯和验证协议,不能对实质业务进行测试。
EMS软件一直都在迭代升级,平时新版本更新到现场时经常出现问题,容易吃到客户投诉,双休日也经常会接到客户电话。
这两年主要是做储能一体柜的EMS,但是和站控级EMS存在同样的问题,设备厂家经常更换,而且点位相比之前更加复杂,比如说下面一个点位包含了运行信息、并离网状态和故障错误。

要解决的问题:在实际开发或测试中遇到了哪些痛点?
解决测试环境搭建困难,难以对EMS进行系统测试的问题。
加快现场调试进度,能够更快更精准地定位问题。
解决传统调试工具只能模拟单个设备、单种协议、无法跨设备进行数据同步的问题。
解决传统调试工具无法进行场景模拟的问题。
例子1:给PCS下发开关机指令,会引发PCS运行状态测点变化。
例子2:国外的某个项目需要用到黑启动功能,也就是电网失电,EMS需要自动将PCS从并网模式切换到离网模式。电网失电这个场景的模拟可以是电网频率和电流变为0,然后引发一系列测点联动的变化,普通的调试工具很难做到。
常见应用场景:这个项目的应用场景有哪些?
- 可以帮助EMS进行压力测试,比如同时添加几十台设备,用以模拟储能户外柜多台并机的复杂场景,可以用来测试性能瓶颈。
- 可以帮助EMS来测试各种策略,比如需量保护、逆功率保护、光伏策略、自动并离网等,需要配置好测点映射和使用测点模拟功能。
- 现在工商储一体柜EMS大多数都是发到现场插4g卡到工控机上,连上网后远程进行调试。考虑到这个场景,项目开发采用WEB版本,可以在网页上使用该模拟工具,加快现场远程调试进度,方便定位问题。
联系方式
- QQ:1755696012
- 微信:axaxax13579