电表的698通信协议

原文连接:https://blog.csdn.net/ss86655/article/details/109997891

该协议规定了用电信息的数据交换过程,一般用于主站与电能表之间、终端与电能表之间的数据交换,主站与终端一般用不同的客户机地址来区分。

1、通信架构

有两种方向的数据交换。

  1. 是请求/响应类型的数据交换,主机请求从机,从机提供响应,涉及到读取、设置、操作、代理等服务。
  2. 通知/确认类型的数据交换,从机主动上报,主机回复确认,涉及到上报服务,在开发过程中,主机指客户机,包括主站(某上位机)或终端(集中器),从机指服务器,这里就是电表。

二:帧结构

(1)698采用异步传输,不需要接收方和发送方时钟的同步,会有起始字符,结束字符。帧格式如图:

在这里插入图片描述

举例:

68 1f 00 43 05 08 00 00 00 00 00 10 b5 0b 06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00 05 69 16
①.起始的68:代表字符的起始码;
②.末尾的16:代表结束字符。
③1f 00:长度域,由2字节组成,取bit0-bit13,指除起始字符和结束字符之外的帧字节数。注意此处实际应为00 1f,因为我用到的上位机软件设计如此。这里指这一串数据有1f字节,即31字节。
④ 43:控制域,1字节,定义如下图,16进制的43转为二进制即:01000011。
在这里插入图片描述
4.1 bit7和bit6组合的意义如下图:
在这里插入图片描述
4.2 功能码定义如下图:
在这里插入图片描述
可看出来该帧是由客户机发起一个请求,功能码为应用连接管理及数据交换服务,实际上,这也是用得最多的一个功能码。

⑤ 05 08 00 00 00 00 00:服务器地址。服务器地址定义如下:
在这里插入图片描述
bit0-bit3:地址字节数,注意此处是加1表示字节长度

bit4-bit5:逻辑地址

bit6-bit7:0表示单地址,1表示通配地址,2表示组地址,3表示广播地址

此处05 08 00 00 00 00 00中,05表示单地址,地址长度为5+1,08 00 00 00 00 00表示真实地址00 00 00 00 00 08.

⑥ 10:客户机地址16.

⑦ b5 0b:帧头校验,是对帧头部分除起始字符和帧头检验本身之外的所有字节的校验

⑧.06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00:应用层数据。此处含义下面讲。

⑧05 69:帧校验,是对整帧除起始字符、结束字符和帧校验本身之外的所有字节的校验。

3、应用层:
(1)对于RS485、红外、载波等通信通道,当物理连接建立后,预连接的通道即存在,不需额外建立预连接。

(2)读取:698标准是面向对象的,一个对象对应一个唯一的标识,对象标识有两字节组成。下面以主机发出读取日期的请求,从机响应当前日期为例说明。

请求APDU:05 01 08 40 00 02 00 00

响应APDU:85 01 08 40 00 02 00 01 1C 07 E4 08 06 12 29 19 00 00

请求:

①05:表示读取

②01:表示读取一个对象属性

③08:服务优先级,响应帧里将此数据回复给主机

④40 00 02 00:OAD,表示对象标识,在698标准里40 00表示为日期时间的对象,02表示要读取它的属性参数,00表示特征、索引等,在正向有功等电能数据处就有用到。

⑤00:表示无时间标签。

响应:

①85:表示回复

②01:表示回复一个对象属性

③08:服务优先级

④40 00 02 00:表示日期时间属性值这个对象

⑤01:表示结果类型,1为数据,0表示出错

⑥1c 07 e4 08 06 12 29 19:1c表示时间数据的类型,后面那一串就是真正的日期数据,为2020-08-06 18:41:25,读者可自行换算一下。

⑦00:表示无跟随上报信息

⑧00:表示无时间标签

(3)设置:同样地以设置时间为例说明

请求:06 01 2E 40 00 02 00 1C 07 E4 08 06 12 2B 28 00

①06:表示设置

②01:表示设置一个对象属性

③2e:服务优先级,响应帧里将此数据回复给主机

④40 00 02 00:OAD,表示对象标识,表示为日期时间的对象,02表示要读取它的属性参数,00表示特征、索引。

⑤1C 07 E4 08 06 12 2B 28:1c表示时间数据的类型,表示设置时间为2020-08-06 18:41:25

⑥00:无时间标签

响应:86 01 2E 40 00 02 00 00 00 00

①86:表示回复设置

②01:表示回复一个对象属性

③2e:服务优先级

④40 00 02 00:表示日期时间属性值这个对象

⑤00:表示设置成功

⑥00:无跟随上报信息

⑦00:无时间标签

(4)操作:实际为执行对象标识的方法。以清除瞬时冻结关联属性表为例,进行说明

请求:07 01 07 50 00 08 00 00 00

①07: 表示操作

②01:表示一个对象

③07:服务优先级

④50 00 08 00:OMD,表示瞬时冻结的08方法,即清除关联属性。

⑤00 :表示使数据为空

⑥00:无时间标签

响应:87 01 07 50 00 08 00 00 00 00 00

①87: 表示操作回复

②01:表示一个对象

③07:服务优先级

④50 00 08 00:OMD,表示瞬时冻结的08方法,即清除关联属性。

⑤00 :表示操作成功

⑥00:数据为空

⑦00:无跟随上报

⑧00:无时间标签

实际上,以上的读取、设置、操作等方法都是举了简单的例子,但看懂了这些报文,其它都是在这个的基础上面扩展的,包括但不限于读取记录型数据、读取若干个属性、设置若干个属性、操作若干个方法后读取若干个方法等服务。

698的特殊之处

在我看来,698与一般的通信协议无异,建立在不同的物理层上,可以是485、红外、载波甚至是TCP/IP等通信通道。如以上所解释,其帧头虽有特定含义,无非是起始字符、长度域、控制域、地址域加帧头校验,帧尾则是简单的帧校验加结束字符,整个帧格式也并不难理解。只是698在应用层和连接机制里定义了自己的一套规则,这是一套不同于645的、基于面向对象建模方法的规则,我对645的了解不多,大概知道645的数据标识系统是基于直接引用的,而698的数据标识系统基于直接引用和间接引用。举个例子,数据标识0010表示正向有功电能,使用数据标识2021表示数据冻结时间,使用数据标识5002表示分钟冻结,其中分钟冻结是一个集合对象,里面包含了一些基本对象属性ABC…,也可以按需添加,当我要读当前正向有功电能的时候,我可以使用…05…0010…,这是直接引用,其中05表示读取;当我要读分钟冻结里某个数据冻结时间正向有功电能的时候,基于698,我可以使用…05…5002…2021…0010…,这个对象里的对象来间接引用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352561.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

豪迪QQ群发通杀破解补丁使用教程

测试环境 Windows 7 64位 前期准备 1.所需软件 豪迪官网 下载豪迪 下载破解补丁 2.保存后解压文件夹(如果是安装包直接安装就可以) 3.将通杀补丁放到软件根目录 使用通杀补丁进行破解 4.打开软件点击“执行补丁”,然后就可以关闭补丁…

最新坦白说破解方法!!!

版权声明:转载必须注明本文转自StathamJ的博客:https://blog.csdn.net/qq_41664447 前言 qq坦白说的推出让许多人感到烦恼,或是被骚扰,或是被撩,完事儿被戏弄之后你还不能屏蔽。。。

【python】如何入门python?

文章目录 前言一、为什么学习Python?二、学习Python的前置条件三、入门Python的步骤3.1 安装Python3.2 安装Python开发环境3.3 学习Python基础语法3.4 编写你的第一个Python程序3.5 学习Python的高级特性3.6 使用Python库和框架 四、Python入门的资源五、常见的Pyth…

Python 最新版破解滑块验证码自动登录QQ空间

本节所讲内容: SeleniumPython环境搭建及配置 滑块验证码步骤分解 QQ空间破解滑块验证码登录(全部代码请看最后) 1.1 selenium 介绍 1.2 seleniumPython环境配置 前提条件:已安装好Python开发环境(python3.7.2&…

使用OpenCV 破解QQ登录中的滑动验证码

系列文章目录 第一篇: Java实现QQ登录 第二篇: Selenium QQ自动化登录 第三篇: 使用OpenCV 破解QQ登录中的滑动验证码 文章目录 系列文章目录 文章目录 前言 一、登录流程 二、验证办法 1.滑动验证码 2.获取缺口坐标 2.1 获得两张验证码的…

java程序破解qq闪图

1.找到闪图存放的位置/sdcard/tencent/MobileQQ/diskcache 下面 就是这些(但是这不全是qq闪图的照片 而是缓存) 有些手机有时间排序,如果是刚发的闪图 可以通过时间排序,直接手机上通过图片打开方式查看 但是我的红米手机没有这…

尚硅谷大数据hadoop教程_yarn

p125 课程介绍 p126 yarn基础架构 YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 p127 工作机制 (1)MR程序提交到客户端所在的节点。 (2)YarnRunner向ResourceManager申请一个Applicatio…

【Java基础】I/O流 —— Java中的流都需要关闭吗?

目录 一、为什么要关闭流?二、close方法和flush方法1.使用close方法2.使用flush方法 三、流按指向分类四、不用关闭的流 一、为什么要关闭流? 涉及到对外部资源的读写操作,包括网络、硬盘等等的I/O流,如果在使用完毕之后不关闭&a…

【Linux】还在用top命令?可以试试atop工具,信息一目了然,运维工程师的新选择

atop使用 Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:)。但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳定呢?非也,要…

鲁大师5月新机性能/流畅/久用榜:蓝绿厂霸榜,天玑9200+与高通骁龙8 Gen2迎来首次交锋

性能榜 6.18年中购物节前夕,一众厂商开始扎堆发布新机冲销量,也导致本月的新发机型数量达到了19款。 从品牌来看,ov两家和其子品牌、独立品牌就占据了十二台。从机型定位来看,本月的手机竞争主要围绕中端市场,除了索尼…

BUUCTF misc 专题(49)穿越时空的思念

下载下来是一段音频,听了一下,大致能听出来点东西,将它放入Audacity或者Audition 我这里是放入了Audition 可以明显地看到有摩斯密码,手动敲下来并用在线网站解码 再将它转化成小写(可以使用python)&#…

想你,淡淡的思念

2019独角兽企业重金招聘Python工程师标准>>> 淡淡的夜,思念是风, 将我的心吹向你的身边, 淡淡的夜,牵挂是雨, 将我的爱抛向你的脚下。 淡淡的夜,你在那里? 你在遥远的天边, 淡淡的月…

思念到极致时什么感觉?(1)

故事一: 跟交往了四年的初恋分手后, 他去了北京, 我没找任何同伴独自去了那里, 下车的一瞬间我哭了, 想象着他曾经在这里出现过, 也曾挤在拥挤的人群中。 后来哭累了回到酒店, 翻看着他的朋友圈…

500道网络安全/WEB安全面试题合集!附答案解析

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的 Offer 之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年…

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据,用第三方软件比较合适,当然,用excel也可以批量提取网页内特定文字。请按照以下步骤操作: 1. 打开要提取的网页,并选中要提取的文字,例如一个表格里的数据。 2. 复制选中的文字。 …

新浪微博 mysql_新浪微博,腾讯微博mysql数据库主表猜想

用户信息表(t_user_info)字段名称字节数类型描述 User_id4uint32用户编号(主键) User_name20Char[20]名称 Msg_count4uint32发布消息数量,可以作为t_msg_info水平切分新表的auto_increment Fans_count4uint32粉丝数量 Follow_count4Uint32关注对象数量 备注:以User_…

android微博客户端下载,iBeebo微博客户端

iBeebo微博客户端是一款免费的开源微博客户端,比起官方的手机客户端这款应用显然要小巧的多,它没有那些多余的无用功能。iBeebo微博客户端支持私信,你还可以查看热门话题和热门微博,喜欢的朋友不要错过哦!赶紧来最火软件站点击iBe…

2022年12月最新微博新版批量删除微博博文代码_删除清空微博博文的微博批量删除代码与方法

2022年12月微博新版本界面批量删除微博博文的方法 2022最新批量删除微博丨怎么一键批量删除微博与删除关注? 本教程为:一键批量删除新浪微博以前发过的微博(作者:当时我就没憋住) 新浪微博本身不提供批量删除微博的方法,,下面就…

基于IOS的仿微博系统

这份需求说明书的目的是直接对基于MVC模式的微博系统进行需求分析和系统总体设计服务。本说明书面向的读者是进行需求分析的人员和进行系统总体设计的人员。在开发的时候做了ppt、演示视频源码等需要可联系企鹅:2415273018。主要工作是设计实现一款个性化的基 于iOS…

微博java版_新浪微博JAVA通用版

这是新浪微博JAVA通用版,专为JAVA用户打造。无论您身处何地,随时随地记录生活的点点滴滴,与好友分享。 软件介绍 新浪微博JAVA通用版是专为Java平台用户打造的新浪微博手机客户端,功能强大。完全支持阅读、发布、评论、转发、私信…