今日头条
RS485即Modbus RTU协议,是一种主从式点对点的通讯协议,允许一台主机和多台从机之间进行数据通信。
NB模块为主机,电磁水表为从机。通信方式为NB模块提出命令请求,电磁水表响应接收数据后作数据分析,如果满足Modbus通信规约,则作数据响应。NB模块通过RS485 数字接口来实现对电磁水表的数据采集,包括瞬时流量、瞬时流速、正向总量、反向总量、累计总量、流量百分比、电流、频率、报警等数据。
RS485通信的每一帧数据包含从机地址、命令字、信息字、校验字,NB模块命令请求报文为地址、命令、数据地址、数据长度、校验码,电磁水表数据响应报文为地址、命令、数据长度、数据信息、校验码。
以读取电磁水表的瞬时流速为例,电磁水表通信地址为1,读取命令字为03H,瞬时流速的寄存器地址为0,数据类型是浮点型,即4个字节2个寄存器。NB模块向电磁水表发送命令请求:01H 03H 00H 00H 00H 02H C4H 0BH,表示读取通信地址为1,寄存器地址从0开始的4个字节数据,即电磁水表的瞬时流速,命令请求的校验码为C4H 0BH。
电磁水表响应数据为:01H 03H 04H 00H 00H C1H 48HABH 95H,04H表示4个字节,则 00H 00H C1H 48H 表示瞬时流速,将高、低位寄存器位置交换后,通过 IEEE- 754 标准计算可得知瞬时流速为-12.5。当读取更多数据或其他数据时,依据实际情况修改命令请求。
审核编辑:符乾江
全部0条评论
快来发表一下你的评论吧 !