# DL/T 645-2007

多功能电能表通信协议 DL/T 645-2007 规定了电能表和上位机（例如数据采集系统）之间的通信协议，包括数据格式、通信过程、错误检测等内容，主要用于电力系统中的电能表，包括单相和三相电能表。DL/T 645-2007 支持多种通信方式，包括有线通信（例如 RS-485）和无线通信（例如 GSM/GPRS）。

Neuron DLT645-2007 插件支持通过串口和 TCP 连接 DL/T 645-2007 设备。

## 添加插件

在 **配置 -> 南向设备**，点击**添加设备**来创建设备节点，输入插件名称，插件类型选择 **DLT645-2007** 启用插件。

## 设备配置

点击插件卡片或插件列，进入**设备配置**页。配置 Neuron 与设备建立连接所需的参数，下表为插件相关的配置项。

| 参数                 | 说明                                                         |
| -------------------- | ------------------------------------------------------------ |
| **物理链路**         | 选择使用 Serial （串口）或者是 Ethernet（以太网）通信介质。  |
| **连接超时时间**     | 等待设备返回指令响应的时间。                                 |
| **指令重新发送间隔** | 发送读取指令失败后重新发送读指令时间间隔，单位为毫秒。       |
| **指令发送间隔**     | 发送每条读写指令之间的等待时间。某些串口设备在较短时间内接收到连续指令时，可能会丢弃某些指令。 |
| **串口设备**         | 串口模式下，串口设备的路径，如 Linux 系统中 /dev/ttyS0。     |
| **停止位**           | 串口模式下，串口连接参数。                                   |
| **校验位**           | 串口模式下，串口连接参数。                                   |
| **波特率**           | 串口模式下，串口连接参数。                                   |
| **数据位**           | 串口模式下，串口连接参数。                                   |
| **连接模式**         | 以太网模式下，可以选择 Neuron 作为 TCP 的客户端或是服务端。  |
| **IP 地址**          | 以太网模式下，设备的 IP 地址（Neuron 作为客户端）；或是 Neuron 本机的 IP 地址（Neuron 作为服务端），默认可填 0.0.0.0。 |
| **端口**             | 以太网模式下，设备的端口号（Neuron 作为客户端）；或是 Neuron 本机的端口（Neuron 作为服务端）。 |

## 设置组和点位

完成插件的添加和配置后，要建立设备与 Neuron 之间的通信，首先为南向驱动程序添加组和点位。

完成设备配置后，在**南向设备**页，点击设备卡片/设备列进入**组列表**页。点击**创建**来创建组，设定组名称以及采集间隔。完成组的创建后，点击组名称进入**点位列表**页，添加需要采集的设备点位，包括点位地址，点位属性，数据类型等。

公共配置项部分可参考[连接南向设备](../south-devices.md)，本页将介绍支持的数据类型和地址格式部分。

### 数据类型

* UIN8
* INT8
* UINT16
* INT16
* UINT32
* INT32
* UIN64
* INT64

:::tip
选择 INT 类型则自动将采集数据第一位视为符号位。
:::

### 地址格式

> mail_address#DI<sub>3</sub>-DI<sub>2</sub>-DI<sub>1</sub>-DI<sub>0</sub>

* mail_address 代表电表的通信地址。
* DI<sub>3</sub>-DI<sub>2</sub>-DI<sub>1</sub>-DI<sub>0</sub> 代表的是数据标识，所有点位只支持读属性，且用十六进制表示。

例如，123456789012#02-01-01-00，代表通信地址为 123456789012 的电表设备的 A 相电压的值。

::: tip
一个节点可配置多个通信点位，即支持单串口的多设备连接。

具体的数据标识对应的数据项名称请参考 DL/T645-2007 行业标准的数据编码表格。

* 数据长度为 1，数据类型选择 UINT8；
* 数据长度为 2，数据类型选择 UINT16；
* 数据长度为 3 或 4，数据类型选择 UINT32；
* 数据长度为 5 或 6 或 7 或 8，数据类型选择 UINT64；
* 根据数据格式设置小数位，例如数据格式为 XXX.X，则 Decimal 设置为 0.1；
:::

| DI<sub>3</sub> | DI<sub>2</sub>    | DI<sub>1</sub>   | DI<sub>0</sub>   | 说明                             | 数据类型 | Decimal | 举例                                                         |
| -------------- | ----------------- | ---------------- | --------------- | -------------------------------- | ------- | --------- | ------------------------------------------------------------ |
| 00    | 00 ~ 0A  | 00 ~ 3F | 00 ~ 0C      | DI<sub>3</sub>= 00，代表电能量<br />DI<sub>0</sub>，代表结算日              | UINT64  | 0.01 | 00-00-00-00 代表（当前）组合有功总电能<br />00-00-00-01 代表（上 1 结算日）组合有功总电能 |
| 00    | 80~86<br />15~1E<br />94~9A<br />29~32<br />A8~AE<br />3D~46<br />BC~C2 | 00      | 00 ~ 0C   | DI<sub>3</sub> = 00，代表电能量<br />DI<sub>0</sub>，代表结算日                | UINT64  | 0.01  | 00-80-00-00 代表（当前）关联总电能<br />00-80-00-01 代表（上 1 结算日）关联总电能<br />00-15-00-01 代表（上 1 结算日）A 相正向有功电能<br />00-15-00-01 代表（上 2 结算日）A 相正向有功电能<br /> 00-29-00-02 代表（上 2 结算日）B 相正向有功电能 |
| 01    | 01 ~ 46   | 00 ~ FF  | 01 ~ 0C              | DI<sub>3</sub>= 01   | UINT64<br />STRING | 0.0001 | 例如 01-01-00-00 代表当前正向有功最大需量<br />01-01-00-00#T 代表当前正向有功最大需量发生时间 |
| 02    | 01 ~ 09   | 01 ~ 03  | 00                   | DI<sub>3</sub>= 02，代表变量                                 | UINT16<br />UINT32 | 0.1<br />0.01<br />0.001<br />0.0001 | 02-01-01-00 代表 A 相电压<br />02-02-01-00 代表 A 相电流 |
| 02    | 0A ~ 0B   | 01 ~ 03  | 01 ~15               | DI<sub>2</sub>= 0A，代表电压谐波含量<br />DI<sub>2</sub> = 0B，代表电流谐波含量<br />DI<sub>1</sub> ，代表 A，B，C 相<br /> DI~0~，代表第几次谐波含量 | UINT16 |  0.01   | 02-0A-01-01 代表 A 相电压 1 次谐波含量<br />02-0A-02-02 代表 B 相电压 2 次谐波含量<br />02-0B-01-01 代表 A 相电流 1 次谐波含量<br />02-0B-02-02 代表 B 相电流 2 次谐波含量 |
| 02    | 80        | 00       | 01 ~ 0A              | DI<sub>3</sub>= 02，代表变量     | UINT16    | 0.01 | 02-80-00-01 代表零线电流 <br />02-80-00-02 代表电网频率    |
| 04    | 00        | 01 ~ 0E  | 01 ~ 0C              | DI<sub>3</sub>= 04，代表参变量   | UINT8<br />UINT16<br />UINT32<br />UINT64 | 0<br />0.1<br />0.001<br />0.0001 | 04-00-01-01 代表日期及时间<br />04-00-01-03 代表最大需量周期<br />04-00-04-01 代表通信地址<br />04-00-05-01 代表电表运行状态字 1 |
| 05    | 00 ~ 03    | 00            | 01 ~ 03，0C              | DI<sub>3</sub>= 05，DI<sub>1</sub>= 00  | STRING | 0    | （上 1 次）定时冻结时间 |
| 05    | 00 ~ 03    | 01 ~ 08       | 01 ~ 03，0C              | DI<sub>3</sub>= 05                      | UINT32 | 0.01    | （上 1 次）定时冻结电能数据：<br />例如 05-00-01-01 代表正向有功总电能<br />05-00-01-01#1 代表正向有功费率 1 电能|
| 05    | 00 ~ 03    | 09 ~ 0A       | 01 ~ 03，0C              | DI<sub>3</sub>= 05                      | UINT32<br />STRING | 0.0001    | （上 1 次）定时冻结最大需量及发生时间：<br />例如 05-00-09-01 代表正向有功最大需量<br />05-00-01-01#T 代表正向有功最大需量发生时间<br />05-00-09-01#01 代表正向有功费率1最大需量<br />05-00-01-01#01#T 代表正向有功费率1最大需量发生时间|
| 05    | 00 ~ 03    | 10            | 01 ~ 03，0C              | DI<sub>3</sub>= 05，DI<sub>1</sub>= 10  | UINT32 | 0.0001    | （上 1 次）定时冻结变量：<br />例如 05-00-10-01 代表总有功功率<br />05-00-10-01#1 代表 A 相有功功率<br />05-00-10-01#2 代表 B 相有功功率<br />05-00-10-01#3 代表 C 相有功功率<br />05-00-10-01#4 代表总无功功率<br />05-00-10-01#5 代表 A 相无功功率<br />05-00-10-01#6 代表 B 相无功功率<br />05-00-10-01#7 代表 C 相无功功率|
| 06    | 00 ~ 06   | 00       | 00 ~ 02              | DI<sub>3</sub>= 06，代表负荷记录  | UINT8<br />UINT64 | 0    | 06-00-00-00 代表最早记录块<br />06-06-00-00 代表第 6 类负荷最早记录块 |

## 数据监控

完成点位的配置后，您可点击 **监控** -> **数据监控**查看设备信息以及反控设备，具体可参考[数据监控](../../../admin/monitoring.md)。