4. 数据采集与监控(SCADA)设计
SCADA 系统,说白了就是微电网的「眼睛」和「耳朵」。没有它,你连光伏板发了多少电、储能电池还剩多少容量都搞不清楚。我做了这么多年能量管理系统,最深的体会就是:SCADA 搞不好,上层优化全是瞎扯。
这一节,咱们就聊聊 SCADA 系统的架构怎么搭、数据模型怎么建、采集频率怎么定、历史数据怎么存。嗯,都是实战中踩过坑才总结出来的东西。
4.1 SCADA 系统架构
我个人习惯把 SCADA 架构分成三层:站控层、通信层、间隔层。你想想看,微电网里设备那么多——光伏逆变器、储能 PCS、充电桩、并网开关……总得有个清晰的层级来管理它们。
核心原则:间隔层负责「采」,通信层负责「传」,站控层负责「管」。各司其职,互不干扰。
下面这张图是我常用的 SCADA 架构,你可以参考一下:
我在实际项目中遇到过一个问题:某微电网现场有 30 多台逆变器,全部用 Modbus RTU 走 RS485 总线。结果呢?采集周期长达 10 秒,上层 EMS 根本没法做实时控制。后来我改成每台逆变器单独走 Modbus TCP,采集周期直接降到 1 秒以内。所以啊,通信层的设计一定要考虑带宽和实时性。
4.2 遥测遥信数据模型
数据模型这块,说白了就是定义「采集什么」和「怎么存」。我一般把数据分成两大类:遥测和遥信。
- 遥测(YC):连续变化的模拟量。比如电压、电流、功率、频率、SOC。
- 遥信(YX):离散的状态量。比如开关分合、保护动作、设备告警。
你想想看,一个微电网少说也有几百个遥测点、上千个遥信点。如果不建好模型,后期维护就是灾难。我习惯用下面这种表格来定义数据点:
| 点号 | 名称 | 类型 | 单位 | 量程 | 采集周期 | 存储策略 |
|---|---|---|---|---|---|---|
| YC_001 | 光伏总功率 | 遥测 | kW | 0~500 | 1s | 实时+分钟 |
| YC_002 | 储能SOC | 遥测 | % | 0~100 | 5s | 分钟+小时 |
| YX_001 | 并网开关状态 | 遥信 | - | 0/1 | 变化触发 | 事件记录 |
| YX_002 | 逆变器故障告警 | 遥信 | - | 0/1 | 变化触发 | 事件记录 |
小技巧:点号命名最好带前缀,比如 PV_YC_001 表示光伏遥测点 001。这样一看就知道是哪个设备的什么数据,省得后期查半天。
4.3 数据采集频率设计
采集频率怎么定?这个问题我经常被问到。其实没有标准答案,得看你的业务需求。但我可以给你一个参考:
- 电气量(电压、电流、功率):1~5 秒。用于实时监控和闭环控制。
- 状态量(开关、告警):变化触发。别用轮询,浪费带宽。
- 环境量(温度、辐照度):30 秒~5 分钟。变化慢,没必要高频采集。
- 电度量(累计 kWh):15 分钟。符合电网结算要求。
我曾经在一个项目中,把所有数据都设成 1 秒采集一次。结果呢?通信管理机 CPU 直接跑满,丢包率高达 20%。后来我调整了策略:关键数据高频采,非关键数据低频采,问题就解决了。
注意:采集频率不是越高越好。频率太高,通信带宽和存储压力都会剧增。我见过有人把温度也设成 1 秒采集,纯属浪费资源。
4.4 历史数据存储策略
历史数据存储,说白了就是「存多久」和「怎么存」。微电网运行一年,数据量轻松上 TB。如果不做策略,硬盘很快就满了。
我常用的策略是分级存储:
- 实时库:存最近 1 小时的数据,1 秒一个点。用于实时展示和短期分析。
- 分钟库:存最近 30 天的数据,1 分钟一个点。用于日分析和周分析。
- 小时库:存最近 1 年的数据,1 小时一个点。用于月分析和年分析。
- 日库:存长期数据,1 天一个点。用于年度对比和趋势分析。
你想想看,如果所有数据都按 1 秒粒度存一年,那得多少存储空间?我算过一笔账:一个 100 个遥测点的微电网,1 秒存一次,一年就是 100 × 86400 × 365 ≈ 31.5 亿条记录。这还不算遥信和事件数据。所以啊,分级存储是必须的。
我的建议:用时序数据库(比如 InfluxDB、TimescaleDB)来存历史数据。关系型数据库处理海量时序数据效率太低,我踩过这个坑。
下面是一个简单的存储策略配置示例:
// 存储策略配置(伪代码)
{
"实时库": {
"粒度": "1s",
"保留周期": "1h",
"存储引擎": "内存数据库"
},
"分钟库": {
"粒度": "1min",
"保留周期": "30d",
"存储引擎": "时序数据库"
},
"小时库": {
"粒度": "1h",
"保留周期": "365d",
"存储引擎": "时序数据库"
},
"日库": {
"粒度": "1d",
"保留周期": "永久",
"存储引擎": "关系数据库"
}
}
嗯,SCADA 设计这块内容不少,但核心就三点:架构要分层、模型要规范、存储要分级。把这三点做好了,后面的 EMS 上层应用才能跑得稳。