4. 能耗数据采集通信协议与组态

在 SCADA 能耗计量系统中,现场设备种类繁多:电表、水表、气表、冷热量表、PLC、变频器、网关等,它们使用的通信协议各不相同。SCADA 要完成能耗数据采集,第一步就是让主站与这些设备“说同一种语言”。本节围绕 Modbus、DL/T645、IEC 60870-5-104(简称 IEC 104)、OPC UA 四类典型协议,说明它们在能耗采集中的定位、报文特征、组态要点,以及点表配置的核心方法。

一、四类协议在能耗采集中的定位

Modbus 是最常见的现场总线协议,分为 Modbus RTU(串口)和 Modbus TCP(以太网)。它结构简单、开放免费,大量电表、温湿度仪表、PLC 都支持。能耗采集中,Modbus 常用于采集瞬时功率、电压、电流、累计电量等寄存器数据。

DL/T645 是我国多功能电能表的行业标准协议,专门用于电能表。它采用串口通信,报文有固定的帧格式,包含表地址、控制码、数据域和校验。DL/T645 的读数据命令可以直接读取“当前正向有功总电能”等电能量数据,是电表能耗采集的首选协议。

IEC 104 是电力系统远动通信协议,基于 TCP/IP,采用“总召唤 + 变化上送”机制,适合变电站、配电房等场景中与 RTU、保护装置、测控装置通信。在能耗系统中,IEC 104 常用于采集配电回路的遥测值(功率、电能)和遥信状态。

OPC UA 是面向工业 4.0 的统一架构协议,具有信息模型、安全加密、跨平台等特性。它适合在 SCADA 与上层能源管理平台、MES、云平台之间做数据交换,也越来越多地直接用于支持 OPC UA 的智能仪表和 PLC。

能耗采集协议分层与数据流向 现场设备层 多功能电能表 DL/T645 / Modbus 水表 / 气表 / 热量表 Modbus RTU PLC / 变频器 Modbus TCP / OPC UA RTU / 测控装置 IEC 104 智能仪表 OPC UA 采集网关 / 通信层 串口服务器 RS-485 转以太网 协议转换网关 DL/T645→Modbus TCP IEC 104 主站 总召唤 / 变化上送 OPC UA Client 订阅 / 浏览节点 Modbus 主站 轮询 / 批量读取 SCADA 组态层 通信驱动配置 IP / 端口 / 站号 / 超时 点表配置 寄存器 / 地址 / 数据类型 数据预处理 量程 / 系数 / 单位 实时数据库 标签 / 时标 / 质量码 能耗计算与展示 KPI / 报表 / 趋势 上层平台 能源管理 EMS MES / 云平台 OPC UA / API 数据中台 历史归档 现场设备 → 采集网关 → SCADA 组态 → 上层平台,协议逐层转换与汇聚

二、Modbus 采集组态要点

Modbus 组态的核心是“从站地址 + 功能码 + 寄存器地址 + 数据类型”。以一台支持 Modbus RTU 的三相电表为例,假设从站地址为 1,波特率 9600,8 位数据位,1 位停止位,无校验。要读取 A 相电压,查表得知寄存器地址为 0x0000(保持寄存器),功能码 03,数据类型为 16 位无符号整数,量程 0~65535,实际值需乘以 0.1 得到电压值。

在 SCADA 通信组态中,先建立串口通道,设置串口参数;再建立设备节点,填写从站地址和轮询周期;最后在点表中逐条添加测点。点表通常包含以下字段:

点名称寄存器地址功能码数据类型系数单位轮询周期
A相电压0x000003UINT160.1V1s
A相电流0x000103UINT160.01A1s
有功功率0x000203INT320.001kW1s
正向有功总电能0x001003UINT320.01kWh60s

注意:32 位数据在 Modbus 中占用两个连续寄存器,存在高低字顺序问题。组态时需确认设备手册中的字序,常见有“高字在前”和“低字在前”两种,选错会导致数值严重偏差。例如有功功率寄存器 0x0002、0x0003,若实际值为 123.456 kW,按 0.001 系数反推原始值为 123456,对应十六进制 0x0001E240,高字 0x0001、低字 0xE240,组态时字序必须与设备一致。

三、DL/T645 采集组态要点

DL/T645 的组态与 Modbus 不同,它不按寄存器地址访问,而是按“数据标识码”读取。例如读取“当前正向有功总电能”,数据标识为 00 00 00 00(不同版本略有差异),控制码为 11(读数据)。报文格式为:68 A0 A1 A2 A3 A4 A5 68 11 04 33 33 33 33 CS 16。其中 A0~A5 为表地址,CS 为校验和。

在 SCADA 中配置 DL/T645 设备时,需要填写表地址、通信速率、通信端口,并在点表中填写数据标识码和解析方式。DL/T645 的电能数据通常为 4 字节 BCD 码,例如报文返回 33 33 33 33,表示 333333.33 kWh。组态时需选择 BCD 解析,并设置小数点位数。

DL/T645 表地址常用 12 位十进制数表示,通信时按低位在前、高位在后排列。若表地址为 000000000001,报文中地址域为 01 00 00 00 00 00。组态时不要直接填 12 位字符串,应按协议要求转换。

四、IEC 104 采集组态要点

IEC 104 采用“总召唤”机制:主站启动后先发送总召唤命令,RTU 将当前所有遥测、遥信值上送;之后主站周期性总召唤,同时 RTU 在数据变化时主动上送变化值。在能耗采集中,遥测点通常对应功率、电压、电流、电能等模拟量,遥信点对应开关状态。

IEC 104 组态的关键参数包括:主站 IP 和端口(默认 2404)、公共地址(ASDU 地址)、传送原因、信息对象地址(IOA)。点表配置时,每个测点需要指定 IOA、类型标识(如 M_ME_NC_1 为短浮点遥测)、系数和单位。例如 IOA=16385 对应 1# 变压器有功功率,类型为 M_ME_NC_1,系数 1,单位 kW。

IEC 104 的遥测值通常采用归一化值、标度化值或短浮点数。短浮点数(类型 13)直接表示 IEEE 754 浮点数,组态最简单;归一化值(类型 9)需要按量程换算。组态时应优先确认设备使用的类型标识,避免解析错误。

五、OPC UA 采集组态要点

OPC UA 的组态方式与前三种协议差异较大。它不依赖寄存器地址或数据标识,而是通过“节点 ID”访问数据。SCADA 作为 OPC UA Client,先连接 Server 的 Endpoint URL(如 opc.tcp://192.168.1.10:4840),然后浏览地址空间,找到目标节点,再建立订阅或直接读取。

点表配置时,每个测点对应一个 NodeId,例如 ns=2;s=Device1.Power 表示命名空间 2 下字符串标识为 Device1.Power 的节点。OPC UA 支持订阅模式,可设置采样间隔和发布间隔,适合变化频繁的能耗数据。安全方面,需选择安全策略(如 Basic256Sha256)和证书,生产环境不建议使用 None 策略。

六、点表配置的通用方法与校验

无论使用哪种协议,点表配置都应遵循“先通道、后设备、再测点”的顺序。配置完成后,必须进行校验:

  1. 通信状态检查:查看通道是否在线、设备是否响应、有无超时或校验错误。
  2. 数值合理性检查:电压应在额定值附近,电流不应为负(除非有反向计量),功率因数应在 0~1 之间。
  3. 量纲与系数检查:用钳形表或电表显示值对比 SCADA 采集值,偏差应在允许范围内。
  4. 时标与质量码检查:确认数据时标正确,质量码为“良好”,无“陈旧”或“无效”标记。
点表配置中最常见的错误是地址偏移。Modbus 协议中,寄存器地址有时从 0 开始,有时从 1 开始,设备手册与 SCADA 软件的定义可能不一致。配置前务必确认“协议地址”与“组态地址”的对应关系,必要时用单点读取测试验证。

实际项目中,一个配电房可能有几十台电表,若逐台手工配置点表,效率低且易错。可采用“点表模板 + 批量导入”的方式:先按设备类型建立模板,包含寄存器地址、数据类型、系数、单位等固定字段,再按设备实例替换从站地址和点名称,最后通过 CSV 或 Excel 导入 SCADA。这样既保证一致性,也便于后期维护。

综上,Modbus 适合通用设备,DL/T645 专攻电能表,IEC 104 面向电力远动,OPC UA 面向信息集成。理解每种协议的报文特征和组态参数,是 SCADA 能耗采集系统稳定运行的基础。点表配置不是简单的地址抄录,而是需要结合设备手册、协议规范和现场校验,才能保证能耗数据的准确性和可用性。