Appearance
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_energy | float | kWh | 只读 |
| A相电压 | voltage_a | float | V | 只读 |
| A相电流 | current_a | float | A | 只读 |
2.2 新增事件模型(采集数据)
事件模型的基本表单字段:
| 字段 | 说明 |
|---|---|
| 事件名称 | 自定义名称,如"读取有功总电能" |
| 协议指令 | 从 DLT645 驱动提供的指令列表中选择,如 readReq(读数据)、readMAReq(读通讯地址) |
| 接口代码 | 自定义唯一标识,如 readTotalEnergy |
| 频率标签 | 默认 / 低频 / 中频 / 高频,配合采集器的频率标签使用 |
| 事件说明 | 可选,描述该事件模型的用途 |
选择协议指令后,会出现下行配置和上行配置两个选项卡,配置项根据所选指令动态变化。
DLT645 驱动提供的事件指令:
| 指令代码 | 指令名称 | 下行配置 | 上行配置 |
|---|---|---|---|
| readReq | 读数据 | data(数据标识,8 位) | value(值) |
| readMAReq | 读通讯地址 | 无 | deviceSn(电表编号) |
读取有功总电能:
| 配置项 | 填写内容 |
|---|---|
| 事件名称 | 读取有功总电能 |
| 协议指令 | readReq(读数据) |
| 接口代码 | readTotalEnergy |
| 频率标签 | 默认 |
| 事件说明 | 读取电表有功总电能 |
| 下行配置 - data | 00010000(数据标识,按电表协议文档填写) |
| 上行配置 - value | @total_energy |
读取 A 相电压:
| 配置项 | 填写内容 |
|---|---|
| 事件名称 | 读取 A 相电压 |
| 协议指令 | readReq(读数据) |
| 接口代码 | readVoltageA |
| 频率标签 | 默认 |
| 事件说明 | 读取电表 A 相电压 |
| 下行配置 - data | 02010100(数据标识,按电表协议文档填写) |
| 上行配置 - 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 位操作者代码) |
| 下行配置 - expire | yy-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 号电表 | 自定义名称 |
| 电表编号 | 123456789012 | 12 位电表地址,按电表实际地址填写 |
| 前导码 | 4 | FE 前导码个数(0~4),默认 4 |
| 设备地址 | 车间北侧(可选) | 设备安装位置,非必填 |
电表编号说明: DLT645 子设备的设备编号就是电表地址,固定 12 位,需要与电表实际的通信地址一致。此编号用于 DLT645 协议帧中寻址目标电表。
步骤 5:配置采集器
进入 数据采集 → 采集器,点击"新增":
| 配置项 | 填写内容 |
|---|---|
| 事件类型 | 采集器 |
| 产品列表 | 智能电表 |
| 频率标签 | 默认 |
产品列表只能选子产品或直连产品,不能选父产品(网关产品)。
配置完成后,平台开始按指定频率标签自动采集数据。
步骤 6:查看数据
- 进入 运行管控 → 运行展板,查看设备在线状态和实时采集值
- 进入 数据中心 → 模型数据,查看电能、电压、电流的历史数据曲线
常见问题
Q: 设备显示离线?
- 串口模式:检查串口地址、波特率等参数是否正确,确认串口线路连接正常
- DTU 模式:检查 DTU 编号是否与注册包一致,确认网络连通性
Q: 采集不到数据?
- 确认子设备的电表编号(12 位)是否正确
- 确认事件模型中的数据标识(data)是否与电表协议文档匹配
- 确认前导码个数是否与电表支持的数量一致
Q: 串口模式和 DTU 模式如何选择?
- 串口模式:适用于电表与平台服务器距离较近、有物理串口连接的场景
- DTU 模式:适用于电表分布较广、需要通过 4G/WiFi 等无线网络远程采集的场景
