Skip to content

DLT645 设备接入

本文演示如何将 DLT645 电表设备接入平台。DLT645 是中国电力行业标准协议,用于电力用户用电信息采集终端与电表之间的通信。平台支持串口DTU 两种接入方式。

接入流程

创建子产品 → 配置物模型 → 添加 DLT645 网关设备 → 添加子设备(电表) → 配置采集器 → 查看数据

前置条件: 平台已内置 DLT645 驱动,对应的网络组件和网关产品已自动创建。

DLT645 通信说明

DLT645 协议通过数据标识(8 位)来寻址电表中的数据项,每个数据项对应一个电表参数(如有功总电能、电压、电流等)。

概念说明
电表编号12 位电表地址,唯一标识一台电表
数据标识8 位数据标识,用于读取/写入电表中的特定数据项
前导码通信前的 FE 前导码个数(0~4),用于唤醒电表

数据标识的具体值需要参考电表的协议文档或 DLT645 标准文档。

步骤 1:创建子产品

进入 基础信息 → 产品配置,点击"新增":

配置项填写内容说明
名称智能电表自定义产品名称
产品类型电表根据实际设备选择
产品代码smart_meter自定义产品代码
设备类型网关子设备可选值:直连设备 / 网关设备 / 网关子设备
父产品默认 Serial Dlt645 产品 或 默认 Dtu Dlt645 产品仅设备类型选"网关子设备"时显示,系统已预置的网关产品

根据实际接入方式选择父产品:串口接入选 Serial Dlt645,DTU 接入选 Dtu Dlt645。

步骤 2:配置物模型

在产品列表点击"物模型",进入物模型编辑页。

2.1 新增属性

属性名称标识符数据类型单位读写类型
有功总电能total_energyfloatkWh只读
A相电压voltage_afloatV只读
A相电流current_afloatA只读

2.2 新增事件模型(采集数据)

事件模型的基本表单字段:

字段说明
事件名称自定义名称,如"读取有功总电能"
协议指令从 DLT645 驱动提供的指令列表中选择,如 readReq(读数据)、readMAReq(读通讯地址)
接口代码自定义唯一标识,如 readTotalEnergy
频率标签默认 / 低频 / 中频 / 高频,配合采集器的频率标签使用
事件说明可选,描述该事件模型的用途

选择协议指令后,会出现下行配置上行配置两个选项卡,配置项根据所选指令动态变化。

DLT645 驱动提供的事件指令:

指令代码指令名称下行配置上行配置
readReq读数据data(数据标识,8 位)value(值)
readMAReq读通讯地址deviceSn(电表编号)

读取有功总电能:

配置项填写内容
事件名称读取有功总电能
协议指令readReq(读数据)
接口代码readTotalEnergy
频率标签默认
事件说明读取电表有功总电能
下行配置 - data00010000(数据标识,按电表协议文档填写)
上行配置 - value@total_energy

读取 A 相电压:

配置项填写内容
事件名称读取 A 相电压
协议指令readReq(读数据)
接口代码readVoltageA
频率标签默认
事件说明读取电表 A 相电压
下行配置 - data02010100(数据标识,按电表协议文档填写)
上行配置 - value@voltage_a

数据标识说明: 数据标识是 DLT645 协议中用于定位电表数据项的 8 位编码,不同的电表参数对应不同的数据标识。具体值需要参考电表厂商提供的协议文档或 DLT645 标准文档。

2.3 新增功能模型(控制设备)

功能模型的基本表单字段:

字段说明
功能名称自定义名称,如"广播校时"
协议指令从 DLT645 驱动提供的指令列表中选择
接口代码自定义唯一标识,如 syncTime
序号用于标识接口的重要程度,值越低排序越靠前
功能说明可选,描述该功能模型的用途

DLT645 驱动提供的功能指令:

指令代码指令名称下行配置
rts广播校时time(格式 yy-MM-dd HH:mm:ss,支持占位符 {now})
mcr修改通讯速率rate(波特率选项:600/1200/2400/4800/9600/19200)
fCmd冻结命令time(格式 MM-dd HH:mm,支持占位符 {now})
ffCmd广播冻结命令time(格式 MM-dd HH:mm,支持占位符 {now})
writeMAReq修改电表地址deviceSn(新电表地址)
ctrl控制设备perm(认证密级)、cmd(控制命令)、pwd(密码)、code(操作者代码)、expire(有效时间)

广播校时示例:

配置项填写内容
功能名称广播校时
协议指令rts(广播校时)
接口代码syncTime
序号1
功能说明同步电表时间
下行配置 - time

时间字段支持 {now} 占位符,执行时自动使用当前时间。

控制设备示例(跳闸/合闸):

配置项填写内容
功能名称跳闸控制
协议指令ctrl(控制设备)
接口代码tripControl
序号1
功能说明远程控制电表跳闸/合闸
下行配置 - perm明文(02)
下行配置 - cmd跳闸
下行配置 - pwd(6 位密码,按电表实际密码填写)
下行配置 - code(8 位操作者代码)
下行配置 - expireyy-MM-dd HH:mm:ss

控制命令选项: 跳闸(1A)、合闸允许(1B)、报警(2A)、报警解除(2B)、保电(3A)、保电解除(3B)。

步骤 3:添加 DLT645 网关设备

进入 设备管理 → 工业网关设备 → DLT645 设备,点击"新增":

基础配置(串口和 DTU 共有):

配置项填写内容说明
所属产品选择系统预置的 DLT645 网关产品决定后续显示的动态配置项
客户端名称1号车间 DLT645 网关自定义名称
设备地址1号车间配电柜(可选)设备安装位置,非必填

选择不同协议的网关产品后,动态配置项不同

串口模式(Serial Dlt645)

串口模式下,"串口"字段显示为串口地址选择框。

配置项必填说明
串口串口设备路径,如 /dev/ttyS0 或 COM1
波特率可选值:1200 / 2400 / 4800 / 9600 / 19200 等
数据位可选值:5 / 6 / 7 / 8
校验位无 / 奇校验 / 偶校验 / 标记校验 / 空格校验
停止位1 / 1.5 / 2
读超时时间(秒)默认 5 秒

DTU 模式(Dtu Dlt645)

DTU 模式下,"DTU 编号"字段为文本输入框。

配置项必填说明
DTU 编号必须与 DTU 设备配置的注册包内容一致
主机绑定的网卡 IP,默认 0.0.0.0
端口监听端口,默认 5020
读空闲时长(秒)空闲超时,0 表示不检测
注册码类型ASCII 或 HEX,需与 DTU 设备配置一致

步骤 4:添加子设备(电表)

设备管理 → 工业网关设备 → DLT645 设备 列表中,找到步骤 3 创建的网关设备,点击右侧的 "子设备" 按钮,弹出子设备列表框,点击"新增":

配置项填写内容说明
所属产品智能电表(步骤 1 创建的子产品)自动继承物模型
设备名称1 号电表自定义名称
电表编号12345678901212 位电表地址,按电表实际地址填写
前导码4FE 前导码个数(0~4),默认 4
设备地址车间北侧(可选)设备安装位置,非必填

电表编号说明: DLT645 子设备的设备编号就是电表地址,固定 12 位,需要与电表实际的通信地址一致。此编号用于 DLT645 协议帧中寻址目标电表。

步骤 5:配置采集器

进入 数据采集 → 采集器,点击"新增":

配置项填写内容
事件类型采集器
产品列表智能电表
频率标签默认

产品列表只能选子产品或直连产品,不能选父产品(网关产品)。

配置完成后,平台开始按指定频率标签自动采集数据。

步骤 6:查看数据

  • 进入 运行管控 → 运行展板,查看设备在线状态和实时采集值
  • 进入 数据中心 → 模型数据,查看电能、电压、电流的历史数据曲线

常见问题

Q: 设备显示离线?

  • 串口模式:检查串口地址、波特率等参数是否正确,确认串口线路连接正常
  • DTU 模式:检查 DTU 编号是否与注册包一致,确认网络连通性

Q: 采集不到数据?

  • 确认子设备的电表编号(12 位)是否正确
  • 确认事件模型中的数据标识(data)是否与电表协议文档匹配
  • 确认前导码个数是否与电表支持的数量一致

Q: 串口模式和 DTU 模式如何选择?

  • 串口模式:适用于电表与平台服务器距离较近、有物理串口连接的场景
  • DTU 模式:适用于电表分布较广、需要通过 4G/WiFi 等无线网络远程采集的场景