Skip to content
RepoVersionStarsForks

项目介绍

个人介绍

本人2023年毕业后,一直在杭州某新能源企业从事储能EMS能源管理系统开发工作。中间遇到过不少坑,我经历过春节前两天还在远程部署调试EMS,也经历过五一五天假期全在加班交付的操蛋场景。我经历过夏天39度户外现场的高温拷打,也经历过深夜12点工厂里的星夜验证。调试工作可谓是贯彻了我这一整段研发生涯,占据了我一大半的开发时间,在被调试折磨得欲仙欲死后,我痛定思痛,决定开发一款EMS模拟设备管理系统,以减免我痛苦的调试工作,同时也可以更好地帮助我测试EMS。

工作语言: C++、Python。

主要工作内容:

  • Linux C++开发,Web后端
  • 电力通讯协议(Modbus、DL/T645-2007、IEC104、IEC61850)
  • 策略算法
  • 实时数据采集
  • 历史时序数据存储
  • 第三方平台对接(调度、云平台)

项目背景

  • 开发初衷:为什么要做这个 EMS Simulate 模拟器?

    1. 公司没有测试环境,也很难搭建测试环境,真实环境搭建流程非常繁琐,而且成本很高。

    2. 公司主要负责做集成,大项目EMS都是外采,只有部分小项目会分给内部EMS部门做,也就意味着部门其实拿不到什么资源,所以很多时候软件开发出来只能到项目现场调试,那么问题就会非常多,有些时候影响交付进度,容易吃到客户的投诉和内部交付部门的投诉。

    3. 2023年开始我刚进到公司的时候,主要还是接的一些小型站控级的储能集装箱项目,一般在5-10MW左右,每个现场都是不同厂家的PCS、BMS、电表、保护设备等等,也就意味着每个现场都需要重新配置点表。同时不同现场还有各种定制化的需求,比如说:

      • 有些项目要接虚拟电厂、客户云平台、地方调度等(对于EMS来说就是数据转发,通过IEC104协议或者Modbus协议)。
      • 有些项目1个PCS拖2个BMS的,需要调整功率下发策略和保护策略。
      • 设备有些时候是走串口服务器,有些时候是走交换机,有些时候是直连。接的设备有多有少,小项目可能就几个通道,大项目可能就是10几个通道甚至更多,EMS软件底层的通讯在面对如此复杂的场景,存在些许兼容性的问题,导致数据采集异常。

      上面这些问题平时开发很难进行测试,传统的调试工具只能简单地测试通讯和验证协议,不能对实质业务进行测试。

    4. EMS软件一直都在迭代升级,平时新版本更新到现场时经常出现问题,容易吃到客户投诉,双休日也经常会接到客户电话。

    5. 这两年主要是做储能一体柜的EMS,但是和站控级EMS存在同样的问题,设备厂家经常更换,而且点位相比之前更加复杂,比如说下面一个点位包含了运行信息、并离网状态和故障错误。

  • 要解决的问题:在实际开发或测试中遇到了哪些痛点?

    1. 解决测试环境搭建困难,难以对EMS进行系统测试的问题。

    2. 加快现场调试进度,能够更快更精准地定位问题。

    3. 解决传统调试工具只能模拟单个设备、单种协议、无法跨设备进行数据同步的问题。

    4. 解决传统调试工具无法进行场景模拟的问题。

      例子1:给PCS下发开关机指令,会引发PCS运行状态测点变化。

      例子2:国外的某个项目需要用到黑启动功能,也就是电网失电,EMS需要自动将PCS从并网模式切换到离网模式。电网失电这个场景的模拟可以是电网频率和电流变为0,然后引发一系列测点联动的变化,普通的调试工具很难做到。

  • 常见应用场景:这个项目的应用场景有哪些?

    1. 可以帮助EMS进行压力测试,比如同时添加几十台设备,用以模拟储能户外柜多台并机的复杂场景,可以用来测试性能瓶颈。
    2. 可以帮助EMS来测试各种策略,比如需量保护、逆功率保护、光伏策略、自动并离网等,需要配置好测点映射和使用测点模拟功能。
    3. 现在工商储一体柜EMS大多数都是发到现场插4g卡到工控机上,连上网后远程进行调试。考虑到这个场景,项目开发采用WEB版本,可以在网页上使用该模拟工具,加快现场远程调试进度,方便定位问题。

联系方式

  • QQ:1755696012
  • 微信:axaxax13579

Released under the Apache 2.0 License.