本文以实例说明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;结束符。
附:单位代号
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。