2. 电力监控数据采集与历史库写入
历史库的数据不是凭空产生的,它来自现场数据源经过采集、质量判定、接口写入和批量归档的完整链路。理解这条链路,是配置任何历史数据写入任务的前提。本节围绕 SCADA/EMS/DCS 三类数据源、测点类型、采集频率、数据质量码,以及历史库写入接口与批量归档机制展开,最后给出一个模拟变电站历史数据写入任务的配置示例。
三类数据源与测点类型
电力监控系统中的数据源通常分为三类。SCADA(数据采集与监视控制)面向变电站、开关站等一次设备,采集遥测(模拟量,如电压、电流、功率)、遥信(开关量,如断路器分合位、保护动作信号)、遥控和遥调。EMS(能量管理系统)面向电网调度层,除 SCADA 数据外还包含状态估计结果、潮流计算输出、AGC 调节指令等,测点更偏系统级。DCS(分散控制系统)多用于电厂或工业过程,采集温度、压力、流量、阀门开度等过程量,采样密度高、测点数量大。
从历史库角度看,测点类型决定了存储方式和压缩策略。常见分类如下:
- 模拟量(AI):连续变化,如 110kV 母线电压、主变油温。历史库按时间序列存储浮点值,常配合死区压缩。
- 数字量(DI):状态量,如断路器位置、保护硬接点。只在变位时记录,带时标。
- 累计量(PI):电能量、流量累计,需处理溢出和清零,常按小时/日冻结。
- 计算量:由其他测点运算得到,如功率因数、线损率,写入前需明确计算周期。
采集频率与数据质量码
采集频率需与业务需求匹配。典型配置:SCADA 遥测 1~5 秒,遥信按变位事件触发;EMS 潮流结果 1~5 分钟;DCS 过程量 100ms~1s。频率过高会放大存储和写入压力,过低则丢失动态过程。工程上常对同一测点设置“采集频率”和“存储频率”两级:采集可以很快,但只有越过死区或到达存储周期才落库。
数据质量码是历史库可信度的关键。每个采样值应携带质量标志,常见取值包括:
| 质量码 | 含义 | 历史库处理建议 |
|---|---|---|
| Good | 采集正常,值有效 | 正常写入 |
| Bad | 通道故障、设备离线 | 写入质量位,值可置空或保持 |
| Questionable | 越限、超时、替代值 | 写入并标记,趋势分析时降权 |
| Substituted | 人工置数或模拟值 | 必须标记,避免与实测混淆 |
质量码不参与数值压缩判断,但必须随值一起归档,否则事后无法区分“真实为零”和“采集失败”。
历史库写入接口与批量归档机制
历史库写入通常有两种接口形态。一是实时写入接口:采集程序每得到一个合格采样,立即调用 API 写入,延迟低,适合关键遥测和事件。二是批量归档接口:采集端先写入本地缓存或消息队列,归档程序按周期(如 1 分钟或 5 分钟)批量提交,吞吐高、对历史库压力小,适合 DCS 大量过程量。
批量归档的核心机制包括:
- 缓冲与批大小:内存或磁盘队列缓存待写记录,达到批大小(如 5000 条)或超时即触发提交。
- 事务与幂等:一批写入放在同一事务中,失败整批重试;用测点号+时标作为唯一键保证重复提交不产生重复数据。
- 断点续传:记录最后成功归档的时标,重启后从断点继续,避免数据空洞。
- 压缩与死区:模拟量按死区(如 0.1% 量程)过滤,数字量按变位存储,减少归档量。
实战:配置一个模拟变电站的历史数据写入任务
假设有一个 110kV 模拟变电站,包含 1 台主变、2 回 110kV 进线、4 回 10kV 出线。需要将以下测点写入历史库:
| 测点号 | 名称 | 类型 | 采集频率 | 存储策略 |
|---|---|---|---|---|
| YA001 | 110kV I 段母线电压 | AI | 1s | 死区 0.1kV,周期 5s |
| YA002 | 主变高压侧电流 | AI | 1s | 死区 0.5A,周期 5s |
| YD001 | 101 断路器位置 | DI | 变位触发 | 变位存储 |
| YP001 | 主变有功电能量 | PI | 1min | 小时冻结 |
配置任务的关键参数如下(示例值,需按现场调整):
任务名称: SUB110_HIS_WRITE
数据源: SCADA_GATEWAY_01 (IEC 60870-5-104)
写入接口: HistoryAPI v2 (批量归档)
批大小: 2000 条
归档周期: 5 s
重试策略: 3 次, 间隔 2 s
断点文件: /data/his/checkpoint_sub110.dat
质量码映射: 0=Good, 1=Bad, 2=Questionable, 3=Substituted
执行流程:采集程序从 SCADA 网关接收带时标和质量的测点值,先按测点配置做死区判断;合格值进入本地环形缓冲。归档线程每 5 秒或缓冲达到 2000 条时,将记录按测点号+时标排序,调用 HistoryAPI 批量提交。提交成功后更新断点文件;失败则按重试策略重发,超过重试次数写入本地失败队列并告警。
结果观察与判断:在历史库中查询 YA001 最近 10 分钟曲线,应看到 5 秒间隔的连续点,且质量码均为 Good;人为断开 SCADA 网关 30 秒,曲线应出现 Bad 质量段而非数值跳变;恢复后归档应从断点继续,不出现时间空洞。若发现重复时标记录,检查幂等键是否生效;若归档延迟持续增大,检查批大小和 HistoryAPI 响应时间。
把上述链路配置清楚后,历史库才具备可用的数据基础。后续的趋势分析、报表和故障回溯,都依赖本节所建立的采集频率、质量码和归档机制是否一致、可靠。