表计通信协议
一、字符格式
1个停止位,8位数据,无校验,1位停止位
二、桢格式
1、桢格式
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,采用点分法表示 |
6 | CMD | 命令码 |
7 | LEN | 数据域的字节长度 |
8—7+LEN | DATA | 数据域,低字节在前,高字节在后 |
8+LEN | CS | 0-数据域的字节和 |
9+LEN | 0X16 | 桢结束符号 |
2、仪表类型
0X10-0X19水表,分别为:
0X10冷水水表
0X11生活热水水表
0X12直饮水水表
0X13中水水表
0X20-0X29热量表,分别为:
0X20热量表,计热类
0X21热量表,计冷类
0X30-0X39燃气表,分别为:
0X30燃气表
0X40-0X49其它仪表,分别为:
0X40电度表。
3、地址域
4字节,十六进制码格式,00000000-FFFFFFFF共4G个地址,其中FFFFFFFF为广播设置地址,用于设置表计地址或者读表计地址,其他地址用于表计地址编码。
4、命令码
D7=方向控制,D7=0表示主站发出的数据,D7=1表示表计发出的数据。
D6-D0构成命令码
三、通信交互过程
1、问答式规约
任何一次通信必须有主站发起,表计应答结束。
2、字符串长度和字节表计的正确应答,ACK
当表计接收到主站发出的设置类、控制类命令并且能够正确执行时回复ACK
ACK
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,点分法表示 |
6 | CMD=0XAC | ACK的命令码 |
7 | LEN=0 | 数据域的字节长度=0 |
8 | 0-5的字节和 | 校验和 |
9 | 0X16 | 桢结束符号 |
3、表计的错误应答,ERR
当表计接收到正确的数据桢但是执行错误时发错误应答桢ERR
ERR
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,点分法表示 |
6 | CMD=EE | 错误应答桢命令码 |
7 | LEN=1 | 数据域的字节长度=1 |
8 | DATA=ERRCODE | 数据域为1字节的错误代码 |
9 | 0-6的字节和 | 校验和 |
10 | 0X16 | 桢结束符号 |
说明:错误代码包括:
1=数据保存出错,当接收到设置类命令时,表计把设置数据写入非易失存储器,并且读出数据进行校验,如果写非易失存储器失败,则返回错误代码=1的ERR桢
2=执行开阀门失败,如果表计收到开阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=2的ERR桢
3=执行关阀门失败,如果表计收到关阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=3的ERR桢
4、超时处理
如果表计收到错误的数据桢,则不作任何处理和应答,主站通过超时来判断数据通信失败。
四、命令桢
1、读数据命令READ,CMD = 0X01
主站表计
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,点分法表示 |
6 | 0X01 | 读数据命令码 |
7 | LEN=0 | 数据域的字节长度=0 |
8 | 0-7的字节和 | 校验和 |
9 | 0X16 | 桢结束符号 |
表计主站
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,点分法表示 |
6 | CMD=0X81 | 表计数据返回命令码 |
7 | LEN | 数据域的字节长度 |
8-7+LEN | DATA | 数据 |
8+LEN | CS | 校验和 |
9+LEN | 0X16 | 桢结束符号 |
说明,表计返回的数据采用的格式为:
“9999.99”,采用ascii码字符串。高位在前。
每位的代码采用ASCII字符格式,取值为:’0’—‘9’,‘E’,’F’。
2、阀门控制命令SW,CMD=0X03
主站表计
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | A0-A3 | 地址域,点分法 |
6 | 0X03 | 阀门控制命令 |
7 | LEN=1 | 数据域的字节长度=1 |
8 | 1=开阀,0=关阀 | 阀门控制字 |
9 | CS | 校验和 |
10 | 0X16 | 结束符号 |
表计主站
如果阀门动作成功,返回ACK,动作失败返回ERR,错误代码见上述。
3、设置表计地址ADDR,CMD=0X11
主站表计
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | FFFFFFFF | 采用设置类地址 |
6 | 0X11 | 设置表计地址命令 |
7 | LEN=4 | 数据域的字节长度=4 |
8 | ADD0 | 表计地址 |
9 | ADD1 | 表计地址 |
10 | ADD2 | 表计地址 |
11 | ADD3 | 表计地址 |
12 | CS | 校验和 |
13 | 0X16 | 结束符号 |
表计主站
如果表计保存地址成功,返回ACK,否则返回ERR,错误代码=1。
4、读表计地址RADDR,CMD =0X10
主站表计
偏移地址 | 内容 | 含义 |
0 | 0x68 | 桢起始符号 |
1 | T | 仪表类型 |
2-5 | FFFFFFFF | 采用设置类地址 |
6 | 0X10 | 读表计地址命令 |
7 | LEN=0 | 数据域的字节长度=0 |
8 | CS | 校验和 |
9 | 0X16 | 结束符号 |
表计主站
如果地址设置有效,用有效地值返回ACK,否则用FFFFFFFF地址返回ERR,错误代码=1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论