智能电表645电力规约简单介绍及简单上位机
1. 简单介绍
645规约的全称应该是“中华人民共和国电力行业标准DL/T 645——1997多功能电能表通信规约”。在经过多年的现场时间基础上,为了适应市场需求的发展,全国电工仪器仪表标委会于2000年10月组建《自动抄表系统》国家标准起草工作组,并开始起草《自动抄表系统》国家标准。
(由于本人能力有限,而且工作之余时间也有限,再加上645比较庞大,我只能做一些最最简单的部门仅仅作参考)
2. 协议数据格式
2.1字节格式
每字节含8位二进制码,传输时加上一个起始位(0)、一个偶校验位和一个停止位(1)共11位。其传输序列如图1。
D0是字节的最低有效位,D7是字节的最高有效位。先传低位,后传高位。
2.2 帧格式
帧是传送信息的基本单元。帧格式如图2所示
帧起始符68H:标识一帧信息的开始,其值为68H=01101000B。
地址域A0∽A5:地址域由6个字节构成,每字节2位BCD码。地址长度为12位十进制数,可以为表号、资产号、用户号、设备号等。
控制码C:控制码的格式如下所示。
数据长度L:L为数据域的字节数。读数据时L≤200,写数据时L≤50,L=0 表示无数据域。
数据域DATA:数据域包括数据标识和数据、密码等,其结构随控制码的功能而改变。传输时发送方按字节进行加33H处理,接收方按字节进行减33H处理。
校验码CS:从帧起始符开始到校验码之前的所有各字节的模256的和, 即各字节二进制算术和,不计超过256的溢出值。
结束符号16H:标识一帧信息的结束,其值为16H=00010110B。
3传输
前导字节
在发送帧信息之前,先发送1-4个字节FEH,以唤醒接收方。
传输次序
所有数据项均先传送低位字节,后传送高位字节。
PS:这个就非常重要了,因为是先传送低字节再传送高位字节,所以需要在上位机以及智能电表端做解析的时候需要把后传送的高字节放在前面然后再来拼数据,否则会出现数据反了的情况
4数据标识
数据域包括数据标识和数据、密码等
从庞大的协议里截出下面几个数据标识,也就是我需要做的几个数据标识
5应用层
应用层包含的比较多,不可能一一介绍,这里我主要就做了一个读通信地址,网友可以参考645规约协议学习。
我自己找了一组报文来给大家分析:
通讯地址——发送:68 AA AA AA AA AA AA 68 13 00 DF 16
解析:
0xDF对应着上图的CS,及校验码,校验码采用的是累计和的方式,取低字节。
及0x68+0xAA+0xAA+0xAA+0xAA+0xAA+0xAA+0x68+0x13+0x00=0x4DF
通讯地址——接收:68 11 11 11 11 11 11 68 93 06 44 44 44 44 44 44 67 16
解析:
68:首字节 68H 固定格式
11-11:地址是0x11 11 11 11 11 11
68:固定格式68H
93:对控制字0X13的返回,参考2.2控制个事
06:字节长度6个字节,长度是0x44 44 44 44 44 44这几个字节的长度
67:0x67对应于CS
6上位机:
由于最近工作,事情比较紧急。上位机也来不及自己做,让一个刚做测试的一个好基友帮我做的,就按照怎么简单怎么来,只要能正确的接收报文,然后把我需要的报文解析出来,然后显示出来即可,怎么简单怎么来。由于好基友做测试的,对代码不是很熟,就随便他发挥了。
本帖最后由 常见泽1 于 2017-7-11 18:37 编辑