来源:更新时间:2021-10-11 16:05:40点击次数:2360次
JY500B1称重仪表通讯格式
仪表采用modbus通讯协议时,校验采用CCITT-16/N(G(x)=x16+x15+x13+1)。
通讯格式为:
1)读数据:address(仪表地址)+03H+xxH(寄存器高地址)+xxH(寄存器低地址)+xxH(寄存器数高位)+xxH(寄存器数低位)+CRCH(校验高位)+CRCL(校验低位)。仪表回传:address(仪表地址)+03H+xxH(字节数)+xxH(高字节)++xxH(低字节)+CRCH(校验高位)+CRCL(校验低位)。
如:总累计为10000.84,整数部分转化为长整形16进制数为:00002710H,小数部分0.84转化为浮点型为:3F570A3DH,仪表地址为1,则读指令和回传结果如下:
读:01H03H00H14H00H04H04H0DH
仪表回传:01H03H08H00H00H27H10H3FH57H0AH3DH28H76H
2)写数据:
①10H功能:address(仪表地址)+10H+xxH(寄存器高地址)+xxH(寄存器低地址)+xxH(寄存器数高位)+xxH(寄存器数低位)+xxH(总字节数)+xxH(高字节)+…+xxH(低字节)+CRCH(校验高位)+CRCL(校验低位)。如仪表接收正确后,将回传:address(仪表地址)+10H+xxH(寄存器高地址)+xxH(寄存器低地址)+xxH(寄存器数高位)+xxH(寄存器数低位)+CRCH(校验高位)+CRCL(校验低位)。其中根据数据不同,数据包含的字节数也可能不同,传送字节时将按高字节在前低字节在后的原则。
如:要将设定流量写为100(符点数),首先我们知道设定流量的地址为000CH,
而100的4字节符点数表示为:42C80000H,故发送数据如下:
01H10H00H0CH00H02H04H42HC8H00H00H66H7CH
仪表接收正确后将回传从最前面到寄存器数低位的数及校验。
01H10H00H0CH00H02H81HCBH
当设置范围超标或地址不在范围时,回复时将功能字节10H加80H后,回传从最前面到寄存器数低位的数及校验,如设定流量范围超标时,仪表返回:
01H90H00H0CH00H02H80H15H
②06H功能:只支持2字节数的写,address(仪表地址)+06H+xxH(寄存器高地址)+xxH(寄存器低地址)+xxH(高字节)+xxH(低字节)+CRCH(校验高位)+CRCL(校验低位)。如仪表接收正确后,将回传:address(仪表地址)+06H+xxH(寄存器高地址)+xxH(寄存器低地址)+xxH(高字节)+xxH(低字节)+CRCH(校验高位)+CRCL(校验低位)。
×