Design of Energy Storage System In Power Grid OT Cyber Range

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

A Battery Energy Storage System (BESS) has been developed for an OT Power Grid Simulation Cyber Range, providing a realistic platform for training and cybersecurity exercises. The design integrates three 40 kWh battery stations, simulating physical electrical components and their energy flow across OT levels 0-2. Operational control is handled by simulated PLCs utilizing IEC 61850 and IEC 60870-5-104 protocols, with a centralized SCADA HMI for comprehensive monitoring and management. This framework enables hands-on study of grid operations, control, and resilience against cyber threats within a controlled, simulated environment.

项目设计目的:本文介绍了我在 OT 电力网仿真物理信息融合环境中开发的基于电池的储能系统 (BESS) 的设计。目标是使用软件模拟的、可管理的真实 BESS,来演示大规模储能如何支持现代电网的运行。

在实践中,BESS 通过存储来自太阳能和风能等可再生能源的过剩电力,并在需要时将其释放回电网,从而在平衡供需方面发挥着至关重要的作用。除了能量平衡之外,BESS 还提供诸如维持电力供应连续性和支持电网在中断期间或之后重启等重要服务。为了使这些功能在网络演习和教育用途中更具体,该项目分为四个主要部分:

  • 物理 BESS 仿真 – 在电力网网络靶场的物理世界模拟器中集成三个中型 40 kWh 电池储能站的实现。

  • 电气设备和能量流 – 建模电气设备(如电池组、直流接口...),从电池站收集数据,并表示 BESS 和电网之间的能量流控制。

  • OT 控制器设计 – 使用计量单元和 PLC 来模拟 OT 控制器层,用于在每个存储站进行监控、电池控制和自动管理逻辑。

  • 集中式电网控制 (HMI/SCADA) – 设计一个电力网运营中心 (OCC) 界面,以连接到 SCADA 网络,用于监控和管理所有储能站。

该设计框架突出了如何可以在网络靶场中真实地表示基于电池的存储,从而可以在受控的仿真环境中研究和训练电网运行、控制和网络安全。

重要提示:网络靶场中的电池储能系统 (BESS) 将提炼(不是 1:1 模拟)现实世界中的一些 OT 流程,并使用数字结构来表示它们,以用于网络演习和教育用途。在现实世界中,电池储能系统 (BESS) 要复杂得多。

# Author:      Yuancheng Liu
# Created:     2025/09/23
# Version:     v_0.0.1
# Copyright:   Copyright (c) 2025 Liu Yuancheng
# License:     GNU General Public License V3

--------------------------------------------------------------------------------------------------------------------

简介

本文介绍的电池储能系统 (BESS)电力网仿真 OT 网络靶场2.0 版)的一个新开发的子系统。它被设计为模拟电网的发电阶段的一部分,通过动态能量存储和输送机制来增强整体可靠性、容量和弹性。

在该系统中,三个中型 40 kWh BESS 站已经开发并与不同的电力收集节点(OEM 范围)集成在一起——包括太阳能发电厂、燃油发电厂和电力变电站的主要输出变压器——共同支持高达 185 kWh(最大值)的模拟发电容量。

作为一个仿真平台,目标不是复制一个全尺寸的工业 BESS 的所有复杂性,而是对选定的核心组件和基本运行行为进行建模,这些组件和行为会生成代表真实系统的真实数据和交互。模拟子系统的灵感来自Volvo Penta的工业解决方案的概念和想法,并专注于 BESS 的结构和功能层的基本部分(如下所示)。

图 01:Volvo Penta 的 BESS 子系统结构概述,版本 v0.2.0 (2025)

模拟的 BESS 系统跨越了运营技术 (OT) 环境的多个层,从0 级物理过程设备2 级电网 SCADA 控制系统。下表总结了主要子系统及其在图 01 中显示的模拟功能:

BESS 子系统 模拟功能和数据类型 OT 环境级别
[1] 立方体电池组 定义电池组容量值(V、A、kWh、%) 0 级
[2] 电池管理系统 模拟通过 PLC 管理的自动充电/放电控制序列 0–1 级
[4] 监控系统 模拟 PLC 级别的充电/放电、电压、电流安全控制以及 HMI 级别的报警可视化 0–2 级
[5] 电气安全 模拟充电/放电电压-电流保护逻辑和报警可视化 1–2 级
[7] 直流接口 表示电池系统和收集节点之间的 48 V 直流电源传输 0 级
[9] OEM 范围 模拟集成到工厂的 AC-AC 升压变压器中的基本 DC-AC 转换器 0 级

系统组件通信数据流和 OT 协议如下图所示:

协议 功能描述
现场层 模拟电气信号 (UDP) 在模拟器之间传输模拟/数字测量数据,以表示真实世界的电气动态。
过程/站层 IEC 61850 支持计量单元 (IED) 和 PLC 之间标准化的变电站数据建模和通信。
控制层 IEC 60870-5-104 通过 TCP/IP 网络在 PLC 和 SCADA 系统之间提供实时遥控通信。

在网络演习中的应用

正如我们在项目设计目的部分中介绍的那样,BESS 的集成显着增强了电力网 OT 网络靶场的真实性和训练价值,所有设计都服务于教育、网络事件、培训和研究中的应用。

在网络演习中,模拟的 BESS 扮演着双重角色——既是红队的目标系统,又是网络事件期间蓝队的弹性机制。例如,在触发模拟停电的红队攻击场景中,BESS 子系统可以自动提供有限时间的备用电源。此功能允许蓝队执行实时事件响应,他们需要遵循预设的紧急处理计划,以防止攻击并在存储的能量耗尽之前恢复系统稳定性。这种动态交互有助于参与者了解 BESS 在现代电网防御和恢复策略中的运行重要性。

--------------------------------------------------------------------------------------------------------------------

背景:电力网中的储能系统 (ESS)

在深入研究模拟 BESS 的技术设计之前,重要的是简要介绍一下现实世界电力网中储能系统 (ESS)的更广泛概念。来自Wikipedia的下图说明了 ESS 的基本能量流和关键功能角色。

图 02:ESS 子系统结构和功能概述,版本 v0.2.0 (2025)

储能系统 (ESS)是现代电力网系统中的一个关键组件,旨在存储多余的电能并在需要时释放它。ESS 在平衡供需、提高电网稳定性以及实现太阳能和风能等可再生能源的集成方面发挥着至关重要的作用,这些能源本质上是间歇性的。

通过在低需求或高可再生能源发电期间存储多余的能量,并在高峰需求或供应短缺期间释放它,ESS 增强了电网的可靠性、灵活性和弹性。ESS 中使用了不同的技术,包括电池(锂离子、液流电池、铅酸)、机械存储(抽水蓄能、飞轮、压缩空气)和热存储。

ESS 在电力网中的主要功能包括:

  • 削峰填谷和负载均衡 – 减少高需求期间发电和输电的压力。

  • 频率和电压调节 – 提供快速响应服务以维持电网稳定性。

  • 可再生能源集成 – 存储多余的可再生能源,以便在低发电期间使用。

  • 备用电源和弹性 – 确保在停电或紧急情况下可靠的供应。

随着全球能源格局转向脱碳和智能电网,ESS 已成为微电网、智能制造、混合动力系统和未来能源市场的使能技术。

--------------------------------------------------------------------------------------------------------------------

BESS 架构概述

电力网 OT 网络靶场中 BESS 的架构跨越了 OT 环境的三个基本层,如下图系统架构图(矩形中高亮显示)所示:

图 03:电力网 OT 网络靶场架构,版本 v0.2.0 (2025)

0 级 OT 物理过程现场 I/O 设备层

物理世界设备仿真级别,系统对几个关键的 BESS 组件进行建模,包括:

  • 立方体电池组

  • 电池管理系统 (BMS)

  • 计量单元和电气安全系统

  • OEM 级别的连接和控制范围

在模拟配置中,每个 BESS 都位于其相关电源的能量收集变压器旁边。BESS 与发电机共享相同的 DC-AC/DC-DC 升压变压器。在功能上,BESS 在充电时充当直接电力消费者,在放电时充当发电机。电池系统和变压器(在 OEM 范围内)之间的建模直流接口以 48 V 直流电压运行。

1 级 OT 系统控制器 LAN

在 OT 控制器级别,系统采用 PLC 仿真程序,该程序模拟ABB AC500 PLC,通过 IEC 60870-5-104 协议进行通信。此设置允许模拟控制器在自动化架构的不同层中充当灵活的远程终端单元 (RTU)。PLC 根据链接的变压器输出自主管理 BESS 的充电/放电操作,收集相关的运行数据,并通过模拟的 RTU 通信通道将其传输回电力网控制 HMI。

2 级电力网控制中心处理 LAN

在 SCADA-HMI 侧,系统提供了一个全面的可视化和控制界面,以显示实时 BESS 信息,可以使用不同的仪表、指示器控制按钮手动执行过载和控制命令。它还集成了自动安全和保护机制,以确保网络靶场环境中真实的电网管理行为。

注意:在参考文档中,Volvo Penta 使用 CAN_Bus 进行计量单元的数据交换,在我的实现中,我暂时使用传统的 GOOSE(通用面向对象变电站事件)计量单元 IEC61850 协议进行数据传输,将来会更改为 CAN-Bus。

--------------------------------------------------------------------------------------------------------------------

物理世界仿真设计

在物理世界仿真程序中,三个电池单元部署在电力网的能量生成范围内。每个电池单元都连接到相应的 OEM 范围(变压器),共同构成电池储能系统 (BESS)。这三个 BESS 单元分别代表在背景:电力网中的储能系统 (ESS)部分中介绍的三种能量存储机制:

  • 可再生能源。

  • 传统的火力发电厂。

  • 电站备用系统。

物理仿真和用户界面实现集成在电力网物理模拟器模块中,如下所示:

图 04:电力网网络靶场中的 BESS UI,版本 v0.2.0 (2025)

电池单元仿真参数

每个电池范围动态地提供模拟参数和运行状态,这些参数和运行状态由相应的 OEM 范围逻辑自动管理。显示和模拟的数据包括:

  • 直流接口状态:指示电池和 OEM 范围之间的连接状态(已连接/已断开)。

  • 运行数据:BESS 运行电压、电流和电池电压。

  • 电池充电/放电状态:显示运行模式——充电放电空闲(已充满)

  • 能量数据:显示当前存储的能量 (kWh) 和相应的充电百分比。

  • 时间信息:根据当前的能量流提供充满电或完全放电的估计时间。

  • 温度数据:(正在开发中 – 将在 2.1 版中实现)

实时地,直流接口状态、电压 (V)、电流 (A) 和容量信息会更新并显示在 GUI 上每个电池范围旁边。为了模拟真实世界的条件,电力网模块还通过向计算值添加随机偏移来引入数据波动。例如,当电池的能量容量在长时间放电后降至 10% 以下时,模拟的输出电压将在 45V–47V DC 范围内波动,反映了真实的测量单元 (MU) 读数变化。

BESS 自动管理机制

系统内实现了两层自动管理,以确保能量存储子系统之间的本地自主性和全局协调。

(a) 单独自动控制

每个 BESS 在本地 PLC 控制下自主运行。它会根据连接的 OEM 范围的运行状态和整体电网条件自动调整其充电/放电行为。例如:

  • 高太阳能输出期间(例如,晴天 30 kW 发电,21 kW 需求),BESS 切换到充电模式以存储多余的能量。

  • 低发电期间(例如,阴天或下雨天,只有 10 kW 太阳能输出),BESS 自动进入放电模式以补充电网电力。

(b) 全系统自动管理

虽然单独的 BESS 单元执行本地优化,但 HMI 执行系统级平衡。来自所有三个 BESS 单元的实时数据由 HMI 收集,这允许操作员手动调整控制逻辑以维持系统稳定性,防止过度充电过度放电

,并在所有 BESS 单元之间平衡负载。

BESS 状态可视化和手动控制

物理仿真 UI上,每个 BESS 都以四种不同的颜色编码状态之一进行可视化表示,以方便快速状态识别和手动操作。

BESS 电池充电状态

BESS 电池空闲状态

BESS 电池放电状态

BESS 电源链路切断状态

手动过载控制

为了支持手动测试和故障模拟,该界面提供了控制复选框,允许操作员手动断开电池范围和其 OEM 范围之间的 DC 接口,如下所示:

Figure-05: BESS Manual Overload Control on Physical World Simulator, version v0.2.0 (2025)

此功能支持在手动超控条件下测试过载场景、电网隔离行为和 BESS 响应验证。

--------------------------------------------------------------------------------------------------------------------

BESS 监控与控制 — IEC-104 PLC 设计

本节介绍用于监控和控制三个模拟 BESS 单元的 OT 级设计。该实现使用项目Python Virtual PLC Simulator with IEC-60870-5-104 Communication Protocol来构建 IEC104-PLC 程序。

为简单起见,当前版本运行一个 IEC104 PLC 实例,带有三个内存库(每个 BESS 一个库)。PLC 从 Physical World Simulator 获取 MU/传感器/现场值,执行本地自动控制逻辑(梯形逻辑),更新模拟器中的物理组件,并通过 IEC104 将测量值/控制报告回 SCADA/HMI。系统工作流程图如下所示:

Figure-06: BESS IEC60870-104 PLC Workflow Diagram, version v0.2.0 (2025)

系统将循环执行以下工作流程序列中的步骤:

  • Step1Physical Simulator发布电池测量值(电压、电流、SOC、DC 链路状态、温度)。

  • Step2:PLC 从Physical Simulator读取这些值,并设置相关的输入触点 IEC-104 IOA 内存。

  • Step3:PLC 运行预设的梯形逻辑梯级(自动/手动、互锁、定时器、滞后)以确定下一步的命令(充电使能、放电使能、DC 断路器打开/关闭、警报)。

  • Step4:PLC 将控制输出写回输出线圈 IOA 内存,并反馈回Physical Simulator

  • Step5:PLC 将测量/控制点打包为 IEC104 对象(M_SP_NA_1、M_ME_NC_1、C_RC_TA_1 等),并与 SCADA/HMI 交换。

IEC104 内存映射

注意:

  • MP = 测量点;CP = 命令/可更改点。

  • 对于离散状态(布尔值),使用M_SP_NA_1;对于测量的模拟数值,使用M_ME_NC_1

  • CP 类型C_RC_TA_1用于简单命令步骤:自动模式:c104.Step.INVALID_0,手动断电:c104.Step.LOWER,手动通电:c104.Step.HIGHER,可更改点类型:CP

太阳能电站 BESS IEC104 内存配置

Memory Point IOA Point Type Memory Point Type Init Val Physical Component
01 MP c104.Type.M_SP_NA_1 False BESS_0_DC_interface_state
02 MP c104.Type.M_ME_NC_1 0.00 BESS_0_Battery_state
03 MP c104.Type.M_ME_NC_1 0.00 BESS_0_Operation_voltage
04 MP c104.Type.M_ME_NC_1 0.00 BESS_0_Operation_current
05 MP c104.Type.M_ME_NC_1 0.00 BESS_0_Battery_percentage
06 MP c104.Type.M_ME_NC_1 0.00 BESS_0_Battery_temperature
-- -- -- -- --
11 CP c104.Type.C_RC_TA_1 c104.Step.INVALID_0 BESS_0_DC_interface_breaker

石油平台 BESS IEC104 内存配置

Memory Point IOA Point Type Memory Point Type Init Val Physical Component
21 MP c104.Type.M_SP_NA_1 False BESS_1_DC_interface_state
22 MP c104.Type.M_ME_NC_1 0.00 BESS_1_Battery_state
23 MP c104.Type.M_ME_NC_1 0.00 BESS_1_Operation_voltage
24 MP c104.Type.M_ME_NC_1 0.00 BESS_1_Operation_current
25 MP c104.Type.M_ME_NC_1 0.00 BESS_1_Battery_percentage
26 MP c104.Type.M_ME_NC_1 0.00 BESS_1_Battery_temperature
-- -- -- -- --
31 CP c104.Type.C_RC_TA_1 c104.Step.INVALID_0 BESS_0_DC_interface_breaker

电站 BESS IEC104 内存配置

Memory Point IOA Point Type Memory Point Type Init Val Physical Component
41 MP c104.Type.M_SP_NA_1 False BESS_2_DC_interface_state
42 MP c104.Type.M_ME_NC_1 0.00 BESS_2_Battery_state
43 MP c104.Type.M_ME_NC_1 0.00 BESS_2_Operation_voltage
44 MP c104.Type.M_ME_NC_1 0.00 BESS_2_Operation_current
45 MP c104.Type.M_ME_NC_1 0.00 BESS_2_Battery_percentage
46 MP c104.Type.M_ME_NC_1 0.00 BESS_2_Battery_temperature
-- -- -- -- --
51 CP c104.Type.C_RC_TA_1 c104.Step.INVALID_0 BESS_2_DC_interface_breaker

梯形逻辑实现示例

以下是每个 BESS_1(太阳能电站 BESS)的代表性梯形图,在 IEC-014 plc 模拟中,所有梯形逻辑都通过 python 代码进行模拟。

梯级 1 — 自动/手动选择

如果手动命令激活,则设置Auto_Mode = FALSE。否则Auto_Mode = TRUE

[ HMI_Manual_Mode ] ----( )---- Auto_Mode := FALSE
[ NOT HMI_Manual_Mode ] ---( )---- Auto_Mode := TRUE

梯级 2 — 安全互锁:在故障时强制断路器打开

条件:过温 OR 过流 OR 电压超出范围 → 断路器打开,禁用充电/放电,设置警报。

[( T > T_MAX ) OR ( I > I_MAX ) OR ( V < V_MIN ) OR ( V > V_MAX )]--------------------------( )---- Force_Breaker_Open

梯级 3 — 自动充电使能(当 Auto_Mode 时)

如果 Auto_Mode AND Grid_Surplus AND SOC < CHARGE_ENABLE_TH(例如,95%)AND NOT Force_Breaker_Open,则充电

[ Auto_Mode ] + [ Grid_Surplus ] + [ SOC < 95 ] + [ NOT Force_Breaker_Open ]-------------------( )---- Charge_Enable

梯级 4 — 自动放电使能(当 Auto_Mode 时)

如果 Auto_Mode AND Grid_Deficit AND SOC > DISCHARGE_ENABLE_TH(例如,10%)AND NOT Force_Breaker_Open,则放电

[ Auto_Mode ] + [ Grid_Deficit ] + [ SOC > 10 ] + [ NOT Force_Breaker_Open ]-------------------( )---- Discharge_Enable

梯级 5 — 带有手动覆盖的断路器命令逻辑

来自 HMI 的手动命令(关闭/打开)优先;否则,如果启用充电或放电且未强制打开,则关闭断路器。

[ Manual_Close ] ----------------( )---- Breaker_CMD := CLOSE
[ Manual_Open ] -----------------( )---- Breaker_CMD := OPEN
[ NOT Manual_Close ] + [ NOT Manual_Open ] + (Charge_Enable OR Discharge_Enable) + [ NOT Force_Breaker_Open ]---------------------( )---- Breaker_CMD := CLOSE ELSE Breaker_CMD := OPEN

梯级 6 — 警报锁存 [正在开发中]

如果任何安全条件为真,则设置警报锁存,直到操作员确认。

[( T > T_MAX ) OR ( I > I_MAX ) OR ( V < V_MIN ) OR ( V > V_MAX )] --------------------------------( )---- Alarm_Latch
[ HMI_Ack ] --------------------------------(R)---- Alarm_Latch RESET

映射到其他 BESS-X 的控制逻辑相同:

  • DC_OK = BESS_x_DC_interface_state (bool)

  • SOC = BESS_x_Battery_Percentage (%)

  • V = BESS_x_Operation_Voltage (V)

  • I = BESS_x_Operation_Current (A)

  • T = BESS_x_Battery_Temperature (°C)

  • Grid_Surplus = 计算标志(发电 > 负载 + 裕量)— 在 PLC 中从电网测量值导出。

  • Grid_Deficit = 计算标志(负载 > 发电 + 裕量)

  • Auto_Mode = PLC 自动/手动链接和电池状态切换器(true=自动)

  • Manual_Open / Manual_Close = HMI 命令 CP 到断路器(枚举/锁存)

  • Breaker_CMD = 控制BESS_x_DC_interface_Breaker CP 的线圈

安全警报触发条件:

  • 如果Temperature > T_max → 强制 DC 断路器打开,禁用充电/放电,发出警报。

  • 如果Voltage < V_minVoltage > V_maxCurrent > I_max → 打开断路器并发出警报。

--------------------------------------------------------------------------------------------------------------------

电池储能系统 (BESS) SCADA HMI 设计

电池储能系统 (BESS) 人机界面 (HMI) 是电网 SCADA 系统的重要组成部分,使操作员能够监控、控制和管理实时分布式储能单元。

BESS HMI 建立与专用 PLC 控制器的IEC 60870-5-104 (IEC104) 客户端连接。通过此通信通道,系统持续检索实时 BESS 运行数据(电压、电流、容量和状态),并允许将安全远程控制命令发送回 PLC。

BESS 的监控和控制界面如下所示(红色矩形高亮显示):

Figure-07: BESS Control Panel in Power Grid Cyber Range HMI, version v0.2.0 (2025)

该设计集成了五个专用面板,为操作员提供可视化和交互式控制功能:

IEC 60617 电路图显示面板

  • 面板类型:原始 BESS 数据监视器

  • 功能:基于IEC 60617图形符号显示电网的电路原理图视图。该面板可视化 BESS 图标和从 IEC104 PLC 获取的实时参数(充电状态、电压、电流和电池百分比)。

IEC 104 PLC [存储控制] 面板

  • 面板类型:PLC 和通信状态监视器

  • 功能:监视 SCADA 系统和IEC60870-104 PLC之间的通信健康状况。显示 PLC 连接信息,包括 IP 地址、通信端口、PLC ID、站索引和连接状态。

电源存储链路控制面板

  • 面板类型:BESS DC 接口监视器和控制器

  • 功能:提供对每个 BESS 和主电网母线之间的 DC 电源链路接口的手动和自动控制。按钮Power-Link[Connect]:手动控制以打开 DC 接口电源链路,按钮Power-Link[Cut-OFF]:手动控制以切断 DC 接口电源链路,按钮Power-Link[PW-Manual]:在自动/手动控制模式之间切换。

IED-MU Detail Data Panel [Energy Capacity]

  • Panel Type: 已处理的BESS数据监视器

  • Function: 显示每个存储单元剩余电池能量容量的计算结果。操作员可以观察每个BESS的实时充电百分比,从而实现高效的能源管理和性能跟踪。

Alert Code Display Panel

  • Panel Type: 故障和警告监视器

  • Function: 显示从每个BESS模块收到的活动error and warning codes,使操作员能够快速识别异常状态并触发适当的维护或安全措施。

通过IEC 60870-104通信和结构化的SCADA面板,操作员可以全面了解系统性能、通信状态和电源链路控制,从而确保grid reliabilityoperational safety

--------------------------------------------------------------------------------------------------------------------

Conclusion

总而言之,对于Power Grid OT Cyber Range中的模拟电池储能系统 (BESS),该工作将物理过程仿真、带有IEC-104 PLCs的OT控制器逻辑以及集中式SCADA HMI集成在一起,该项目成功创建了BESS运营的逼真且可管理的副本。虽然是对现实世界复杂性的简化提炼,但这种功能框架为实践培训、网络安全演习和运营研究提供了一个重要的平台,最终增强了在受控模拟环境中对现代电网基础设施的理解和弹性。

 


Reference Doc Link

 


last edit by Liu Yuancheng ([email protected]) by 11/10/2025 if you have any question, please send me a message. 

  RELATED

No related programming articles found. Browse all programming tutorials and articles.

  COMMENTS

0

No comment for this article.