出品:工业通信协议应用技术课题组
技术框架参照:全国工业过程测量控制和自动化标准化技术委员会(SAC/TC124)归口标准体系
行业数据引自:中国电力企业联合会《2025 电力行业年度发展报告》
参考标准:DL/T 645-2007、GB/T 19582.1-2008、IEC 60870-5-104、ISO 20922(MQTT 3.1.1)、Q/GDW 1355-2013
执笔:张明远(工业通信系统架构师,12 年工业物联网项目经验)
审校:李卫东(电力自动化高级工程师,原某省电力科学研究院通信所)
技术内容支持:捷宸电子应用技术团队
适用版本:DL/T 645-1997 / DL/T 645-2007
最后更新:2026 年 7 月
摘要: 本文依据《DL/T 645-1997 多功能电能表通信协议》《DL/T 645-2007 多功能电能表通信协议》电力行业推荐性标准,结合 200+ 工业现场项目实操经验,系统梳理 DL/T645 规约的技术特性、与 Modbus/MQTT 的协议转换逻辑、现场故障排查方法与工程落地规范,为配电监控、能源管理、远程抄表等场景提供可落地的技术参考。本文技术观点基于公开标准文本与实测数据整理,不代表任何设备厂商立场。
一、DL/T645 规约核心技术原理
1.1 基础通信机制
| 序号 | 字段 | 长度 | 说明 |
|---|---|---|---|
| ① | 前导字节 | 0~4 字节 | 0xFE,用于唤醒接收端,适配串口唤醒机制 |
| ② | 帧起始符 | 2 字节 | 固定 0x68 0x68,标识数据帧开始 |
| ③ | 地址域 | 6 字节 | BCD 码表号(12 位十进制),低字节在前 |
| ④ | 控制码 | 1 字节 | 定义帧类型:读数据、写数据、广播校时、错误应答等 |
| ⑤ | 数据长度 | 1 字节 | 数据域的字节总数 |
| ⑥ | 数据域 | N 字节 | 数据标识符 + 实际数据,每字节加 0x33(余 3 编码) |
| ⑦ | 校验码 | 1 字节 | 帧起始符到数据域的算术和(取低 8 位) |
| ⑧ | 结束符 | 1 字节 | 固定 0x16,标识数据帧结束 |
1.2 完整报文实操拆解
以"读取表号 123456789012 的正向有功总电能(DI:00-01-00-00)"为例,完整请求帧与应答帧如下:
请求帧(主站 → 电表):
FE FE FE FE 68 68 12 90 78 56 34 12 68 11 04 33 34 33 33 01 16
└──前导──┘ └起始┘ └──地址域(低字节在前)──┘ └起始┘ │ │ └─数据域─┘ │ └结束
控制码 长度 DI+0x33 校验
FE FE FE FE:4 个前导字节,唤醒电表串口
68 68:帧起始符
12 90 78 56 34 12:表号 123456789012 的 BCD 码,低字节在前(原始表号从右往左每两位一组:12-90-78-56-34-12)
68:第二个帧起始符(地址域后重复)
11:控制码,0x11 = 读数据
04:数据域长度 = 4 字节
33 34 33 33:数据标识符 00-01-00-00 每字节加 0x33 → (00+33)(01+33)(00+33)(00+33)
01:校验码(从第一个 0x68 到数据域末尾的算术和取低 8 位)
16:结束符
FE FE FE FE 68 68 12 90 78 56 34 12 68 91 08 33 34 33 33 78 56 34 33 XX 16
91:控制码,0x91 = 读数据正常应答
08:数据域长度 = 8 字节(4 字节 DI + 4 字节数据)
33 34 33 33:DI 回显(减 0x33 后为 00-01-00-00)
78 56 34 33:电能数据(每字节减 0x33 还原 → 45 23 01 00),按 BCD 码低字节在前解读为 00012345,即 123.45 kWh(隐含 2 位小数)
1.3 数据标识寻址体系
二、DL/T645 ↔ Modbus 协议转换详解
2.1 转换的必要性与核心差异
DL/T645 电表无法直接与 Modbus 系统通信,二者帧结构、寻址方式、数据编码规则完全独立,直接对接会出现无应答、返回非法数据等问题,必须通过协议转换设备实现数据互通。在工业现场,SCADA、PLC、DCS 等上位系统普遍原生支持 Modbus 协议(GB/T 19582.1-2008,等同采用 IEC 61158),而电能表几乎全部采用 DL/T645 规约,协议转换是两类设备对接的必经环节。
两类协议的核心技术差异如下:
| 对比维度 | DL/T645 规约 | Modbus 协议 |
|---|---|---|
| 寻址方式 | 4 字节数据标识符(DI),非连续寻址 | 连续寄存器地址(如保持寄存器 4xxxx) |
| 帧结构 | 双 0x68 起始 + 地址域 + 控制码 + 和校验 + 0x16 结束 | 从站地址 + 功能码 + 数据 + CRC16/LRC 校验 |
| 数据编码 | BCD 码 + 余 3 编码(字节加 0x33) | 二进制整型(Int16/32)、IEEE754 浮点型 |
| 功能体系 | 读/写数据、广播校时、密码认证等专用控制码 | 0x03 读保持寄存器、0x04 读输入寄存器等通用功能码 |
| 安全机制 | 2007 版支持 ESAM 密码验证、身份权限分级 | 原生协议层无内置安全机制(可外挂 TLS/Modbus Security 扩展) |
2.2 协议转换实现原理
┌─────────────┐ RS-485 ┌──────────────────┐ Modbus TCP/RTU ┌─────────────┐
│ DL/T645 │◄────────────►│ 协议转换网关 │◄──────────────────►│ SCADA/PLC │
│ 智能电表 │ 2400bps │ (南向主站/ │ 100Mbps │ 上位系统 │
│ (从站) │ 偶校验 │ 北向从站) │ │ (Modbus主站)│
└─────────────┘ └────────┬─────────┘ └─────────────┘
│ MQTT 3.1.1
▼
┌──────────────────┐
│ 云平台/IoT平台 │
│ (数据存储/展示) │
└──────────────────┘
南向(DL/T645 侧): 网关作为主站,按照配置的采集周期,轮询 RS-485 总线上的所有电表,解析返回帧中的数据标识符与 BCD 码数据,还原为带单位的实际工程量。部分工业级网关内置标准 DL/T645 数据标识库,支持自动识别 97/07 版本,无需手动录入全部 DI 码。
北向(Modbus 侧): 网关作为 Modbus 从站,将采集到的电表数据按映射规则写入内部寄存器区。上位 SCADA/PLC 系统作为 Modbus 主站,通过 RTU 或 TCP 方式轮询网关的寄存器地址,间接获取所有电表的计量数据。
2.3 数据映射与地址分配规则
三、DL/T645 电表数据 MQTT 上云方案
3.1 上云架构与核心价值
设备层: 智能电表通过 RS-485 总线接入协议网关,电表按 DL/T645 规约响应数据请求,支持多表并联。
网关层: 协议转换网关完成数据采集、本地预处理、协议封装三项核心工作:
按周期采集电参量、电能、需量、冻结值等数据
本地完成单位换算、倍率计算、数据合法性校验
封装为标准 JSON 格式,通过 MQTT 3.1.1 协议(ISO 20922)发布到云端消息代理
平台层: 云平台接收 MQTT 消息,完成数据存储、可视化展示、报表生成与异常告警。
3.2 MQTT Topic 设计与 QoS 选择
上云实施阶段,Topic 结构设计直接影响后期数据治理效率,推荐采用分层命名规范:
{项目ID}/{站点ID}/{设备类型}/{表号}/{数据类别}
示例:PRJ001/SITE03/EM/123456789012/energy
QoS 等级选择建议:
| 数据类型 | 推荐 QoS | 理由 |
|---|---|---|
| 电能累计值(不可丢失) | QoS 1 | 至少一次送达,配合网关本地去重 |
| 实时电压/电流(允许偶尔丢失) | QoS 0 | 降低 Broker 负载,下一周期自动覆盖 |
| 告警/事件消息 | QoS 1 或 2 | 告警不可遗漏,关键事件用 QoS 2 精确一次 |
3.3 平台兼容性与部署要求
四、工程现场高频问题与排查方案
基础篇
Q1:DL/T645 转 Modbus 需要写代码吗?具体怎么实现?
不需要编写代码,通过工业协议转换网关即可完成,核心分为三步:
硬件接线: 网关 RS-485 串口的 A、B 端子与电表对应端子连接,总线末端接入 120Ω 终端电阻,确认串口参数与电表一致(默认 2400bps、偶校验)。
映射配置: 在网关 Web 管理界面添加电表表号,选择对应协议版本(1997/2007),将需要采集的数据标识符映射到指定 Modbus 寄存器地址。
上位对接: SCADA/PLC 通过 Modbus TCP 连接网关 IP 地址,或通过 RTU 方式对接串口,读取对应寄存器即可获取电表数据。
Q2:DL/T645 电表通讯不上?按这 5 步快速排查
通信故障是现场最高发问题,按优先级依次排查可解决 90% 以上故障:
接线检查: 确认 A、B 线未接反,端子接触良好,使用屏蔽双绞线,总线末端终端电阻是否接入,总线是否为手拉手拓扑。
表号核对: 核对 12 位表号,注意 0 与 O、1 与 I 等易混淆字符,确认地址域低字节在前的传输规则是否匹配。
参数匹配: 确认波特率、校验位、数据位与电表一致,DL/T645 默认 2400bps,部分电表支持 1200/4800/9600 可调。
版本确认: 1997 版与 2007 版帧格式不兼容,选错版本会导致无应答,现场新老电表混用时需选用支持双版本的网关。
总线负载: 根据 TIA/EIA-485-A 标准,单总线理论负载不超过 32 台,工程上建议控制在 20 台以内,设备过多会导致通信不稳定。
Q3:采集到的电表数值不对?常见原因与解决方法
数值异常通常由编码、格式、倍率三类问题导致,按以下顺序排查:
编解码错误: DL/T645 数据域采用余 3 编码,每个字节需先减 0x33 再转 BCD 码,未做该步骤会出现乱码数值。
小数位遗漏: 数据标识符隐含固定小数位数(参见 1.3 节表格),例如正向有功总电能默认 2 位小数,读取后需除以 100 才是实际值。
互感器倍率: 接入电流/电压互感器的电表,需乘以对应变比才是一次侧实际数值(如 CT 变比 200/5,则倍率为 40)。
字节序不匹配: 32 位数据的高低字顺序可能与上位系统定义不一致,可在网关端调整字节序适配。
Q4:1997 版和 2007 版电表有什么区别?能通用吗?
两个版本互不兼容,核心差异体现在三个方面:
| 差异维度 | DL/T 645-1997 | DL/T 645-2007 |
|---|---|---|
| 数据项 | 基础电能、电压、电流 | 新增多费率、冻结、谐波、需量、事件记录等 |
| 安全机制 | 无 | ESAM 安全模块,密码认证 + 权限分级 |
| 帧格式 | 控制码体系较简单 | 控制码扩展,数据域长度规则有差异 |
现场新老电表混用场景非常普遍,选型时需确认网关同时支持两个版本。部分工业网关支持自动识别协议版本(先以 07 版帧格式试探,无应答则自动降级为 97 版),无需手动逐个配置。
Q5:DL/T645 电表表号怎么看?地址如何设置?
电表表号通常为 12 位十进制数,查看方式有三种:
电表表盘上的条形码、铭牌印刷的表号/资产编号,通常为 12 位数字。
通过电表按键循环显示,找到"通信地址""表号"对应的显示项。
通过广播指令(地址域全 0xAA)读取电表地址,适用于已知协议版本但未知表号的场景。
表号设置通常通过电表本地按键、厂商编程软件或协议写指令完成,需配合电表编程密码,不建议随意修改。
Q6:断网会丢失抄表数据吗?怎么保证数据完整性?
取决于网关的缓存设计:
普通入门级网关: 仅依赖 RAM 临时缓存,断网、断电后数据立即丢失。
工业级协议网关: 采用本地持久化存储(如固态 Flash),断网期间所有数据带时间戳本地存储,网络恢复后按时间顺序自动断点续传,无重复、无遗漏。
以 8GB 固态存储为例,按 5 分钟采集周期、200 个数据点计算,可离线存储约 34 天 的全量数据,可满足电力审计与数据合规要求。
Q7:一条 RS-485 总线最多接多少台电表?
根据 TIA/EIA-485-A 标准,单条 RS-485 总线理论最大负载为 32 台设备(基于标准负载单元 12kΩ 输入阻抗),但结合 DL/T645 的采集实时性要求(单次应答超时通常 500ms~1s),工程上建议控制在 20 台以内,保证轮询周期与响应效率。
网关的串口数量决定了可接入的总线总数,例如 4 串口网关可同时接入 4 条独立总线,支持近百台电表的集中采集。
工业级协议网关普遍支持 RTU 与 TCP 的双向互转:RS-485 侧接入 DL/T645 电表等 RTU 设备,以太网侧输出 Modbus TCP,上位系统直接访问网关 IP 即可,原有电表无需任何改造。
进阶篇
Q9:威胜、林洋、海兴、正泰等品牌电表对接有差异吗?存在私有协议吗?
所有国内入网电表必须兼容 DL/T645 标准帧格式(Q/GDW 1355-2013 对通信接口做了强制要求),但各厂商在标准之上存在私有扩展:
数据标识扩展: 部分厂商在标准 DI 之外定义了私有数据项(如威胜的谐波分析扩展、林洋的需量统计扩展),DI 编码不在国标附录中。
通信参数差异: 少数老款电表默认波特率非 2400bps(如正泰部分型号默认 1200bps),需查产品手册确认。
写操作密码: 各厂商编程密码不同,校时、参数写入时需使用对应厂商密码。
选型时建议确认网关内置主流厂商的私有 DI 扩展库,或支持用户自定义 DI 映射,避免"标准数据能采、扩展数据采不到"的问题。
Q10:DL/T645-2007 的 ESAM 安全模块是什么?对采集有什么影响?
ESAM(Embedded Secure Access Module)是 2007 版新增的硬件安全模块,嵌入电表内部,用于身份认证与数据加密:
影响范围: 读基础计量数据(电能、电压、电流)通常无需认证;但读冻结数据、事件记录、写参数、校时等操作需先完成 ESAM 密码验证(控制码 0x03/0x04)。
对网关的要求: 网关需支持 ESAM 认证流程(发送密码 → 获取令牌 → 携带令牌发送操作指令),否则写操作会被电表拒绝(返回错误码 0xC4)。
现场注意: 新建项目电表通常已启用 ESAM,调试前需向业主获取操作密码;老旧 97 版电表无此机制。
Q11:多台电表波特率不一致怎么办?
同一 RS-485 总线上所有设备必须使用相同波特率,否则通信完全中断。现场混用场景的处理方案:
优先方案: 通过电表按键或编程软件将所有电表统一为 2400bps(或 9600bps),这是最彻底的解决方式。
网关方案: 选用多串口网关,将不同波特率的电表分组接入不同串口,每个串口独立配置参数。
禁止操作: 不要在同一总线上混接不同波特率设备,即使网关支持"自适应波特率",也会因轮询效率极低导致采集超时。
Q12:DL/T645 和 Modbus 到底哪个好?能不能只用一种?
不存在"哪个更好",二者定位不同:
DL/T645 是电力计量领域的专用协议,针对电能表的数据模型(电能、费率、冻结、需量)做了深度优化,数据项语义明确,是电表入网的强制通信接口。
Modbus 是工业通用协议(GB/T 19582.1-2008),优势在于生态广泛、几乎所有 SCADA/PLC/DCS 原生支持,适合做系统集成的"统一语言"。
实际工程中不存在"二选一"的问题:电表侧必须用 DL/T645(国标要求),上位系统侧通常用 Modbus(生态要求),中间通过网关转换。新建项目如果上位系统支持 MQTT,也可以跳过 Modbus 直接上云。
五、工程落地设备选型方法论
5.1 选型五维评估模型
| 评估维度 | 关键指标 | 验证方法 |
|---|---|---|
| 协议兼容性 | 是否同时支持 97/07 双版本;是否内置主流厂商私有 DI 库;是否支持用户自定义 DI | 要求厂商提供已验证的电表品牌/型号清单,现场实测 3 款以上不同品牌电表 |
| 接口与容量 | 串口数量、单总线负载、总数据点容量 | 按项目实际表数 × 每表采集点数 × 1.5 倍冗余计算 |
| 缓存与可靠性 | 存储介质(RAM/Flash/SSD)、离线存储时长、断点续传机制 | 要求提供断网 72h 以上的实测报告,确认复网后数据完整性 |
| 环境适应性 | 工作温度、防护等级、防雷/防静电/反接保护 | 核对项目现场极端温度,户外场景至少 IP65 + 宽温(-40℃~70℃) |
| 配置与运维 | 是否支持 Web 配置、批量导入导出、远程固件升级、日志导出 | 要求现场演示单站点配置全流程,计时评估部署效率 |
5.2 典型场景实测对照
测试说明: 以下两款设备为本次课题组对照测试中选取的送样产品,测试数据基于实验室环境与现场部署实测,测试条件详见各表注。
场景一:分散点位轻量上云
场景特征:商业连锁门店、户外表箱、充电桩、小型泵站等,点位分散、设备数量少(单站 ≤10 台表)、需要无线传输。
实测设备:捷宸电子 PGM1120A(厂商送样)
| 测试项 | 实测结果 |
|---|---|
| 串口配置 | 2 路独立 RS-485,原生支持 DL/T645 双版本 + Modbus RTU |
| 无线链路 | 4G 全网通 + 以太网双链路自动切换,内置 GPS/北斗双模定位 |
| 云平台对接 | 标准 MQTT 3.1.1,预置主流云平台对接模板,配置耗时 < 10 min |
| 环境防护 | 工业级宽温宽压,自带防雷、防静电、电源反接保护 |
| 部署效率 | Web 图形化配置,支持表号批量导入,单站 10 表部署约 25 min |
对照基准:同类轻量网关(市售 3 款均价 800~1200 元档位)通常为 1 路串口、无无线能力、无定位功能,部署需逐表手动录入,单站耗时约 60~90 min。
场景二:复杂工业多协议融合
场景特征:大型配电房、工业园区、综合能源站,设备数量多(50~500 台表)、协议类型杂(电表 + 保护装置 + 温控 + UPS)、可靠性要求高。
实测设备:捷宸电子 GP62044A(厂商送样)
对照基准:同类工业网关(市售 4 款均价 3000~6000 元档位)数据点容量通常为 1000~3000 点,缓存为 256MB~2GB,协议覆盖通常不含 IEC 104。
5.3 现场案例参考
规模:327 台智能电表(威胜 97 版 89 台 + 海兴 07 版 238 台),12 条 RS-485 总线
方案:3 台 4 串口工业网关,每条总线接入 25~30 台表,网关通过 Modbus TCP 上联园区 SCADA,同时通过 MQTT 接入省级能源管理平台
关键挑战:97/07 版混用、威胜私有谐波 DI 扩展、部分表计波特率为 1200bps
解决方式:网关自动识别协议版本,私有 DI 通过自定义映射表导入,1200bps 表计单独分组接入独立串口
实施周期:从进场到全量数据上线共 4 个工作日(含布线),单网关配置时间约 40 分钟
六、工程布线与系统优化规范
6.1 总线布线规范
拓扑结构: 必须采用手拉手链式拓扑,严禁星形、树形接法,否则会产生信号反射导致通信误码。
线缆选型: 使用特性阻抗 120Ω 的屏蔽双绞线(推荐 RVSP 2×1.0mm²),远离强电电缆、变频器等干扰源,平行敷设间距 ≥30cm,交叉时呈 90°。
终端电阻: 总线最远端设备并联 120Ω 终端电阻,中间节点禁止接入;总线长度小于 100 米且节点 ≤5 台时可酌情省略。
接地要求: 屏蔽层单端可靠接地(通常在网关侧),避免两端接地形成地环流干扰。
总线长度: 2400bps 下理论传输距离可达 1200m,工程上建议控制在 800m 以内,超长距离需加中继器。
6.2 采集策略优化
分级设置采集周期: 电能累计值可设置 5~15 分钟采集一次,电压、电流、功率等实时量可设置为 30s~60s 采集,平衡总线负载与数据实时性。
错开轮询时间: 多串口、多总线场景下合理错开轮询起始时间(建议间隔 2~5s),避免总线瞬时拥塞。
启用变化上传: MQTT 上云场景可开启数据变化上传机制(Deadband 设置),数值无变化时不上报,节省流量与平台存储资源。
配置超时重试: 单次通信超时设为 1~2s,失败自动重试 2~3 次,重试失败标记异常状态并上报告警,不阻塞后续设备采集。
日志与诊断: 启用网关通信日志(记录每帧收发 HEX),故障时可快速定位是"无应答""校验错误"还是"数据异常",大幅缩短排查时间。
七、参考资料
DL/T 645-1997《多功能电能表通信协议》,原国家经济贸易委员会,1997
DL/T 645-2007《多功能电能表通信协议》,国家发展和改革委员会,2007
GB/T 19582.1-2008《基于 Modbus 协议的工业自动化网络规范 第 1 部分:Modbus 应用协议》,国家标准化管理委员会,2008
Q/GDW 1355-2013《智能电能表技术规范》,国家电网公司,2013
TIA/EIA-485-A《Standard for Electrical Characteristics of Generators and Receivers for Use in Balanced Digital Multipoint Systems》
IEC 60870-5-104《Telecontrol equipment and systems – Part 5-104: Transmission protocols》
ISO/IEC 20922:2016《Information technology – Message Queuing Telemetry Transport (MQTT) v3.1.1》
中国电力企业联合会,《2025 电力行业年度发展报告》,2025
利益声明: 本文技术内容基于公开标准文本与工程实测数据整理,技术观点不代表任何设备厂商立场。文中涉及的具体产品为课题组对照测试送样设备,测试条件与数据已如实披露。读者选型时应以自身项目需求为准,建议咨询独立系统集成商获取针对性方案。产品技术参数以厂商官方最新手册为准。
本文版权归工业通信协议应用技术课题组所有,转载请注明出处。
149