☰
箱变综合智能在线监控系统架构与本地联动落地实践
2026/10/27 4:51:36 网站建设 项目流程

简介:面向箱式变电站运维人员、配电室管理人员与电力自动化技术人员的《箱变综合智能在线监控系统》技术文档,针对箱变环境温湿度、烟雾及防盗监测需求,说明如何借助配电房一体化监控装置实现遥测、遥信、遥控、遥调,以减少日常巡检工作量并提升供电可靠性。资源包共 1 个 doc 文件,约 2.2MB,以图文混排的产品介绍形式呈现,可直接阅读或作为方案素材。目前已有 649 人学习。文档从系统概述与应用场景切入,展开站端系统、软件平台与移动客户端三部分的分布式模块化架构,重点介绍 HT500 Plus 一体化监控装置的硬件配置与通信中断时的离线联动能力;功能覆盖环境参数与安防告警监测、风机灯具空调远程启停、摄像机 P/T/Z 控制、实时告警记录、历史曲线查询与 Excel 导出,以及电子地图、3D 情景、电能分析等综合展示模块,适合方案编写、设备选型与系统设计参考。

1. 一台箱变的午后告警:这套系统到底在盯什么

夏天午后两点,某园区一台箱变的柜内温度爬到 48℃,湿度 82%,风机却还停着。等运维人员开车四十分钟赶到,绝缘件表面已经挂了一层凝露。箱变综合智能在线监控系统要解决的就是这类事:把箱变环境监测里的温度、湿度、水浸、烟感、门禁防盗,连同设备状态和视频画面一起收进柜内一台监控主机,经光纤或 4G/5G 上行到平台,让风机远程控制、空调启停这类动作在值班室点一下就完成,而不是等人跑现场。

这套方案适合谁?做配电房、环网柜、分支箱、开关站运维的集成商和二次开发团队最对口。它给的不是一套库,而是一份完整的产品与方案文档:三段式架构怎么切、一体化监控装置有哪些接口、四遥点位怎么映射、联动规则怎么配。拿着它做投标方案、做站端软件二次开发、给现有 SCADA 补一层环境与安防监测,都能直接落地。

2. 架构拆解:站端、平台、移动端三段式怎么分工

这份文档最值钱的地方,是把一个"看起来什么都管"的系统切成了三段,而且切得干净。站端只负责采集和执行,平台只负责存储、展示和下发,移动端只负责看和点。三段之间靠一条上行链路解耦,任何一段挂了,另外两段还能各自活着。

2.1 为什么是分布式加模块化,而不是一个大平台

很多同类项目翻车,根源是把联动逻辑写在了平台侧。平台一断网,箱变里的风机、水泵全成了摆设。这套方案在架构描述里明确写了"各个站点子系统独立运行,具备各自本地联动控制、异常报警功能",等于把实时性要求最高的那部分下沉到了站端主机。

我一般把这个架构理解成三层职责:

层级部署位置核心职责断网后的行为
站端系统箱变/配电房柜内传感器采集、视频接入、本地联动、本地告警继续采集、继续联动、数据本地缓存
软件平台机房/云多站汇聚、历史存储、报表、远程控制、权限停止接收,恢复后补传
移动端手机/平板/移动 WEB环境查看、设备控制、曲线查询、告警推送不可用

模块化体现在业务维度上:环境监测、安防监控、火灾消防、设备状态、视频监控是五条相对独立的业务线,共用同一套采集通道和同一个展示框架。加一路 SF6 检测不需要动安防模块,加一路水浸不需要改视频链路。这个切法对二次开发很友好,后面第 6 章会展开。

2.2 站端系统:采集侧和上行侧的分界线

站端系统的边界很清晰:向上只有一个出口——光纤或者 4G/5G 无线网络;向下则是一堆异构接口,RS485 总线、开关量输入输出、视频网口、模拟量输入。

上行链路的选择有讲究。固定站点、有管沟的,走光纤,带宽稳、延迟低,4 路高清视频能实时预览;老站改造、挖沟成本高的,走 4G/5G,靠本地 TF 卡和主机硬盘先存着,网络恢复再补传。文档里写的"利用数据采集设备通过光纤或 4/5G 无线网络将数据上送",实际工程里这两条通常是并存的,光纤为主、无线为备。

站端还有一个容易被忽略的角色:它同时是本地人机界面的宿主。7 寸或 10.1 寸触摸屏直接挂在主机上,值班人员站在柜门口就能看实时数据、手动控制、查报警记录。这块屏不是装饰,它是网络全断时唯一的操作入口。

提示:站端和平台的职责边界一旦模糊,后面所有问题都会变成"到底是网的问题还是软件的问题"。我的做法是在站端留一个本地点表文件,平台下发和控制指令都写进这个文件,出问题直接比对文件内容,比翻日志快得多。

2.3 软件平台:四条业务线共用一套数据底座

平台侧按文档描述,提供的是"设备状态监测、环境实时监控、安防监控、火灾消防"的检测与控制,外加数据管理。听起来是四个系统,实际上底座只有一套:时序数据表存遥测量,事件表存告警和操作记录,媒体表存抓拍图片和录像索引,配置表存点位、阈值和联动关系。

综合展示那部分值得单独说。电子地图支持图片导入、设备图元添加、设备信息查看与控制、设备告警提示,这套"底图 + 图元 + 绑定点位"的做法在电力监控里是标配,比纯表格直观得多。视频侧支持多画面分割、全屏、图像信息叠加(时间、地点、名称),这要求平台在转发视频流时把 OSD 信息一并处理,不能只做个 iframe 嵌播放器。

2.4 移动端与触屏:同一份数据的三处出口

移动端提供的是移动 WEB 和移动 APP 两套界面,核心功能就三块:环境安全监测、设备控制、曲线查询。站端触屏则多了 3D 情景、视频监控、电能分析、联动抓拍与录像四个入口。

同一个数据、三种呈现,最怕的是各写各的接口。合理的做法是后端统一出 REST 接口,字段名和单位在接口层定死,触屏、WEB、APP 三端只做渲染差异。比如温度字段统一叫temp,单位统一摄氏度,保留一位小数,前端不许自己四舍五入。这样后面加第四种终端(比如大屏看板)时不用重写业务逻辑。

3. 站端采集与控制:一体化监控装置的接口清单

这一章是整份文档里技术密度最高的部分。核心装置基于 Cortex-A9 双核/四核工业级处理器,带硬件编解码,接口多到有点夸张。把这些接口一个个对上实际传感器,是项目能不能跑起来的关键。

3.1 接口盘点:哪些口接什么设备

先把文档给的接口清单摆出来,再逐个说用途:

接口数量典型用途
千兆以太网1 路以上上行平台、接入 IPC
RS4857 路温湿度、水浸、烟感、SF6/O2、电表、除湿机
AD 输入8 路4-20mA 变送器、蓄电池电压、变压器温度
DI 输入8 路(可扩至 24)门磁、红外双鉴、水浸开关量、开关位置
DO 输出8 路(可扩至 24)风机启停、水泵、灯光、声光报警器、空调控制
USB host3 路鼠标键盘、U 盘导出、4G 模块
HDMI / LVDS各 1 路外接大屏 / 直连液晶屏
TF 卡1 路断网缓存、录像本地存储
视频4 路 IPC实时预览、存储、回放

7 路 RS485 是这里最实用的设计。原因很直白:箱变里的传感器几乎全是 RS485 的,温湿度一体、水浸、烟感、SF6/O2 四合一、红外双鉴,一个柜子下来五六种很常见。如果只有一两路总线,就得靠地址冲突和分时轮询硬凑,调试时极难受。

DI 和 DO 的可扩展性(8 路扩到 24 路)也不是纸面参数。一个中等规模的配电室,光 DO 就要吃掉:2 台风机、1 台水泵、2 组灯光、1 台除湿机、1 台空调、1 个声光报警器,正好 8 路,一点余量不留。所以实际配置时我一般都按 16 路 DO 起步。

3.2 RS485 扩展 128 路采集器:地址规划是门手艺

文档里写"通过 RS485 总线扩展采集器,最多可支持 128 路环境参数采集器"。128 路听着宽裕,真挂起来会踩坑。

Modbus RTU 的从站地址是 1~247,理论上够用,但一条总线上的负载能力、线缆长度、波特率三者是互相牵制的。9600bps 挂 32 个从站,轮询一圈大约两到三秒,还能接受;挂到 60 个以上,实时性就明显下来了,温度变化会有肉眼可见的滞后。

我一般这样规划地址段:

01-19 温湿度采集器(每条总线一段,不跨段) 20-29 水浸、烟感等开关量传感器 30-39 SF6/O2 四合一气体检测 40-49 智能电表、电能质量模块 50-59 空调、除湿机等带通讯的控制设备 60-99 预留扩展

关键是"每条总线一段,不跨段"。这样某一台设备坏了或者地址冲突,影响范围锁定在一条总线上,排查时拔一条线就能定位。

轮询代码侧的逻辑大致是这样,用 Python 写个骨架:

# 单条 RS485 总线的轮询骨架,按地址段分组,坏点跳过不阻塞 BUS_ADDR_MAP = {1: range(1, 20), 2: range(20, 30), 3: range(30, 40)} def poll_bus(bus_id, client, cache): for addr in BUS_ADDR_MAP[bus_id]: try: # 读保持寄存器,量程与寄存器映射见点表配置 regs = client.read_holding_registers(addr, 0, 4, timeout=0.5) except ModbusTimeout: # 单点超时不重试,标记离线,避免拖垮整轮周期 cache.mark_offline(bus_id, addr) continue # 原始值按点表里的系数和偏移量还原成工程值 cache.update(bus_id, addr, regs)

逻辑说明:BUS_ADDR_MAP就是上面那张地址段表的代码化;timeout=0.5是单点超时,一定要设,不设的话一个掉线设备能把整轮轮询卡死几十秒;mark_offline而不是抛异常往上冒,是因为采集线程必须活着,一个点坏了不能让整条线停摆。工程值还原用的系数和偏移放在点表配置里,不在代码里硬编码,这是后面二次开发能省力的地方。

3.3 本地联动:断网时为什么还能自己开风机

这是整套方案里最值得抄的一段设计。"当监控主机与远程服务器通信中断时,控制主机可离线实现水泵、风机的联动控制,及时启动水泵、风机处理故障"。

实现上就两件事:联动规则存在本地,执行引擎跑在本地。

规则本身不复杂,比如"温度超过 35℃ 自动启动空调降温"、"SF6 泄漏自动启动风机并触发声光报警"、"水浸报警启动给排水系统"。难点在于规则怎么下发、怎么校验、断网时用哪一版。

我一般的做法是三段式:平台编辑规则,导出成版本化配置文件下发到站端,站端加载后立即生效并回执版本号。平台侧保留所有版本,站端每 5 分钟上报一次当前生效版本,两边对不上就告警。这相当于给联动规则买了个后悔药,出问题能回滚到上一版。

执行侧要注意优先级。同一个 DO 口可能被多条规则抢:温度超限要开风机,烟感报警也要开风机。这时候不能简单"后到先得",得有优先级和保持时间。烟感(消防类)优先级高于温湿度(环境类),环境类高于节能策略。高优先级规则解除后,还要判断低优先级规则是否仍然成立,成立就继续输出。

3.4 视频通道:4 路 IPC 的接入与抓拍

装置支持 4 路高清 IPC 接入和 4 路视频实时预览、存储、回放,带硬件编解码。这意味着一台主机能同时干采集和录像,不用单独配 NVR。

真正有含金量的是"联动抓拍":当监测到非法人员闯入时,对闯入时刻前后图像信息进行捕获,并远传。这里的关键词是"前后"——只抓报警后那一刻没用,人可能已经走了。合理做法是环形缓冲,本地一直存最近 10 到 15 秒的码流,报警触发时把报警点前 10 秒、后 10 秒一起打包上送。

抓拍文件命名也要设计,建议用站点编码_通道号_报警类型_时间戳.jpg,平台侧按前缀分目录存。不加站点编码的话,多站汇聚后几十万张图混在一个目录里,谁看谁头大。

4. 业务规则落地:四遥、阈值与联动逻辑怎么写

文档里"四遥"只有四个字:遥测、遥信、遥控、遥调。真做起来,这四个字要落到表结构、接口协议和状态机上。这一章讲怎么把文档里的功能描述翻译成能跑的代码。

4.1 四遥的点位映射:别让同一个量有两个名字

遥测是模拟量(温度、湿度、电压、电流、功率),遥信是开关量状态(门磁、水浸、开关位置、设备运行状态),遥控是开关动作(风机启停、灯光开关),遥调是参数设置(告警阈值、空调目标温度)。

最容易出乱子的地方是命名。站端叫TEMP1,平台叫temperature,移动端叫envTemp,三处对不上,联调能耗掉一整天。我一般强制一张统一点表,字段固定:

字段含义示例
point_id全局唯一点号ST01.ENV.TEMP.01
point_typeYC/ YX / YK / YTYC
name中文名1#箱变柜内温度
unit工程单位℃
scale / offset系数 / 偏移0.1 / 0
deadband死区0.5
alarm_hi / alarm_lo上上限 / 下下限45 / -10

deadband这一列是血泪经验。温度在 35.0℃ 上下浮动时,如果没有死区,每秒都在触发"越限→恢复→越限",事件表几小时就被写爆。设 0.5 的死区,等于告诉系统"回到 34.5 以下才算恢复"。

4.2 告警事件表:一条记录要能自证清白

文档要求"对于每一条告警信息均记录事件性质、事件对象、事件内容、发生时间、事件原因及其他一些描述信息"。这几项翻译过来就是表结构:

-- 告警事件表:一次告警一行,恢复时更新 recover_time,不新增行 CREATE TABLE alarm_event ( id BIGINT PRIMARY KEY, station_code VARCHAR(32) NOT NULL COMMENT '站点编码', point_id VARCHAR(64) NOT NULL COMMENT '点号', event_type TINYINT NOT NULL COMMENT '1越限 2变位 3离线 4操作', level TINYINT NOT NULL COMMENT '1一般 2重要 3紧急', content VARCHAR(255) NOT NULL COMMENT '事件内容', occur_time DATETIME NOT NULL COMMENT '发生时间', recover_time DATETIME NULL COMMENT '恢复时间,NULL 表示未恢复', cause VARCHAR(255) NULL COMMENT '触发原因,如联动规则ID', media_id BIGINT NULL COMMENT '关联抓拍/录像ID', KEY idx_station_time (station_code, occur_time), KEY idx_point (point_id, occur_time) );

逻辑说明:recover_time为空表示还在告警中,列表页直接WHERE recover_time IS NULL就能出当前告警,不用额外状态字段;cause记录触发它的规则 ID,事后追责时能一路查到是哪条联动规则动的;media_id关联抓拍,前端点一下就能看录像和照片,这就是文档里"对于关联的录像和拍照事件可以直接查看录像和照片"的落法。索引按(站点编码, 时间)建,是考虑多站汇聚后最主要的查询就是"某站某时间段"。

4.3 联动规则的配置化表达

文档列了六条联动:入侵触发摄像机凝视录像加声光报警、温湿度越限启动风机、SF6 泄漏启动风机加声光、水浸启动给排水、开关量输入输出联动支持一对多多对一多对多。

六条规则如果全写成 if-else,第七条第需求来了就得改代码。用配置表达,加规则只是加一条 JSON:

{ "rule_id": "R-SF6-001", "station_code": "ST01", "enabled": true, "priority": 100, "trigger": { "point_id": "ST01.GAS.SF6.01", "operator": "gt", "threshold": 1000, "debounce_ms": 3000 }, "actions": [ { "type": "do", "target": "ST01.DO.FAN.01", "value": 1, "hold_ms": 600000 }, { "type": "do", "target": "ST01.DO.SIREN.01", "value": 1, "hold_ms": 60000 }, { "type": "ptz", "target": "ST01.CAM.02", "preset": 3 }, { "type": "record", "target": "ST01.CAM.02", "pre_sec": 10, "post_sec": 20 } ], "recover": { "operator": "lt", "threshold": 800 } }

参数说明:priority决定多规则抢同一个 DO 时谁说了算,数字大的优先;debounce_ms是防抖,SF6 浓度瞬时可破千,不给 3 秒确认时间会误动作;hold_ms是保持时间,风机启动后即使浓度回落也要吹够十分钟,不然气体还没排完就停;recover的阈值比触发阈值低,这就是死区,防止来回抖动。actions里同时有 DO 控制、云台预置位、录像抓拍,正好对应文档里"入侵行为触发报警时相关摄像机自动凝视侵入目标并启动录像功能"。

4.4 执行引擎:顺序、互锁和补执行

规则配好了,执行顺序还是可能翻车。我一般守住三条。

第一,同一轮里先执行高优先级,同一优先级按rule_id排序,保证结果可复现。第二,DO 输出做互锁,比如水泵和除湿机不允许同时开(有的柜子共用一路电源),互锁关系写在配置里,冲突时高优先级生效、低优先级挂起并在事件表记一条"因互锁未执行"。第三,断网期间产生的告警和联动动作全部落本地,恢复后按时间顺序补传,但补传只补记录,不补执行——十分钟前的"开风机"命令现在执行毫无意义,还可能吓人一跳。

这三条写下来不难,难的是想起来写。我见过一个项目,断网两小时后恢复,站端把积压的四十多条控制指令全重放了一遍,风机水泵来回启停,现场师傅以为设备坏了。

5. 避坑与排查:现场调试最容易翻车的 5 个点

方案文档写得再漂亮,现场该踩的坑一个不少。下面五条都是从实际调试里攒出来的,每条按现象、原因、解决来说。

5.1 现象:某条总线上半数设备离线,重启就好,过两天又离线

原因:RS485 总线挂的设备太多,加上线缆屏蔽层单端接地不规范,共模干扰累积到收发器承受不住。文档写"最多可支持 128 路",那是理论上限,不是一条线的上限。

解决:把单条总线控制在 32 个从站以内,超过就分线;屏蔽层统一在主机侧单点接地;末端加 120Ω 终端电阻;波特率从 9600 降到 4800 换取稳定性,环境量采集对实时性要求不高,这个交换划算。

5.2 现象:温度阈值设成 35℃,空调一天启停四十多次,压缩机和接触器都发热

原因:只设了触发阈值,没设恢复阈值和最短运行时间,温度在 35℃ 上下浮动就反复动作。

解决:触发 35℃、恢复 32℃,中间 3℃ 做死区;再加最短运行时间 5 分钟、最短停机时间 3 分钟。这两个参数必须做进规则配置,不能写死。

5.3 现象:平台显示风机在转,现场风机纹丝不动

原因:联动规则只存在平台侧,没下发到站端主机。平台判断"应该开",界面状态跟着规则走了,但 DO 输出根本没动。

解决:规则下发到站端,站端执行后回写实际 DO 状态,平台展示的是回读值而不是期望值。期望值和实际值不一致时直接在界面上标红,这是排查"平台说开了现场没开"最快的手段。

5.4 现象:报警抓拍的照片和录像时间对不上,差了十几分钟

原因:站端主机、IPC、平台服务器三处时钟各走各的,都没有对时。

解决:全站统一 NTP,站端主机做二级时间源,IPC 和采集器都向它同步;平台侧入库时以站端上报的时间为准,不用服务端接收时间。时间戳对不上的录像,事后检索基本等于废片。

5.5 现象:雷雨天一过,AD 通道和 DI 通道成片损坏

原因:箱变是金属壳体,雷击时壳体电位瞬间抬升,长距离走线的模拟量和开关量首当其冲,接口没有隔离。

解决:AD 和 DI 通道加光耦隔离或磁隔离模块;室外走线穿金属管并两端接地;电源侧加浪涌保护器。这块成本不高,但省下来的返修费是几倍。

6. 二次开发改造思路:把单站监控做成多站集中运维

文档描述的是一个站点的完整闭环,真正的二次开发需求通常是"我有三十个站,怎么管"。改造重心不在画面,在数据模型和接口。

第一步,把站点编码变成一等公民。所有表加station_code,所有点号用站点.类型.设备.序号的命名规则,比如ST07.DO.FAN.02。这一步现在不做,后面加站的时候要改全库。

第二步,上行协议统一。站端到平台用一套固定的 topic 结构,别每个站一个私有协议:

上行 box/{station_code}/telemetry 遥测,JSON 批量,1s~5s 一次 上行 box/{station_code}/event 告警与操作事件,实时 上行 box/{station_code}/media 抓拍与录像索引,按需 下行 box/{station_code}/cmd 遥控遥调指令,带 msg_id 下行 box/{station_code}/rule 联动规则版本下发 上行 box/{station_code}/ack 指令回执与规则版本确认

参数说明:遥测走批量而不是一条一个消息,是为了三十个站每秒几百个点时不至于把 broker 打满;cmd带msg_id是为了回执能对上,超时未收到ack就标红并允许重发;rule单独一个 topic,是因为规则下发的频率极低但对一致性要求极高,混在指令流里容易丢。

第三步,告警分级和收敛。三十个站汇聚后,一次雷雨可能同时冒出上百条告警。按"站—设备—点位"做收敛,同一设备 5 分钟内的同类告警合并成一条,界面上显示"3 条合并",点开看明细。这个功能不难,但没有它,值班员会直接把告警音关掉。

第四步,验证方法。别等现场设备就位再联调,写个灌数据的模拟器,按点表随机生成温湿度、SF6 浓度和开关量变化,从站端一路灌到平台,把告警、联动、报表、导出全跑一遍。模拟器跑通再上现场,能省掉大半的现场返工。

有一个坑我印象很深:某次多站汇聚上线,界面一切正常,报表导出全是空的。查了半天发现 Excel 导出用的是平台本地时区,而时序库存的是 UTC,日期过滤直接错开了八小时。从那以后我每次做跨时区或带时间过滤的功能,都强制走一遍"造一条昨天 23:50 的数据,看能不能被今天的报表捞到"的验证。这种看起来笨的检查,比事后翻日志省事得多。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询