SpringBoot工控告警分级推送实战:地铁ISCS/HMI状态栏闪烁+子窗体弹窗(第七篇) 标签#SpringBoot #地铁ISCS #告警分级 #HMI界面联动 #综合监控摘要本文严格按照地铁综合监控ISCS行业HMI规范实现一、二、三级告警全部在界面最下方状态栏闪烁一级、二级告警同时弹出独立告警子窗体声光提示三级仅底部闪烁、无声光无弹窗。完全贴合地铁BAS/FAS/环控真实场景无外网依赖可直接用于项目验收。一、前言前两篇我们实现了告警判断 防抖滤波本篇按照地铁综合监控 ISCS 标准 HMI 交互逻辑实现告警与前端界面联动。地铁真实 HMI 规范你现场经验版一级、二级、三级告警 → 全部在 HMI 主界面最下方状态栏闪烁一级、二级告警 → 额外弹出独立告警子窗体 声光提示三级预警 → 只底部闪烁无弹窗、无声光、不打扰操作员本篇完全按地铁现场标准实现无任何多余功能。二、地铁 ISCS 告警分级 HMI 规则一级告警紧急底部状态栏闪烁 弹出告警子窗体 声光报警二级告警重要底部状态栏闪烁 弹出告警子窗体 声光提示三级告警预警/提示底部状态栏闪烁仅此一项无弹窗、无声光、不影响操作三、告警规则实体地铁标准字段importlombok.Data;DatapublicclassAlarmRule{// 点位信息privateStringpointId;privateStringdeviceId;privateStringpointName;privateStringsystemType;// 告警类型privateIntegeralarmType;// 阈值参数privateDoublemaxValue;privateDoubleminValue;privateDoublechangeThreshold;// 防抖次数privateintfilterCount3;privateintrecoverFilterCount3;// 告警等级 1 一级 2 二级 3 三级privateIntegeralarmLevel;}四、HMI 推送 DTO前端界面专用importlombok.Data;DatapublicclassAlarmHmiDTO{// 告警基本信息privateStringpointName;privateStringsystemType;privateDoublevalue;privateStringalarmDesc;privateLongts;// 告警等级privateIntegeralarmLevel;}五、地铁 HMI 告警推送核心代码importorg.springframework.stereotype.Service;ServicepublicclassAlarmHmiPushService{/** * 地铁 ISCS 标准告警推送入口 * 1、2、3 级 → 全部底部闪烁 * 1、2 级 → 额外弹窗 声光 * 3 级 → 仅闪烁 */publicvoidpushAlarmToHmi(AlarmHmiDTOhmiDTO){if(hmiDTOnull){return;}// // 统一动作所有等级告警 → HMI 底部状态栏闪烁// pushToStatusBar(hmiDTO);// // 一级、二级 → 弹出告警子窗体 声光// if(hmiDTO.getAlarmLevel()1||hmiDTO.getAlarmLevel()2){pushToPopupWindow(hmiDTO);}}/** * 推送到底部状态栏所有告警都执行 */privatevoidpushToStatusBar(AlarmHmiDTOdto){// WebSocket 推送 HMI 底部状态栏闪烁WebSocketUtil.sendToHmi(ALARM_STATUS_BAR,dto);}/** * 推送到弹窗子窗体 声光仅 1、2 级 */privatevoidpushToPopupWindow(AlarmHmiDTOdto){// WebSocket 推送 → 弹出独立告警子窗体 声光WebSocketUtil.sendToHmi(ALARM_POPUP_WINDOW,dto);}}六、业务层调用完整链路// 1. 获取实时采集数据CollectDataDTOdatacollectService.getRealTimeData();// 2. 获取点位告警规则AlarmRulerulealarmRuleService.getRuleByPointId(data.getPointId());// 3. 防抖告警校验booleanisAlarmalarmEngine.checkWithFilter(data,rule);if(isAlarm){// 封装 HMI 推送对象AlarmHmiDTOhmiDTOnewAlarmHmiDTO();hmiDTO.setPointName(rule.getPointName());hmiDTO.setSystemType(rule.getSystemType());hmiDTO.setValue(data.getValue());hmiDTO.setAlarmLevel(rule.getAlarmLevel());// 推送到地铁 HMI 界面alarmHmiPushService.pushAlarmToHmi(hmiDTO);// 告警历史存入 TDenginetdEngineService.insertAlarmRecord(data,rule);}七、地铁 HMI 界面行为说明现场标准所有告警1、2、3 级HMI 主界面最下方状态栏统一闪烁显示一级、二级告警弹出独立告警子窗体伴随声光提示需要人工确认关闭三级预警仅状态栏闪烁无弹窗、无声光不影响操作员监控八、地铁项目规范要点8 年轨交经验地铁综合监控为内网封闭系统无微信、公网推送。告警展示严格遵循 HMI 标准全部底部闪烁高等级弹窗。声光报警仅用于一级、二级三级不允许声音提示。所有告警必须入库支持历史查询、SOE 追忆、报表统计。九、总结本篇完全按照地铁 ISCS 综合监控真实 HMI 规范实现一、二、三级告警 → 全部在界面最下方状态栏闪烁一、二级告警 → 弹出独立告警子窗体 声光三级预警 → 仅闪烁、无声光无弹窗代码可直接用于地铁 BAS/FAS/环控项目开发与验收。本专栏基于 8 年轨道交通现场开发经验持续更新地铁 ISCS/SCADA 实战干货所有代码均来自真实项目。需要源码的读者评论区留言【源码】关注持续更新。下一篇第八篇 —— 告警确认、告警屏蔽、告警静音地铁运维必备功能