1.3 DLT645

一、简介

  目前市面的大部分的电表,通信都是遵循该协议。因为物理层使用RS-485,故为半双工通信,主站指终端设备,从站指多功能电能表。
  数据链路层,默认波特率2400,偶校验,8bit数据,1bit停止位。先传低位,后传高位。D0是字节最低有效位,D7是字节最高有效位,如下图所示
在这里插入图片描述
  帧格式如下表所示

说明 帧起始符 地址域 帧起始符 控制码 数据域长度 数据域 校验码 结束符
字节 0x68 A0~A5 0x68 C L DATA CS 0x16
1、帧起始符
  固定0x68。
2、地址域
  由6个字节A0~A5构成,每个字节2位BCD码,故地址长度为12位十进制数,当地址码长度不足6字节时,高位用0补足。通讯地址0x9999 9999 9999时,为广播地址。特殊的是,地址域支持锁位寻址,从若干低位起,剩余高位补0xAA,作为通配符进行读表操作,从站应答帧会返回实际通信地址。
  什么是BCD码,我们知道,正常情况下,二进制、十进制、十六进制之间有一套转化的算法,例如18=0x12=10010。但是BCD码不同,它用四位二进制来表示十进制,最常用的是8421BCD码,例如8=1000,7=0111,为了方便,还是习惯把二进制用十六进制来表示,故8=0x8,7=0x7,但是问题来了,10怎么用BCD码表示,0xA?不是的,10用BCD表示是0x10。因为1的BCD码是0001,0的BCD码是0000,故10的BCD码是0001 0000,为了方便,表示为16进制,故为0x10。显然,9876的BCD码是0x9876。所以用BCD码的好处就是直观,这在工业领域大量的被应用。
  上面讲的是BCD码是压缩BCD码,它使用4位标识一个十进制数,1个字节可以表示2位十进制数。而非压缩BCD码使用1个字节来表示,故其高4位永远是0,1个字节只能表示1位十进制数。
3、控制码C
  用来表示帧的功能,具体如下所示:
在这里插入图片描述  例如,0x11代表读电表的数据,
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 0 0 0 1
  0x91代表电表返回的数据
D7 D6 D5 D4 D3 D2 D1 D0
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DLT645是一种基于Java编程语言的通讯协议,主要用于智能电表和通信设备之间的数据传输。DLT645协议定义了一套规范,用于解决智能电表与终端设备之间的通信问题。 Java是一种跨平台的编程语言,可在多个操作系统上运行,因此使用Java编写DLT645协议可以提供更好的灵活性和适应性。 DLT645协议的核心目的是通过数据传输实现智能电表的远程监控和数据采集。通过Java编程语言的强大特性,可以实现对电表的主动查询、控制和数据解析等功能。通过DLT645协议,我们可以通过Java编写的程序与智能电表进行双向通信,实现对电表数据的实时监控和管理。 DLT645协议的主要特点是灵活性和可扩展性。可以通过Java编程语言对协议进行二次开发,依据具体需求添加或修改功能,从而适应不同的应用场景和需求。 总结来说,Java DLT645是一种基于Java编程语言的通讯协议,通过该协议可以实现智能电表与终端设备之间的双向通信和数据传输。使用Java编写DLT645协议具有跨平台、灵活性和可扩展性的优势,能够满足不同应用场景的需求。 ### 回答2: Java DLT645是一个用于处理DLT645协议的Java库。DLT645是国家电力公司制定的一种通信协议,用于电力设备之间的数据交换和通信。DLT645协议是一种基于帧结构的通信协议,主要用于电力仪表和监控系统之间的数据传输。 Java DLT645库通过提供一系列的API和功能,使得开发人员能够方便地在Java应用程序中实现DLT645协议的通信和数据处理。它提供了对DLT645协议的封装和解析功能,可以将原始的DLT645帧数据进行解析,提取出所需的数据内容,并将应用程序需要发送的数据封装成DLT645帧进行发送。 使用Java DLT645库,开发人员可以快速开发基于DLT645协议的应用程序,实现与电力设备之间的数据交互。比如,可以通过该库实现与电能表、智能电表等电力设备的通信,读取电表数据,控制电器的开关等。 此外,Java DLT645库还提供了异常处理和错误检测功能,能够帮助开发人员及时发现通信中的问题,并进行相应的处理。同时,该库还支持对DLT645协议的版本进行兼容和升级,以满足不同设备和协议版本的需求。 总之,Java DLT645是一个方便易用的Java库,通过它,开发人员可以轻松实现基于DLT645协议的通信和数据处理,提高开发效率,实现与电力设备之间的无缝数据交换。 ### 回答3: Java DLT645是一种使用Java编写的DLT645协议的实现。DLT645是一种电能表通信协议,用于电能表与其他设备之间的数据传输和通信。DLT645协议定义了数据的结构和通信规则,使得能够在电能表和其他设备之间进行可靠的数据交换。 Java DLT645的实现提供了一套用于与电能表进行通信的API接口和功能。通过这些接口和功能,用户可以轻松地实现对电能表的读写操作,包括读取电能表的实时数据、控制电能表的参数配置等。同时,Java DLT645还支持与多个电能表进行同时通信,实现了高效的批量操作。 使用Java DLT645可以方便地将电能表的数据集成到其他系统中,比如能源管理系统、楼宇自动化系统等。用户可以通过编写Java代码,实现自动化的数据采集和处理,提高数据处理效率和准确性。 此外,Java DLT645还具备良好的跨平台性能,可以在不同的操作系统和硬件环境上运行。用户可以根据具体的需求,选择合适的硬件设备和操作系统,实现对电能表的远程监控和控制。 总之,Java DLT645是一种方便、高效、可靠的电能表通信协议的实现,为用户提供了丰富的功能和接口,使得与电能表的通信和数据处理变得简单易用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值