DLT645 通讯协议解码器

介绍

Fox-Edge的DLT645的通用解码器,它只需要配置配置DLT645的模板文件,就可以进行DLT645报文协议的数据解析

DLT645的协议框架模块,电力系统的各家设备厂商,会基于DLT645的协议框架,各自实现各自的DLT645协议。
这些设备厂商遵守DLT645的同样协议框架,但又各自实现了自己独有的特性,或者对DLT645协议框架进行了各自的调整
所以,这边将公共的DLT645协议框架特性抽取出来,作为DLT645设备族的公共模块,来解决各家设备通用但又差异化的场景

资料

DLT645-1997协议

DLT645-2007协议

工具

DLT645电表模拟器

源码

源码

源码

Maven

	
	<dependencies>
		<!-- fox-tech协议解码器的core包-->
        <dependency>
            <groupId>cn.fox-tech</groupId>
            <artifactId>fox-edge-server-protocol-core</artifactId>
            <version>1.0.0</version>
        </dependency>
		
		<!-- dlt645解码器的core包-->
        <dependency>
            <groupId>cn.fox-tech</groupId>
            <artifactId>fox-edge-server-protocol-dlt645-core</artifactId>
            <version>1.0.0</version>
        </dependency>
		
		<!-- dlt645解码器-->
        <dependency>
            <groupId>cn.fox-tech</groupId>
            <artifactId>fox-edge-server-protocol-dlt645-1997</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

模板

模板文件

可以参考下列文件的格式,自己配置配置一个模板文件,那么可以让解码器装载这些模板文件,就可以自动解析数据

模板文件

fox-edge
├─template
│  ├─dlt645
│  │  └─1.0.0
│  │    └─DLT645-1997.csv
│  │    └─DLT645-2007.csv

格式说明

di1h di1l di0h di0l format length unit read write name
di1高位 di1低位 di0高位 di0低位 数据格式 长度 单位 是否可读 是否可写 对象名称
说明:DLT645解码器会根据这张表,对设备进行读取数据后,进行解析成方便用户理解的数据对象

1、di1h/di1l/di0h/di0l
DLT645协议中,将一个个对象用固定的数字ID标识,在报文中进行传输,可以参考DLT645协议的文档

2、format/length/unit/read/write
DLT645协议中,将一个个对象在传输的时候,会根据DI指明该数据对象的解析格式,单位是什么,是否可读可写,可以参考DLT645协议的文档

3、name
DI值只是方便对象在报文传输,对象具体含有还是要给它取个对象名,方便解析之后,被后面的业务应用进行使用



说明:
具体内容,可以参考DLT645-1997.csv和DLT645-2007.csv文件内容
然后,开发者修改模板文件的内容,就能适配各个厂家的DLT645设备了


报文配置

  1. 读取DLT645的电表数据
[
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "日期及周次",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "时间",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "电表运行状态字",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "电网状态字",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "周休日状态字",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "表号",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "用户号",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     },
     {
          "param": {
               "tableName": "DLT645-v1997/1.0.0/DLT645-1997.csv",
               "objectName": "自动抄表日期",
               "deviceAddress": "351253111111"
          },
          "timeout": 2000,
          "operateMode": "exchange",
          "operateName": "读数据"
     }
]

DLT645电表接入演示

软件下载

	1、虚拟串口

	virtualserialportdriver8.rar

	2、串口监听工具

	CEIWEI_CommMonitor_v12.0.1.exe

	3、DLT645模拟器软件下载

	DLT645%20simulator 20v2.7.1.rar


	上述软件,可以去百度下载后安装到本地

串口配置

image

image

image

image

智能网关和DLT645电表的通信测试

image

image

image

image

image

image

image

image

image