本文以实例说明CJ/T-188水表协议的解析过程,下面数据未经特殊说明,均指十六进制。

数据发送:

        FE FE FE FE 68 10 44 33 22 11 00 33 78 01 03 1F 90 00 80 16

        说明例如以下:

            FE FE FE FE:协议头(1-4组)。

            68:帧起始符。

            10:仪表类型,此实例指冷水水表。还可定义为:

                10:冷水水表

                11:生活热水水表

                12:直饮水水表

                13:中水水表

                20:热量表(记热量)

                21:热量表(记冷量)

                30:燃气表

                40:电度表 

            44 33 22 11 00:倒序为0011223344(以BCD码形式看待)。表示表号。

            33 78:倒序为7833(以BCD码形式看待),表示厂家代码。

            01:控制码表示读表计数据。后面跟固定数据域长度、数据标识和序列号。

03:数据域长度(固定)。 

            1F 90:数据标识(固定)。

            00:序列号(固定)。

80:累加和,68+10+44+33+22+11+00+33+78+01+03+1F+90+00=80。

            16;结束符。



    回复数据:

        FE FE FE FE 68 10 44 33 22 11 00 33 78 81 16 1F 90 00 00 77 66 55 2C 00 77 66 55 2C 31 01 22 11 05
15 20 21 84 08 16

        说明例如以下:

            FE FE FE FE:协议头(1-4组)。

            68:帧起始符。

10:仪表类型。

44 33 22 11 00:倒序为0011223344(以BCD码形式看待),表示表号。

            33 78:倒序为7833(以BCD码形式看待),表示厂家代码。

            81:实际为控制码+80。我们能够简单觉得仅仅有81正确。非81均为异常,不进行解析。

            16:数据域长度,为十进制22。表示后面有22个有效数据。

            1F 90:数据标识(固定)。

00:序列号(固定)。

00 77 66 55:倒序为556677.00(以BCD码形式看待),表示累计用量。

            2C:立方米。其他单位见附1。

            00 77 66 55:倒序为556677.00(以BCD码形式看待)。表示本月用量。

            2C:立方米,其他单位见附1。  
            31 01 22 11 05 15 20:2015-05-11
22:01:31,表示实时时间。

            21 84:状态,两字节。第1字节定义例如以下,第2字节由厂家自己定义。

68:累加和,68+10+44+33+22+11+00+33+78+81+16+1F+90+00+00+77+66+55+2C+00+77+66+55
2C+31+01+22+11+05+15+20+21+84=08。

16;结束符。

附:单位代号

/V111a7Bl0251Ar/igUEE7COKOnIi*iRUj70FkGtcYQYXDQHwtK8ow5Ixyc!/o/dCwAAAAAAAAA&ek=1&kp=1&pt=0&bo=DQMvAQ0DLwEDACU!&su=168630961&sce=0-12-12&rf=2-9" style="margin:0px; padding:0px; border-width:0px; border-style:none; vertical-align:top; width:781px; height:303px; float:none">

    

     

原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163

经常使用传感器协议1:CJ/T-188 水表协议解析1的更多相关文章

  1. 【Win10应用开发】协议-下篇:自定义多个协议

    前面介绍了如何为应用程序自定义协议,于是有朋友会问,我希望为我的应用注册多个协议,不同的协议处理不同的事情,能吗?答案是能的. 方法主要在配置清单文件上,这里我给出一个例子,示例应用将注册两个协议,分 ...

  2. RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议

    RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...

  3. TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议

    原文地址:http://hi.baidu.com/albyuyrgqgbbhoq/item/65006d2d002ab33195f62ba1 TCP/IP(Transmission Control P ...

  4. 各种非标232,485协议,自定义协议转modbus协议模块定制开发,各种流量计协议转modbus,

    工业现场经常会碰到通过485或者232采集各类仪表数据,但是很多早期的仪表和设备不支持标准modbus协议,而是采用自定义的协议,这些协议数据由plc或者dcs系统来实现采集,不仅费时麻烦,而且不方便 ...

  5. 串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧

    串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧 本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器, ...

  6. HTTP协议扫盲(一)HTTP协议的基本概念和通讯原理

    一.HTTP协议的概念 1.引子  - 从url开始 URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下 schema://host[:port# ...

  7. 流媒体协议(一):HLS 协议

    一.HLS 概述 HLS 全称是 HTTP Live Streaming,是一个由 Apple 公司提出的基于 HTTP 的媒体流传输协议,用于实时音视频流的传输.目前HLS协议被广泛的应用于视频点播 ...

  8. 406 UDP协议是面向非连接的协议

    HTTP The Definitive Guide   Table 3-1. Common HTTP methods   Method Description Message body?   GET ...

  9. HTTP协议属于应用层,而SOCKS协议属于传输层

    HTTP协议属于应用层,而SOCKS协议属于传输层 SOCKS代理 SOCKS代理能在任何端口,任何协议下运行. SOCKS V4只支持 TCP连接,而SOCKS V5在其基础上增加了安全认证以及对U ...

随机推荐

  1. CSS3属性之text-overflow:ellipsis,指定多行文本中任意一行显示...

    对于text-overflow:ellipsis,文本超出部分显示...,但要实现这个效果,却有一些必备条件,如下: div{ overflow:hidden; white-space:nowrap; ...

  2. Mybatis之MySql批量insert后返回主键

    需求:使用批量插入后,需要insert之后的每一条记录的ID 注意:Mybatis3.3.1的版本以后支持批量插入后返回主键ID 示例: domin.java: public class User { ...

  3. iOS KVC(Key-Value Coding)

    常见用法: 获取值 valueForKey: 依据属性名取值 valueForKeyPath: 依据路径取值(如:[person valueForKeyPath:@"car.price&qu ...

  4. crm操作报价单实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  5. html5中调用摄像头拍照

    方法: getCamera: 获取摄像头管理对象 对象: Camera: 摄像头对象 CameraOption: JSON对象.调用摄像头的參数 PopPosition: JSON对象,弹出拍照或摄像 ...

  6. js捕获页面回车事件

    1.javascript版 document.onkeyup = function (e) { if (window.event)//如果window.event对象存在,就以此事件对象为准 e = ...

  7. (二)Ribbon(负载均衡的客户端)+Rest

    前面讲了服务的注册与发现,微服务项目会把项目的各个业务需求划分成几个模块来单独提供服务,各服务间的调用都是采用Http Restful来实现,但是在SpringClound中服务间的调用有两种方式:一 ...

  8. navigator.clipboard 浏览器原生剪贴板

    浏览器原生剪贴板 navigator.clipboard 写入 navigator.clipboard.writeText navigator.clipboard.writeText('Linr Te ...

  9. tabIndex-bootstrap中Get到的

    网页键盘的无障碍访问性 其实加了这个,可以控制Tab键切换的顺序,聚焦等 这个属性,任何标签都可以添加,没有兼容性限制,属性值的范围:0-32767 当一个元素设置tabindex属性值为-1的时候, ...

  10. C语言中的作用域、链接属性与存储属性

    C语言中的作用域.链接属性与存储属性 一.作用域(scope) 代码块作用域 表示{}之间的区域,下例所示,a可以在不同的代码块里面定义. #include<stdio.h> int ma ...