本文将以SC水表为例继续说明CJ/T-188水表协议的开关阀协议的解析过程,以下数据未经特殊说明,均指十六进制。
开阀:
数据发送:
FE FE FE FE 68 10 69 05 90 05 15 33 78 04 04 A0 17 01 55 50 16
说明如下:
FE FE FE FE:协议头(1-4组)。
68:帧起始符。
10:仪表类型,此实例指冷水水表,还可定义为:
69 05 90 05 15:倒序为1505900569(以BCD码形式看待),表示表号。
33 78:倒序为7833(以BCD码形式看待),表示厂家代码。
04:控制码,后面跟固定数据域长度、数据标识和序列号。
04:数据域长度(固定)。
A0 17:数据标识(固定)。
01:序列号(固定)。
55:功能码,表示开阀。
50:累加和,从协议头68至功能码55累加之和。。
16;结束符。
回复数据:
FE FE FE FE 68 10 69 05 90 05 15 33 78 84 05 A0 17 01 00 00 7C 16
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17
说明如下:
FE FE FE FE:协议头(1-4组)。
68:帧起始符。
10:仪表类型。
69 05 90 05 15:倒序为1505900569(以BCD码形式看待),表示表号。
33 78:倒序为7833(以BCD码形式看待),表示厂家代码。
84:实际为控制码+80,我们可以简单认为只有84正确,非84均为异常,不进行解析。
05:数据域长度,为十进制22,表示后面有22个有效数据。
A0 17:数据标识(固定)。
01:序列号(固定)。
00 00:状态字,0000
正常开阀,0001正常关阀,0011异常。
7C:累加和,从协议头68至状态字00累加之和。。
16;结束符。
关阀:
数据发送:
FE FE FE FE 68 10 69 05 90 05 15 33 78 04 04 A0 17 01 99 94 16
说明如下:
FE FE FE FE:协议头(1-4组)。
68:帧起始符。
10:仪表类型,此实例指冷水水表,还可定义为:
69 05 90 05 15:倒序为1505900569(以BCD码形式看待),表示表号。
33 78:倒序为7833(以BCD码形式看待),表示厂家代码。
04:控制码,后面跟固定数据域长度、数据标识和序列号。
04:数据域长度(固定)。
A0 17:数据标识(固定)。
01:序列号(固定)。
99:功能码,表示关阀。
94:累加和,从协议头68至功能码55累加之和。。
16;结束符。
回复数据:
FE FE FE FE 68 10 69 05 90 05 15 33 78 84 05 A0 17 01 00 01 7C 16
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17
说明如下:
FE FE FE FE:协议头(1-4组)。
68:帧起始符。
10:仪表类型。
69 05 90 05 15:倒序为1505900569(以BCD码形式看待),表示表号。
33 78:倒序为7833(以BCD码形式看待),表示厂家代码。
84:实际为控制码+80,我们可以简单认为只有84正确,非84均为异常,不进行解析。
05:数据域长度,为十进制22,表示后面有22个有效数据。
A0 17:数据标识(固定)。
01:序列号(固定)。
00 01:状态字,0000
正常开阀,0001正常关阀,0011异常。
7D:累加和,从协议头68至状态字01累加之和。。
16;结束符。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
版权声明:本文为博主原创文章,未经博主允许不得转载。