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% 量程)过滤,数字量按变位存储,减少归档量。
批量归档不是“攒得越多越好”。批太大导致单次事务时间长、失败重试代价高;批太小则失去吞吐优势。一般以 1~5 秒或 1000~10000 条为参考区间,结合历史库写入能力实测调整。

实战:配置一个模拟变电站的历史数据写入任务

假设有一个 110kV 模拟变电站,包含 1 台主变、2 回 110kV 进线、4 回 10kV 出线。需要将以下测点写入历史库:

测点号名称类型采集频率存储策略
YA001110kV I 段母线电压AI1s死区 0.1kV,周期 5s
YA002主变高压侧电流AI1s死区 0.5A,周期 5s
YD001101 断路器位置DI变位触发变位存储
YP001主变有功电能量PI1min小时冻结

配置任务的关键参数如下(示例值,需按现场调整):

任务名称: 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 响应时间。

模拟变电站历史数据写入链路 SCADA 网关 IEC 60870-5-104 遥测/遥信/电能量 EMS 接口 潮流/状态估计结果 DCS 接口 过程量 100ms~1s 采集与预处理 时标对齐 质量码判定 死区过滤 变位检测 Good/Bad/Questionable 本地缓冲 环形队列 批大小 2000 归档周期 5s 断点文件 失败队列 历史库 HistoryAPI v2 事务批量提交 幂等键 测点号+时标 质量码归档 结果判读要点 正常:YA001 曲线 5s 间隔连续,质量码 Good 异常:断链 30s 出现 Bad 质量段,恢复后从断点续传无空洞 排查:重复时标查幂等键;归档延迟查批大小与 API 响应

把上述链路配置清楚后,历史库才具备可用的数据基础。后续的趋势分析、报表和故障回溯,都依赖本节所建立的采集频率、质量码和归档机制是否一致、可靠。