物联网

188 协议详解

3261 2023-05-16 06:35:00

188协议的全称为CJ-T188-2004《户用计量仪表数据传输技术条件》,是针对水表、燃气表、热量表和其他集中采集的一个国家行业标准协议。具体内如如下。

本协议采用主-从结构的半双工通讯方式。字节格式为每字节含8位二进制码,传输时加上一个起始位(0)、一个偶校验位(E)和一个停止位(1),共11位。其字节传输序列如图4.1 。D0是字节的最低位,D7是字节的最高位。先传低位,后传高位。

0D0D1D2D3D4D5D6D7E1

 

帧格式应符合下表的规定。

帧格式:

名    称代    码
帧起始符68H
仪表类型T
地址域A0
A1
A2
A3
A4
A5
A6
控制码C
数据长度域L
数据域DATA
校验码CS
结束符16H

 

地址域(A0~A6)由七个字节组成,每个字节为2位BCD码格式。地址长度为14位十进制数,低地址在前,高地址在后。其中A5、A6为厂商代码。

当地址为AA AA AA AA AA AA AA时为广播地址。广播地址只能应用于点对点的通讯中。

  

仪表类型

10 H--19 H:水表

10 H 冷水水表

11 H 生活热水水表

12 H 直饮水水表

13 H 中水水表

20 H-29 H热量表

20 H 热量表(计热量)

21 H 热量表(计冷量)

30 H一39 H:燃气表

30 H 燃气表

40 H-49 H:其他仪表

40 H 如:电度表

 

控制码的格式

D7D6D5D4D3D2D1D0

D7 :

0 — 由主站发出的控制帧;1— 由 从 站 发 出 的应答帧。

D6 :

0 — 通讯正常;1— 通 讯 异 常 。

D5 - DO :0 00000:保留;

000 00 1 :读 数 据 ;

000 10 0 :写 数 据 ;

001 00 1: 读 密 钥 版本 号 ;

000 01 1 :读 地 址 (表 号 ) ;

01 01 01 :写 地 址 ( 表 号 );

010 11 0 :写 机 电 同 步 数 (置 表 底 数 );

lx xx xx :厂 商 自 定 义 。

 

说明:

数据长度(L)为数据域的字节数,用十六进制表示。读数据时L小于或等于64 H,写数据时L小于或等于32 H,L等于零表示无数据域。

数据域(DATA)包括数据标识、序列号和数据,其结构随控制码的功能改变。

校验码(CS)为一个字节,从帧起始符开始到校验码之前的所有各字节进行二进制算术累加,不计超过FFH的溢出值。

传输要求

1 前导字节:在发送帧信息之前,应先发送2-4个字节FEH,

2 传输次序:所有多字节数据域均先传送低位字节,后传送高位字节。

3 传输响应:每次通讯先由主站发出命令帧,被选择的从站根据命令帧的要求做出响应。

 

读操作

主站发送的序号SER。

主站请求帧:

控制码:CTR_0

数据长度:L = 03H

数据标识:DI0 , DI1

序列号:SER

帧格式:

68HTA0A6CTR_003HDI0DI1SERCS16H

 

从站正常应答帧:

控制码:CTR_1

数据域长度:L = 03H + m(数据长度)

数据标识:DI0 , DI1

序列号:SER

帧格式:

68HTA0A6CTR_1LDI0DI1SERN1NmCS16H

 

从站异常不应答。

读数据时ST0、ST1保留使用,状态不解析

主站请求读编码格式应符合下表的规定:

 

功  能控制码CTR_0正常应答控制码CTR_1备  注
读数据01H81H 

 

主站请求读数据的报文格式及从站正常应答报文格式应符合下表的规定:

序号

数据报文

名称

数据标识

(DI0 DI1)

长度从站应答报文备  注
1读计量数据901FH16H数据标识DI,序号SER ,当前累计流量,结算日累积流量,实时时间,状态ST 

 

数据表达格式应符合下表的规定:

 

序  号数据格式单位代号(1字节)数据长度(字节)备注
流  量××××.××××5BCD码
当前累积流量××××××.××5BCD码
结算日累积流量(用00填充)××××××.××5BCD码
实时时间   (用00填充)YYYY-MM-DD hh:mm:ss7BCD码
序列号SERHH1HEX
数据标识DI××××2HEX

5.2 阀门控制

主站请求帧:

控制码:CTR_0=0x04;开阀Ctr=0x55 、 关阀Ctr=0x99

数据长度:L = 04H

数据标识:DI0=0x17 , DI1=0xA0

序列号:SER

 

6810A0A1A2A3A4A5A6A7040417A0SERCtrCS16

 

返回帧:

控制码:CTR_0=0x84;

数据长度:L = 05H

数据标识:DI0=0x17 , DI1=0xA0

序列号:SER

6810A0A1A2A3A4A5A6A7840517A0SERsta1sta2CS16

 

开关阀门状态解析:

功  能

状态1

(sta1)

状态2
(sta2)
备  注
关阀成功0x010x00 
开阀成功0x000x00 

 

举例:

读数命令

 

水表(没有厂商代码)

表号:161014104

发送:FE FE FE FE 68 10 04 41 01 61 01 00 00 01 03 90 1F 00 D3 16

接收:FE FE FE 68 10 04 41 01 61 01 00 00 81 16 90 1F 00 60 00 00 00 2C 60 00 00 00 2C 00 00 00 00 00 00 00 00 00 7E 16

  

远传水表(有厂商代码:78,33)

表号:2016080454

发送:FE FE FE FE 68 10 54 04 08 16 20 33 78 01 03 90 1F 00 6C 16

接收:FE FE FE FE 68 10 54 04 08 16 20 33 78 81 16 90 1F 00 00 01 00 00 2C 00 00 00 00 2C 00 00 00 00 00 00 00 00 00 58 16

 

控制命令(关阀)

发送:FE FE FE FE 68 10 54 04 08 16 20 33 78 04 04 17 A0 0A 99 1B 16

接收:FE FE FE FE 68 10 54 04 08 16 20 33 78 84 06 17 A0 0A 99 01 00 9E 16

  

控制命令(开阀)

发送:FE FE FE FE 68 10 54 04 08 16 20 33 78 04 04 17 A0 0A 55 D7 16

接收:FE FE FE FE 68 10 54 04 08 16 20 33 78 84 06 17 A0 0A 55 00 00 59 16