协议接入

DL/T 645 电表采集:能耗数据怎么取

电表采集看起来是最简单的一类,但现场翻车率不低:地址搞错、波特率不对、总线接线不规范导致误码,还有算出来的单件能耗没人认。这篇按顺序讲清楚。

DL/T 645 用在哪些设备上

DL/T 645 是国家电网系统的电表通信规约,国内绝大多数智能电能表都支持。 分 1997 版与 2007 版,另有更新的 DL/T 698.45 面向对象规约。 在工厂里主要用来采集正向有功总电能、各费率电能、三相电压电流、 功率因数、有功无功功率、需量等数据。 能耗统计、双碳考核、单件能耗核算、峰谷电分析都靠这一路数据。

敏洽 SCADA 数采软件提供 dlt645_2007、dlt645_1997 与 dlt698_45 三个驱动, 物理层走 RS485,通常经串口服务器转以太网后由采集软件统一读取。

实际会遇到的几个坑

1. 通信地址不是资产编号

DL/T 645 的通信地址是 6 字节 BCD,通常取表号的后 12 位,报文里低字节在前传输。 现场经常发生的是拿到一张资产台账,上面的编号和表的通信地址根本不是一回事, 结果整批表都读不通。而且读不通的表现是完全没有应答, 不是返回错误码——这让人第一反应去怀疑接线。 排查顺序是:先用广播地址 AA AA AA AA AA AA 单独接一个表读一次, 能通就说明物理层和波特率都对,问题在地址;不通再查接线与波特率。

2. 规约版本判断

2007 版的数据标识是四字节(正向有功总电能 = 00 01 00 00), 1997 版是两字节,两者报文不兼容。新装的国网表基本都是 2007, 但工厂里存量老表混装是常态。表壳铭牌上通常会印规约版本, 看不到的话直接换驱动试一次,两个版本都试完就能定。 混装现场就按表分别配驱动,同一条 485 总线上挂不同规约的表是可以的, 只要采集软件按表切换报文格式。

3. 波特率与校验位

DL/T 645 常用 2400 或 9600 波特,校验位一般是 8E1(偶校验)。 注意不是 8N1——按 8N1 配的话会大批量误码, 表现为偶尔能读到正确数据、大部分时候校验失败,很容易被误判为接线问题。 有的表支持在表内菜单改波特率,批量安装前统一设成同一个值能省很多事。

4. 总线接线是误码的主因

现场 485 接线的常见问题:手拉手变成星形(从一个点分出多个支路)、 屏蔽层两端都接地形成地环流、总线两端没接 120 欧终端电阻、 485 线和动力线走同一线槽。这些都不会让通信完全不通, 而是造成时好时坏的误码,最难排查。 规范做法:严格手拉手(daisy chain),屏蔽层单端接地, 两端各接一个 120 欧电阻,485 线与动力线分槽或至少保持 20 厘米以上间距, 长距离段用带屏蔽的双绞线。

5. 一条总线不要挂太多表

虽然标称能挂 32 个甚至更多节点,实际建议一条总线不超过 16 个表。 原因有三:节点多则总线容性负载大、误码率上升;轮询一圈的时间变长 (2400 波特下一个表读一次要几十毫秒,16 个表轮完接近 1 秒); 最要紧的是一个表故障(比如接线端子松动导致总线短路)会拖垮整条线, 而排查时你不知道是哪个表出的问题。表数量多就用多路串口服务器分线, 硬件成本增加不多但可靠性和可维护性提升明显。

6. 单件能耗的口径要先定清楚

算法本身很简单:电能累计读数按时间窗差分得到时段用电量,除以同时段产量。 难的是口径——这个数会被终端客户的能源部门审。 要先定清楚:计量范围是设备本体还是含辅助设备(空压机、除尘、照明、空调)? 待机与换型期间的能耗算不算进单件?跨班次的时间窗怎么切? 不良品消耗的电算不算?这些不写进方案,后面出来的数字没人认, 前面的采集工作等于白做。相关的口径处理思路见 OEE 怎么算才不被终端客户挑战。

接入方式与硬件条件

项目要求与说明
物理层RS485 手拉手,屏蔽双绞线,两端 120Ω 终端电阻,屏蔽层单端接地
串口参数常用 2400 或 9600 波特,8E1 偶校验;批量安装前统一设定
单线容量建议不超过 16 个表;表多用多路串口服务器分线
转换设备串口服务器(多串口型),型号可由敏洽给建议;客户电气工程师接线
驱动dlt645_2007 / dlt645_1997 / dlt698_45,按表规约选择
采集周期电能累计值 1 分钟一次足够;电压电流等瞬时量按需 5~30 秒
台账需要一份表清单:安装位置、计量范围、通信地址、规约版本、波特率

那份表清单很关键。现场安装完了没人整理台账,后面对不上哪个表计的是哪台设备, 能耗数据就没法归集到工序。建议安装时就按「表通信地址 ↔ 计量回路 ↔ 设备/工序」 三列做好记录,作为接口文档的附件。

相关交付情况

能耗采集通常和设备状态采集打包做:电表数据进来后, 配合设备的运行/待机/故障状态,就能算出分状态能耗—— 待机能耗占比高说明有排产或者交接班的管理问题,这类结论比单纯一个总用电量有用得多。 敏洽的做法是把能耗看板与稼动看板放在一起,用同一套时间窗口, 这样两组数据能互相解释,终端客户的能源部门与生产部门看到的是一致的口径。

更多交付情况见 案例中心, 能耗模块的功能范围见 SCADA 数采与监控软件。

常见问题

报文结构与数据标识编码方式都不一样。2007 版数据标识是四字节(如正向有功总电能是 00 01 00 00),1997 版是两字节,两者不兼容。现在新装的国网表基本都是 2007 版,2010 年前的老表可能还是 1997 版。表壳铭牌上一般会标规约版本,读不通的话换另一个规约试一次就知道。
DL/T 645 的通信地址是 6 字节 BCD 码,一般就是电表铭牌上的表号后 12 位,低位在前传输。要注意的是「通信地址」和「资产编号」「用户编号」经常不是同一个东西,有的表还可以在表内菜单里单独设置通信地址。地址填错的表现是完全没有应答(不是报错),排查时先用广播地址 AA AA AA AA AA AA 读一次确认表能通信。
理论上标准 RS485 是 32 个节点,很多表标称支持更多。实际项目里建议一条总线不超过 16 个表:节点越多总线负载越重、误码率越高,而且一个表故障可能拖垮整条线的通信。表多的时候用多路串口服务器分线,不要在一条线上硬堆。总线两端要接 120 欧终端电阻,屏蔽层单端接地。
把电表的累计电能读数按时间差分,得到时段用电量,再除以同时段的产量。关键是两个数据的时间对齐:电表读数一般 1 分钟一次就够,产量要按同一时间窗统计。另外要说清口径——是只算设备本体用电还是含辅助设备(空压、除尘、照明),待机能耗算不算,这些不定清楚,终端客户的能源部门不会认这个数。

有具体设备清单或工件样品,可以直接给判断

提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。