您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > CHBE专用Modbus通讯协议说明20141020
CHBE系列仪表Modbus通讯协议1、Modbus通讯协议简介1.1.Modbus通讯协议采用RTU传输模式RTU模式中每个字节(11位)的格式为:1个起始位8个数据位1个奇偶校验位1个停止位注:帧校验采用循环冗余校验(CRC)仪表的应答延迟不大于300ms1.2.与通讯有关的参数说明与通讯有关的参数位于仪表的第5组参数中仪表通讯地址,参数地址40H,取值范围0~99,出厂设置为1通讯速率选择,参数地址41H,取值范围2400、4800、9600、19200(bps)可选,出厂设置为9600bps校验方式选择,参数地址42H,取值范围0~2,出厂设置为2选择为0时,通讯采用无校验方式选择为1时,通讯采用奇校验方式选择为2时,通讯采用偶校验方式SX2、通讯命令简介本系列仪表支持的Modbus命令集命令名称Modbus命令类型功能码(十六进制)寻址范围(十进制)读测量值读输入寄存器040~3读仪表参数值读多个保持寄存器03256~447读开关量输出状态读线圈010~3设置仪表参数值写多个保持寄存器10256~447输出单个开关量写单个线圈050~3输出多个开关量写多个线圈0F0~3指令中涉及到的测量值、参数值、模拟量值均采用32位浮点数(IEEE-754标准格式)表示,占用2个连续的寄存器。每条指令的具体功能请参见通讯命令详解3、通讯命令详解3.1.命令说明所有命令中的数值均采用十六进制表示1)读测量值命令总重值对应的寄存器地址为0x0000~0x0001净重值对应的寄存器地址为0x0002~0x0003峰值对应的寄存器地址为0x0004~0x0005谷重值对应的寄存器地址为0x0006~0x0007命令:AA0400000002CCCCAA0400000002CCCC通讯地址功能码寄存器起始地址寄存器个数CRC校验值响应:AA0404dataCCCCAA0404dataCCCC通讯地址功能码测量值字节数测量值CRC校验值例:命令:01040000000271CB响应:01040442C3999AF5FB本命令读取地址为01的仪表的总重值响应表明读取的测量值为42C3999A(十进制数为97.8)2)读仪表参数值命令将参数值定义为1~192个保持寄存器,寻址范围0x0100~0x01BF,每2个连续的保持寄存器表示一个参数值。寄存器起始地址与仪表参数地址的对应关系参见说明书命令:AA03BBBB0002CCCCAA03BBBB002CCCC通讯地址功能码寄存器起始地址寄存器个数CRC校验值响应:AA0304dataCCCCAA0304dataCCCC通讯地功能码参数值字节数参数值CRC校验值例:命令:0103016400028428响应:01030440800000EE1B本命令读取地址为01的仪表的参数地址为32H的参数值响应表明读取的参数值为40800000(十进制数为4)3)读开关量输出状态命令(报警输出)将开关量输出定义为第1~2个线圈,寻址范围0x0000~0x0001,分别对应第1~2点报警命令:AA01BBBBDDDDCCCCAA01BBBBDDDDCCCC通讯地址功能码开关量起始地址开关量个数CRC校验值响应:AA0101dataCCCCAA0101dataCCCC通讯地址功能码开关量状态字节数开关量状态CRC校验值BBBB表示开关量地址,取值0x0000~0x0001,分别对应第1~2点报警DDDD表示开关量个数data用一个字节表示,其中由低位到高位依次表示从BBBB开始的连续DDDD个开关量输出状态(1表示有效,0表示无效)例:命令:010100000002BDCB响应:010101031189本命令读取地址为01的仪表的第1~2点报警输出状态响应表明本仪表的第1、2两点报警输出有效4)设置仪表参数值命令命令:AA10BBBB000204dataCCCCAA10BBBB000204dataCCCC通讯地址功能码寄存器起始地址寄存器个数参数值字节数参数值CRC校验值正常响应:AA10BBBB0002CCCCAA10BBBB0002CCCC通讯地址功能码寄存器起始地址寄存器个数CRC校验值参数值字节数=寄存器个数×2此指令中的BBBB与读仪表参数值命令中的BBBB相同例:命令:0110010000020442C800006BB9响应:01100164000201EB本命令将地址为01的仪表的参数地址为32H的参数值设置为42C80000(十进制数100)响应表明此指令操作正确注1:如果参数值的小数点位数多于该参数规定的小数点位数,则省略多余的位数;参数值的小数点位数少于该参数的小数点位数,则将不够的位数补零。例如,参数“输入上限”的小数点位置为00.00。如果接收到写参数命令中的参数值为12.213,则将“输入上限”修改为12.21;如果接收到写参数命令中的参数值为1.2,则将“输入上限”修改为01.20注2:设置参数时,必须先将仪表第2组参数中的设置为11115)输出单个开关量命令命令:AA05BBBBDDDDCCCCAA05BBBBDDDDCCCC通讯地址功能码开关量起始地址开关量状态CRC校验值正常响应:AA05BBBBDDDDCCCCAA05BBBBDDDDCCCC通讯地址功能码开关量起始地址开关量状态CRC校验值BBBB表示开关量地址,取值0x0000~0x0001,分别对应第1~2点报警DDDD的取值只能为0x0000或0xFF00为0x0000时,表示将相应地址的输出开关量设置为无效为0xFF00时,表示将相应地址的输出开关量设置为有效例:命令:01050001FF00DDFA响应:01050001FF00DDFA本命令将地址为01的仪表的第2点输出开关量设置为有效响应表明此指令操作正确注:在使用此指令前应先将仪表参数中的设置为ON6)输出多个开关量命令命令:AA0FBBBBDDDD01dataCCCCAA0FBBBBDDDD01dataCCCC通讯地址功能码开关量起始地址开关量个数开关量状态字节数开关量状态CRC校验值正常响应:AA0FBBBBDDDDCCCCAA0FBBBBDDDDCCCC通讯地址功能码开关量起始地址开关量个数CRC校验值此指令中的BBBB、DDDD和data与读输出开关量状态命令中的一致例:命令:010F0000000401037E97响应:010F000000045408本命令将地址为01的仪表的第1、2两点开关量设置为有效响应表明此指令操作正确注:在使用此指令前应先将仪表参数中的设置为ON3.2.异常码返回当仪表接收到主机发送的指令,在处理过程中出现异常时,返回异常码返回异常码的格式为:AABBDDCCCCAABBDDCCCC通讯地址差错码异常码CRC校验值BB的取值为:指令的功能码+0x80DD的取值为:01、02、03、04DD为01的情况有:输入的功能码错误,即输入了01、03、04、05、0F、10以外的功能码DD为02的情况有:寄存器地址错误或开关量地址错误DD为03的情况有:寄存器个数为0或开关量个数为0在设置仪表参数值命令中,参数值字节数错误在输出单个开关量命令中,开关量状态错误在输出多个开关量命令中,开关量状态字节数错误DD为04的情况有:在输出开关量命令中,仪表参数没有设置为ON在设置仪表参数值指令中,没有先将仪表第2组参数设置为1111,或参数值超出参数的取值范围,或参数在存储过程中发生了错误例1:仪表的通讯地址为01,想要读取仪表的测量值指令输入为:011400000002B008仪表响应为:0194018F00此响应属于异常响应,返回差错码94(0x14+0x80),异常码01异常码01表示输入的功能码错误(正确的功能码为04)例2:仪表的通讯地址为01,想要读取仪表的测量值指令输入为:010400010002200B仪表响应为:018402C2C1此响应属于异常相应,返回差错码84(0x04+0x80),异常码02异常码02表示寄存器地址错误(正确寄存器地址为0000)例3:仪表的通讯地址为02,想要将仪表的第1点报警设置为有效指令输入为:0205000000FF8DB9仪表响应为:028503F291此响应属于异常响应,返回差错码85(0x05+0x80),异常码03异常码03表示输入的开关量状态错误(开关量有效的状态为FF00)例4:仪表的通讯地址为02,想要将仪表的第1点报警设置为有效指令输入为:02050000FF008C09仪表响应为:028504B353此响应属于异常响应,返回差错码85(0x05+0x80),异常码04异常码04表示仪表中参数可能没有设置为ON3.3.仪表不响应的情况通讯地址错误波特率错误奇偶校验错误CRC校验错误命令长度输入错误注:在设置状态下,仪表不进行通讯处理通讯指令中的通讯地址AA是16进制数,而仪表通讯地址参数中的数值采用十进制表示。例:如果仪表参数ADD为99,通讯命令中地址AA应该为63H
本文标题:CHBE专用Modbus通讯协议说明20141020
链接地址:https://www.777doc.com/doc-2905612 .html