EnergizeOS™ EMS

PUB-2604-0009-MAN · 2.0

Barcode ENXKCKKGHT9Q4

EnergizeOS™ EMS Grid-Tie / Island Transition 控制页面

前端开发手册  ·  功能与使用说明书
版本:V8.0  |  适用分辨率:1280×800px  |  发布状态:开发基线
文档适用对象:HMI/Web UI 开发工程师

第一章 文档目的与阅读方式

本手册面向负责将 HTML 原型转化为可交付生产页面的前端工程师。手册内容覆盖:

本文档与 HTML 原型文件 GridTie_Island_v8_final.html 配套使用。遇到描述与代码不一致时,以 HTML 源码为准。

第二章 页面规格与分辨率约束

2.1 硬性尺寸限制

本页面针对工控触摸屏设计,分辨率固定,严禁出现横向或纵向滚动条。

TitleColumn 1Column 2
属性规格说明
视口宽度1280 px固定,html/body 均设 width:1280px
视口高度800 px固定,html/body 均设 height:800px
overflowhidden(双向)禁止任何方向滚动
基础字号13 pxbody font-size
字体栈-apple-system, BlinkMacSystemFont, Segoe UI系统字体,无外部依赖
等宽字体SFMono-Regular / Consolas / Liberation Mono用于数字、代码、时间戳

2.2 布局层级

页面采用 Flex 纵向堆叠结构,从上到下固定高度分配:

TitleColumn 1Column 2
区域高度说明
Top Nav 顶部导航栏48 px产品 Logo + 页面标签切换
Status Bar 状态栏36 px断路器状态 + 实时数据 + 控制模式切换
Body 主体区644 pxSidebar (148px) + Main Content (1132px)
Control Bar 控制按钮栏46 px底部主操作按钮行
Log Bar 日志条28 px事件驱动推入式日志显示
合计802 px(含 2px 边框)实际渲染 800 px 内

Body 内横向分为两列:

Sidebar 占 148 px,已从 Main Content 左侧内嵌,padding-left:148px 处理对齐。

第三章 设计令牌(Design Tokens)—— 色值规范

所有颜色通过 CSS 变量统一管理,禁止在组件内硬编码色值。以下为完整 Token 表:

3.1 主色板

色块CSS变量Hex值语义使用场景
🟦--navy#1D3461品牌深蓝主色调,按钮fill,nav active,标题
--bg#F4F6F9页面背景全局背景色
--surf#FFFFFF白色表面卡片、表格行、对话框背景
--surf2#F8F9FA浅灰表面表头、Section Header背景
--bord#E2E8F0常规边框表格边框、分隔线
--bord2#D1D9E6加强边框分组线、按钮边框
--text#0F1923主文字标题、重要数值
--text2#4A5568次级文字描述文本、标签
--text3#94A3B8弱化文字辅助标签、占位符、muted内容

3.2 语义色板(状态指示)

色块CSS变量Hex值语义使用场景
🟢--green#16A34ASatisfied/正常C条件满足、BESS已停止、同步完成
🟢--green-lt#F0FDF4绿色浅背景chip背景、btn-done背景、引导步骤done
🟢--green-bd#86EFAC绿色边框chip边框、btn-done边框
🟢--gdot#22C55E绿色指示点状态dot、进度节点done
🟠--orange#D97706Warning/当前操作Force Stop按钮、步骤3 active、Not Triggered
🟠--orange-lt#FFFBEB橙色浅背景btn-now背景、引导步骤active背景
🟠--orange-bd#FCD34D橙色边框btn-now边框、pulse环
🟠--odot#F59E0B橙色指示点Not Triggered状态dot、C4 Requesting
🔴--red#DC2626Not Satisfied/错误C条件不满足、Not Allowed、拦截
🔴--red-lt#FEF2F2红色浅背景chip背景、blocking panel背景
🔴--red-bd#FCA5A5红色边框chip边框、blocking panel边框
🔴--rdot#EF4444红色指示点状态dot不满足、Breaker Closed pill
--gray#64748BStandby/未知A4/A5 Standby状态
--gray-lt#F8FAFC灰色浅背景禁用按钮背景、锁定步骤背景
--gray-bd#E2E8F0灰色边框禁用按钮边框、锁定步骤边框

3.3 特殊色值

色块CSS变量Hex值语义使用场景
🟧--blockBg#FFF7ED阻塞面板背景主阻塞条件(Primary Blocking Condition)面板
🟧--blockAccent#EA580C阻塞左边框阻塞面板左侧3px高亮边框
🔵--blueMid#38BDF8蓝色 C4请求中C4 Requesting状态dot、进度点req
🔵--blueLight#EFF6FF蓝色浅背景Mode Banner EMS模式背景

⚑ 工程师注意:色值为精确 HEX,不允许四舍五入或替换为近似色。配色已通过 WCAG AA 对比度验证,任何调整须重新验证。

第四章 UI 区块详解

4.1 顶部导航栏(Top Nav)

高度 48px,白色背景,左侧为 Logo + 产品名,右侧为页面标签。

TitleColumn 1Column 2
元素规格说明
Logo区域148px 宽Logo SVG 内嵌(无外部图片依赖),橙色弧+蓝色弧+EX文字
页面标签height:48px普通态:color:#4A5568,活跃态:color:#1D3461,border-bottom:2px solid #1D3461,font-weight:600
当前页面Grid-Tie/Island Transition始终为 active 态,不可点击跳转(或由父框架路由控制)

4.2 状态栏(Status Bar)

高度 36px,显示系统实时状态,所有数据来自后端 Modbus/API 轮询,刷新频率建议 ≤2s。

TitleColumn 1Column 2Column 3
字段数据源刷新显示规则
Breaker 状态52a/52b DI 反馈实时开:绿色pill(#F0FDF4 bg,#22C55E dot);关:红色pill
Grid Voltage继电器/电表≤2s断路器开时显示"—";并网时显示如"409.0 V",单位黑色
Grid Frequency继电器/电表≤2s断路器开时显示"—";并网时显示如"50.00 Hz"
Mode系统状态机事件触发Island Mode(离网)/ Grid-Tied(并网),颜色#1D3461
Primary Source系统状态机事件触发BESS(离网时,绿色)/ Grid(并网时,深蓝)
控制模式切换UI交互用户点击见第六章详述

Breaker Opened 状态下,Grid Voltage/Frequency 显示"—",表示断网侧无有效参考,而非数据错误。

4.3 侧边栏(Sidebar)

宽度 148px,白色背景,左侧品牌导航。含 Dashboard / Monitoring / Strategy / Message / Setting 五个菜单项。Strategy 为当前激活页。

4.4 左栏 — A 区(反孤岛自动解列)

Section Header:标题"Auto Disconnection Logic (Anti-Islanding): Relay Control",右侧蓝色 badge "Relay Control"。

表格 3 列:Code | Auto Trip Criteria | Current Status。以下为各条目的状态定义:

TitleColumn 1Column 2Column 3Column 4
代码条目正常状态触发条件(由继电器判定)触发后状态
A1电压/频率越限● Not Triggered(橙)OV>110%,UV<85%,OF>50.5Hz,UF<49.5Hz● Triggered(红)
A2无压失网● Not Triggered(橙)V<5V sustained >100ms● Triggered(红)
A3ROCOF超阈值● Not Triggered(橙)df/dt > 1.0 Hz/s● Triggered(红)
A4Trip动作完成● Standby(灰)52b=TRUE AND Trip命令已发● Completed(绿)
A5Trip信号上报EMS● Standby(灰)A4完成后EMS收到事件● Reported(绿)
A6离网启动许可● Not Allowed(红)BESS SOC≥30%,grid-forming能力,负载协调验证● Permitted(绿)

🔴 A 区为只读监视区,所有状态由继电器硬件触发,EMS 仅接收信号不发出控制命令。禁止在此区域添加任何控制按钮。

4.5 左栏 — R 区(反逆流保护)

Section Header:标题"Anti-Reverse Power Detection: Enabled",右侧"Enabled/Disable"模式切换(文字按钮)。

TitleColumn 1Column 2Column 3Column 4
代码描述正常状态动作建议说明
R1POI逆功率检测● Not Triggered(橙)No action required继电器检测,仅监视
R2PV/BESS输出=0● Not Satisfied(红)Maintain current state合闸前必须为0,与C3强关联
R3Zero Export策略使能● Enabled(绿)Protection activeEMS策略已加载,R2是物理结果

R 区下方附三行实时数值(KV行):

4.6 右栏 — 联锁进度条(Progress Dots Strip)

水平排列 5 个圆点节点(C1→C2→C3→C4→C5→CLOSE),用连线连接,直观展示联锁完成进度。

节点状态与渲染规则:

TitleColumn 1Column 2Column 3
CSS Class含义颜色动画
.dd.done条件已满足#22C55E fill,外环 3px #F0FDF4无动画(静止绿点)
.dd.block当前阻塞节点#EA580C fill,外环 #FFF7ED脉冲扩散:box-shadow 1.4s infinite
.dd.fail未满足(待处理)#EF4444 fill,外环 2px #FEF2F2无动画(静止红点)
.dd.idle待激活(前驱未满足)#F8FAFC fill,灰色边框无动画(空心灰圆)
.dd.reqC4请求中(中间态)#38BDF8 fill,外环 #F0F9FF脉冲:0.9s infinite
.dd.tgt目标节点(CLOSE)#1D3461 fill(深蓝)无动画,内含白色对勾SVG

节点之间连线(.dline):

连线变绿的条件:左侧节点的条件为 true 时,该段连线变绿。实现为 JS 中根据状态动态切换 class。

4.7 右栏 — 同步参数栏(Sync Bar)

显示 ΔV / Δf / Δθ 三个同步偏差值,以及各自的上限,加上总体同步状态 badge。

TitleColumn 1Column 2Column 3Column 4Column 5
参数阈值过大接近达标数据来源
ΔV≤ 2.0 V红色 .sv-val.fail橙色 .sv-val.warn(≤3.5V)绿色 .sv-val.ok继电器/同步装置
Δf≤ 0.05 Hz红色 .sv-val.fail—(直接红)绿色 .sv-val.ok继电器/同步装置
Δθ≤ 5°红色 .sv-val.fail—(直接红)绿色 .sv-val.ok继电器/同步装置

趋势箭头(Trend Arrow):

右侧 Sync Badge:

4.8 右栏 — C 表格(重并网联锁条件 C1-C5)

表格 4 列:Code | Prerequisite | Status | Description。各条目说明:

TitleColumn 1Column 2Column 3
Code条件满足态未满足态
C1电网稳定≥60s(V/f/phase)● Satisfied(绿)● Not Stable(橙)
C2POI功率为流入或零反送● Satisfied(绿)● Reverse Power(红)
C3PV/BESS停机或待机● Satisfied(绿)● Not Satisfied(红),行底色 #FFF7ED
C4EMS授权合闸● Authorized(绿)● Not Allowed(红)/ Requesting…(蓝)
C5相位/频率同步完成● Satisfied(绿)● Not Synchronized(红)

C3 行特殊处理:

C4 三态逻辑(重要):

C4 的"Requesting…"状态是操作员的重要反馈窗口。2秒延迟模拟真实EMS授权RTT。生产环境应替换为真实API响应。

4.9 主阻塞条件面板(Primary Blocking Condition Panel)

当 C3 未满足时显示,C3 满足后自动隐藏(display:none)。样式规格:

4.10 操作员引导步骤(Operator Guidance)

5个步骤展示当前重并网操作进度,状态随系统条件自动切换:

TitleColumn 1Column 2Column 3Column 4
步骤条件CSS Class数字圆标说明文字颜色
1C1 已满足gs done绿色 #F0FDF4 bg#16A34A
2C2 已满足gs done绿色 #F0FDF4 bg#16A34A
3C3 未满足时gs active橙色 #D97706 bg#92400E(深橙棕)
3C3 已满足后gs done绿色 #F0FDF4 bg#16A34A
4C3 未满足时gs locked灰色 #E2E8F0 bg#94A3B8,显示🔒
4C3满足/C4等待gs active橙色 bg#92400E,显示→ NEXT
4C4 已授权gs done绿色 bg#16A34A,显示✓ COMPLETED
5C4 未满足时gs locked灰色 bg#94A3B8,显示🔒
5C4满足/C5等待gs active橙色 bg#92400E,显示MONITOR
5C5 已满足gs done绿色 bg#16A34A

第五章 按钮完整规格与状态机

5.1 按钮 CSS 类系统

所有按钮使用统一基类 .btn,通过附加状态类改变外观。禁用状态统一通过 HTML disabled 属性实现,不允许用 pointer-events:none 替代。

TitleColumn 1Column 2Column 3Column 4
CSS Class语义颜色规格动画触发条件
.btn-navy主要操作bg:#1D3461,color:#FFF悬停下沉 -1px + 阴影Open Breaker(断路器关时)
.btn-now立即需要的操作bg:#FFFBEB,color:#D97706,border:#FCD34D,外环阴影::after 脉冲环 1.8sForce Stop BESS/PV(未停时)
.btn-done步骤已完成bg:#F0FDF4,color:#16A34A,border:#86EFAC,cursor:defaultBESS/PV 停止后;Close按钮合闸后
.btn-avail可用但非紧急bg:#F0FDF4,color:#16A34A,border:#86EFAC悬停变#DCFCE7Start BESS/PV Grid-Tie(C3满足后)
.btn-final最终关键操作bg:#1D3461,color:#FFF,外环蓝色脉冲环::after 2s 脉冲Close Breaker(C1-C5全满足时)
.btn-out中性/不可用bg:#FFF,color:#4A5568,border:#D1D9E6悬停蓝色边框Grid-Tie按钮(C3未满足时)等
:disabled硬禁用bg:#F8FAFC,color:#94A3B8,border:#E2E8F0,opacity:.38所有动画取消由JS通过 disabled 属性设置

🔴 btn-done 状态必须同时设置 disabled=true,防止操作员重复触发已完成的操作。禁止仅靠视觉样式来阻止点击。

5.2 脉冲动画规格(@keyframes rp)

5.3 各按钮完整状态机

Open Breaker(A区按钮)

TitleColumn 1Column 2Column 3
条件CSS Classdisabled标签文字
断路器当前已开(S.bkrOpen=true).btn-outtrue(灰色)● Breaker Is Open
断路器当前已关(S.bkrOpen=false).btn-navyfalseOpen Breaker

这是防止操作员在断路器已开状态下误按的关键联锁。Open Breaker 按钮的 dot 图标(绿色)不能移除,它是断路器已开的视觉确认。

Close Breaker(控制栏按钮)

TitleColumn 1Column 2Column 3
条件CSS Classdisabled标签文字
断路器已关(操作完成).btn-donetrue● ✓ Breaker Closed(红点+绿字)
Relay Control 模式下.btn-outtrueClose Breaker(灰色)
EMS模式,C1-C5未全满足.btn-outtrueClose Breaker(灰色)
EMS模式,C1-C5全部满足.btn-finalfalse▶ Close Breaker(深蓝脉冲)

🔴 Close Breaker 的 disabled 状态是安全关键联锁,禁止通过任何方式绕过(包括JS调用、事件模拟、API直调)。生产环境须在后端也维护相同的联锁逻辑(双重保护)。

Force Stop BESS / Force Stop PV(控制栏按钮)

TitleColumn 1Column 2Column 3
条件CSS Classdisabled标签文字
设备仍在运行中.btn-nowfalse■ Force Stop BESS(橙色脉冲)
设备已成功停止.btn-donetrue✓ BESS Stopped(绿色完成)

两个 Force Stop 按钮同时为 btn-now 状态(均需操作),体现"两步必做"的操作引导。任一按下后变绿,另一仍保持橙色脉冲直到完成。

Start BESS/PV Grid-Tie(控制栏按钮)

TitleColumn 1Column 2Column 3
条件CSS Classdisabled标签文字
C3 未满足.btn-outtrueStart BESS Grid-Tie(灰色)
C3 已满足.btn-availfalseStart BESS Grid-Tie(绿色轮廓)

第六章 控制模式(Relay / EMS Control)电气工程语义

6.1 两种模式的本质区别

这不是一个普通的"功能开关",而是对电气控制权的明确声明。工程师必须理解两者的本质差异:

TitleColumn 1Column 2
维度Relay Control(继电器控制)EMS Control(EMS控制)
控制方向Trip(跳闸/解列)Close(合闸/重并网)
执行者硬件继电器,不依赖EMS在线EMS软件,需操作员授权
响应速度毫秒级(硬件直接动作)秒级(需人工确认)
适用场景电网故障、自动保护人工重并网操作
对应页面区域左栏 A1-A6 监视区右栏 C1-C5 联锁区
Close Breaker 按钮锁定(EMS无合闸权)正常(满足C1-C5后可用)

6.2 默认模式选择逻辑

页面加载时默认选中 EMS Control(蓝色高亮),理由:

继电器(Relay)和EMS并非互斥——继电器永远在独立监视电网状态,无论模式如何。"Relay Control"仅表示"此页面 EMS 不发出合闸命令"。

6.3 模式 UI 规格

采用药丸形分段控件(Segmented Control),不使用单选框或下拉框:

切换 EMS→Relay 后,在右栏顶部显示"模式横幅"(Mode Banner):

第七章 操作员引导顺序(光标优先级系统)

本页面最核心的设计哲学:在任何时刻,操作员只需看"哪个按钮在闪橙光",就知道下一步该做什么。

7.1 视觉优先级层级

TitleColumn 1Column 2Column 3
优先级按钮状态视觉特征操作员理解
P1btn-final(深蓝脉冲)深蓝色 + 蓝色脉冲光环,最显眼所有条件满足,点这里完成任务
P2btn-now(橙色脉冲)橙色 + 橙色脉冲光环现在必须执行这一步
P3btn-avail(绿色轮廓)绿色边框+背景可以用,但不紧急
P4btn-out(灰色轮廓)灰色边框,无背景暂不可用,条件未满足
P5:disabled(极灰)opacity:.38,鼠标禁止绝对锁定,无论如何不能点

7.2 完整操作流程(Happy Path)

以下是操作员从"断路器开/离网"到"合闸成功/并网"的完整交互序列:

  1. 打开页面 → 断路器状态为"Breaker Opened"(绿色pill),Force Stop BESS/PV 均为橙色脉冲
  2. 点击 Force Stop BESS → 弹出红色确认对话框 → 点"Force Stop"确认 → BESS按钮变绿"✓ BESS Stopped"
  3. 点击 Force Stop PV → 同上 → PV按钮变绿 → C3 满足(行变绿)→ 阻塞面板消失
  4. C4 自动进入"Requesting…"状态(蓝色脉冲,2秒)→ 2秒后变"Authorized"(绿色)
  5. C5 同步参数开始收敛(ΔV↓ ΔΔf↓ Δθ↓)→ 全部达标后变"Synchronized"(绿色badge)
  6. Close Breaker 按钮变为深蓝脉冲"btn-final"→ 控制栏右侧显示"READY TO CLOSE BREAKER"(绿色)
  7. 点击 Close Breaker → 弹出警告确认对话框 → 确认 → 断路器关闭 → 成功弹窗显示时间戳/操作员/52a/52b状态
  8. 点击"Acknowledge & Continue"关闭弹窗 → 状态栏变"Breaker Closed"(红色pill),Mode变"Grid-Tied"

第八章 日志系统(Log Bar)事件驱动机制

8.1 设计原则

日志条区高度固定 28px,深色背景(#0D1117)。日志条目为事件驱动推入:有操作/状态变化才产生一条新日志,无任何自动循环播放。

8.2 技术实现

8.3 日志级别色彩

TitleColumn 1Column 2Column 3
级别背景色文字色适用事件
INFO#1E3A5F#60A5FA系统初始化、模式切换、Grid-Tie启动
WARN#3D2A00#F59E0BC3未满足、同步失去、断路器打开
ERROR#3B0D0D#F87171C4阻塞、合闸拒绝、联锁触发
OK#052E16#4ADE80条件满足、操作成功、授权通过

8.4 必须记录的事件清单(对照开发文档§16)

第九章 Toast 通知与确认对话框

9.1 Toast 通知

四种类型规格:

TitleColumn 1Column 2Column 3Column 4
类型图标背景图标色标题色触发场景
ok#F0FDF4#16A34A#16A34A操作成功:Force Stop、C3满足、C4授权、合闸完成
w#FFFBEB#D97706#D97706警告:断路器打开、C5失去同步
e#FEF2F2#DC2626#DC2626拒绝:联锁阻塞、A6不允许、权限不足
i#EFF6FF#1D4ED8var(--text)信息:Zero Export状态、模式说明

9.2 确认对话框(Confirm Dialog)

各操作的对话框类型:

TitleColumn 1Column 2Column 3
操作图标类型确认按钮说明
Open Breakerwarn(橙).btn-navy告知将进入离网模式
Force Stop BESS/PVerr(红).btn-now(橙色)强调影响负载供电风险
Close Breakerwarn(橙).btn-navy告知将重连电网,并说明已记录
Start Grid-Tiewarn(橙).btn-avail(绿色)提示监视同步参数

9.3 合闸成功弹窗(Success Modal)

合闸完成后 600ms 延迟显示,包含操作追溯信息:

合闸成功弹窗是法规合规审计的重要节点,生产环境应同步写入审计数据库,字段参考开发文档§16.3。

第十章 JS 架构与性能要求

10.1 状态管理原则

10.2 数据更新分离

🔴 禁止在 setInterval 中调用完整 render()——这是 v4 版本页面卡死的根本原因,已通过架构拆分修复。

10.3 DOM 操作规范

第十一章 工程师安全注意事项与禁止事项

11.1 电气安全硬性要求

🔴 Close Breaker 的联锁逻辑(C1-C5)必须在后端也有对应实现,前端禁用仅是第一道防线,后端API接收合闸请求前必须再次校验所有条件。

🔴 禁止添加"强制合闸"(Force Close)按钮,无论出于任何理由。合闸必须经过完整联锁链。

🔴 禁止修改 Close Breaker 按钮的 disabled 逻辑以绕过任何 C 条件。如发现条件不满足时仍需合闸的场景,必须经过工程评审并更新开发文档。

🔴 禁止实现"自动重合闸"(Auto Reclose)逻辑。重合闸必须由操作员主动触发,不得基于定时器自动执行。

11.2 UI 实现禁止事项

11.3 对接后端 API 时的注意事项

11.4 同期(Sync)相关注意事项

附录 A CSS 变量完整清单

TitleColumn 1Column 2
CSS 变量Hex 值用途
--navy#1D3461见第三章色板说明
--bg#F4F6F9见第三章色板说明
--surf#FFFFFF见第三章色板说明
--surf2#F8F9FA见第三章色板说明
--bord#E2E8F0见第三章色板说明
--bord2#D1D9E6见第三章色板说明
--text#0F1923见第三章色板说明
--text2#4A5568见第三章色板说明
--text3#94A3B8见第三章色板说明
--green#16A34A见第三章色板说明
--green-lt#F0FDF4见第三章色板说明
--green-bd#86EFAC见第三章色板说明
--gdot#22C55E见第三章色板说明
--orange#D97706见第三章色板说明
--orange-lt#FFFBEB见第三章色板说明
--orange-bd#FCD34D见第三章色板说明
--odot#F59E0B见第三章色板说明
--red#DC2626见第三章色板说明
--red-lt#FEF2F2见第三章色板说明
--red-bd#FCA5A5见第三章色板说明
--rdot#EF4444见第三章色板说明
--gray#64748B见第三章色板说明
--gray-lt#F8FAFC见第三章色板说明
--gray-bd#E2E8F0见第三章色板说明

附录 B 页面文件清单

TitleColumn 1Column 2
文件名类型说明
GridTie_Island_v8_final.htmlHTML单文件可直接在浏览器打开,含所有CSS和JS,无外部依赖
EMS_GridTie_Island_开发手册.docxWord文档本文档

附录 C 版本历史

TitleColumn 1Column 2
版本日期主要变更
v8.02026-04最终基线:修复合闸流程、Relay/EMS模式语义、Close后状态正确
v7.02026-04扩展C1-C7(超范围,已回滚),1440×900分辨率(已回滚至1280×800)
v6.02026-0412项细节修复:Open Breaker联动、C4请求态、同步趋势箭头等
v5.02026-04修复页面卡死(interval不再调render()),按钮状态机完整重写
v1-42026-04迭代原型:深色SCADA主题→白色原版风格→加sidebar→加log条

EMS_GridTie_Island_Dev_Manual.docx

GridTie_Island_v8_final.html