目录

  • Pycharm实现645协议解析器
  • 645协议帧结构
  • Pycharm配置基于Qt5的图形开发环境


Pycharm实现645协议解析器

目前智能电网的645通信协议主要两个版本DLT645-97和DLT645-07,该协议主要用于电表抄表,采用为主-从结构的半双工通讯模式,硬件接口支持RS-485、载波等。

645协议帧结构

DL645协议帧报文和modbus类似,数据帧由,起始符、地址域、控制符、数据域长度、数据域、检验码、结束符组成,每个部分都由十六进制码构成,如下图

python rs485通讯并画图 python 485协议_物联网

1.帧起始符 68H

DLT645协议的数据帧每帧的开始都固定为0x68,作为数据的起始符方便接收方做数据解析。

2.地址域 A0~A5

地址域是用来表示电表地址,低位在前,高位在后;在485总线上可能挂着多个645设备,要找到指定的设备,必须要根据设备的地址查找。每台设备出厂会有自己的地址,也可以修改设备的通信地址。

3.控制码

1个字节,例如读取数据的控制码为0x11(00010001),读取通讯地址的控制码为0x13(00010011)。

4.数据长度L

1个字节,表示数据域的字节数,读取数据时L<= 200;写数据时L <= 50,L=0表示无数据域。

5.数据域

数据域为变长,字节数由数据长度L决定,传输时候。发送方需要加0x33,接收方需要减去0x33。

  1. CS校验码

1个字节,采用算术和进行校验。

7.结束符16H

DLT645的指令帧均已0x16作为结束符。

在发送帧信息之前,需要根据设备需要先发送前导码,前导码由0-4个FEH组成,所有数据项都是按照低字节在前,高字节在后的方式传输。

Pycharm配置基于Qt5的图形开发环境

用户首先要安装了Python以及PyQt5,如何安装,这边不做赘述,网上大把的案例可以参考,只是要记住安装目录在哪,下面将会用到该目录。安装好pyqt5 和pyuic的,然后再setting下的tools下配置external tools,如下图

python rs485通讯并画图 python 485协议_python rs485通讯并画图_02

qt-designer的配置如下:

python rs485通讯并画图 python 485协议_解析器_03

Name :可以随便取,但从使用角度看,最后和目的相关,这叫Qt-Designer。

Program:
就是designer的路径。designer的路径就在python安装路径下,根据自己的安装路径进行配置即可

PYuic配置如下:

python rs485通讯并画图 python 485协议_pycharm_04

PyUIC可以将.ui文件转换为.py文件,供py文件调用,配置方法如下图:

Name:自定,此处取PyUIC。

Program:
即pyuic5的文件路径,一般在在python安装目录的Scripts里面

Arguments
转换参数,此为关键,输入以下参数,表示指定输入输出文件的意思:

-o python rs485通讯并画图 python 485协议_python rs485通讯并画图_05.py python rs485通讯并画图 python 485协议_解析器_06

说明输出为和ui文件同名的.py文件。

Working directory
即工作目录,将转换完的文件存在哪里,这边选和ui文件一样的目录就行:

python rs485通讯并画图 python 485协议_pycharm_07

至此,全部配置完毕。