表计通信协议
一、字符格式
1个停止位,8位数据,无校验,1位停止位
二、桢格式
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
3、表计的错误应答,ERR
当表计接收到正确的数据桢但是执行错误时发错误应答桢ERR
1=数据保存出错,当接收到设置类命令时,表计把设置数据写入非易失存储器,并且读出数据进行校验,如果写非易失存储器失败,则返回错误代码=1的ERR桢
2=执行开阀门失败,如果表计收到开阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=2的ERR桢
3=执行关阀门失败,如果表计收到关阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=3的ERR桢
4、超时处理
如果表计收到错误的数据桢,则不作任何处理和应答,主站通过超时来判断数据通信失败。
四、命令桢
1、读数据命令READ,CMD = 0X01
“9999.99”,采用ascii码字符串。高位在前。
每位的代码采用ASCII字符格式,取值为:’0’—‘9’,‘E’,’F’。
2、阀门控制命令SW,CMD=0X03
如果阀门动作成功,返回ACK,动作失败返回ERR,错误代码见上述。
3、设置表计地址ADDR,CMD=0X11
表计→主站
如果表计保存地址成功,返回ACK,否则返回ERR,错误代码=1。4、读表计地址RADDR,CMD =0X10
如果地址设置有效,用有效地值返回ACK,否则用FFFFFFFF地址返回ERR,错误代码=1