MODBUS手册中文版VERD_第1页
MODBUS手册中文版VERD_第2页
MODBUS手册中文版VERD_第3页
MODBUS手册中文版VERD_第4页
MODBUS手册中文版VERD_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、modbus 协议用户手册ver: d2010-10-20目录1 数据传输模式数据传输模式.42 寄存器和数据类型寄存器和数据类型.52.1 coil.52.2 float.52.3 int.52.4 long.53 数据帧格式定义数据帧格式定义.63.1 cmd=0x03(读 1 个或多个寄存器).63.2 cmd=0x05(写 coil 变量) .73.3 cmd=0x06(写单个寄存器).83.3 cmd=0x10(写多个寄存器).93.4 故障返回帧 .104 数据帧校验算法数据帧校验算法.114.1 lrc 校验 .114.2 crc16 校验.125 仪表变量地址定义仪表变量地址定

2、义.146 附录附录 1:常数表:故障码:常数表:故障码.177 附录附录 2:常数表:流量单位:常数表:流量单位.188 附录附录 3:报警定义:报警定义.23版本声明:ver: d支持寄存器连读功能仪表的仪表的 modbus 通讯协议设置项处有通讯协议设置项处有 v10 版本标志版本标志的均支持此功能的均支持此功能2010/10/201 数据传输模式数据传输模式modbus 采用 rtu 和 ascii 两种方式进行数据传输。rtu 模式下,采用8bit 二进制字符,ascii 模式下采用 7bit asc 字符。将 rtu 模式下的一个字节的高 4 位和低 4 位分开,变成 2 个字节,

3、这样就是 ascii 模式下传输的字节。比如 rtu 模式下的数据 0 x1a,那么 ascii 模式下就是 0 x31 0 x41两个字节,所以 ascii 模式下的帧长度为 rtu 模式下的 1 倍。rtu 传输模式的数据帧采用 crc 校验,ascii 模式采用 lrc 校验。下表总结了两种传输模式的区别:传输模式传输模式ascii (7 bit)rtu (8 bit)编码格式ascii 码 (0-9 a-f)8bit 二进制 (0 x00 0 xff)起始位数据位校验位停止位17、8无、奇、偶1、218无、奇、偶1、2帧校验lrccrc162 寄存器和数据类型寄存器和数据类型下表列举了

4、几种寄存器和数据类型寄存器类型寄存器类型数据长度数据长度寄存器数量寄存器数量描述描述coil1 bit-布尔变量(on off)float32 bit232 位浮点数(ieee754 格式)int16 bit1无符号整型(0 x0 0 xffff)long32 bit2无符号长整型(0 x0 0 xffffffff)2.1 coil布尔变量 0 xff00 - on0 x0000 - off2.2 float使用 2 个寄存器存储单精度 ieee754 格式的浮点数。每个浮点数包含 4 个字节,具体定义如下:seeeeeee emmmmmmm mmmmmmmm mmmmmmmms:符号位 0-

5、正 1-负e:阶码m:尾数的小数部分例如:0 xc1480000 = -12.52.3 int使用 1 个寄存器存储无符号整型数。例如:0 x0025 = 370 x1234 = 46602.4 long使用 2 个寄存器存储无符号长整型数。例如:0 x12345678 = 3054198963 数据帧格式定义数据帧格式定义3.1 cmd=0 x03(读读 1 个或多个寄存器个或多个寄存器)本例数据为读取瞬时流量的数据帧,仪表地址=1。注:瞬时流量的寄存器起始地址注:瞬时流量的寄存器起始地址=0 x0253,但数据帧中的寄存器起始地址必,但数据帧中的寄存器起始地址必须是须是 0 x0253-0

6、 x0001 = 0 x0252请求帧:上位机-仪表数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0330 33寄存器起始地址高字节0230 32寄存器起始地址低字节5235 32寄存器数量高字节0030 30寄存器数量低字节0230 32帧校验64 6241 36包尾none0d 0a应答帧:仪表-上位机数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0330 33数据长度0430 34寄存器 0 x0253 的数据高字节c

7、143 31寄存器 0 x0253 的数据低字节4834 38寄存器 0 x0254 的数据高字节0030 30寄存器 0 x0254 的数据低字节0030 30帧校验47 d945 46包尾none0d 0a本应答帧返回的 ieee754 格式的瞬时流量数据 c1 48 00 00 = -12.53.2 cmd=0 x05(写写 coil 变量变量)本例数据为清除累计流量的数据帧,仪表地址=1。注:清累计流量的寄存器起始地址注:清累计流量的寄存器起始地址=0 x0003,但数据帧中的寄存器起始地址,但数据帧中的寄存器起始地址必须是必须是 0 x0003-0 x0001 = 0 x0002请求

8、帧:上位机-仪表数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0530 35寄存器起始地址高字节0030 30寄存器起始地址低字节0230 32coil 变量高字节ff46 46coil 变量低字节0030 30帧校验2d fa46 39包尾none0d 0a应答帧:仪表-上位机数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0530 35寄存器起始地址高字节0030 30寄存器起始地址低字节0230 32coil 变量高字节

9、ff46 46coil 变量低字节0030 30帧校验2d fa46 39包尾none0d 0a3.3 cmd=0 x06(写单个寄存器写单个寄存器)本例数据为写流量单位=m3/h 的数据帧,仪表地址=1。注:流量单位的寄存器起始地址注:流量单位的寄存器起始地址=0 x0042,但数据帧中的寄存器起始地址必,但数据帧中的寄存器起始地址必须是须是 0 x0042-0 x0001 = 0 x0041请求帧:上位机-仪表数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0630 36寄存器起始地址高字节0030 30寄

10、存器起始地址低字节4134 31变量高字节0030 30变量低字节1331 33帧校验98 1341 35包尾none0d 0a应答帧:仪表-上位机数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码0630 36寄存器起始地址高字节0030 30寄存器起始地址低字节4134 31变量高字节0030 30变量低字节1331 33帧校验98 1341 35包尾none0d 0a3.3 cmd=0 x10(写多个寄存器写多个寄存器)本例数据为写阻尼时间=3s 的数据帧,仪表地址=1。注:阻尼时间的寄存器起始地址注:阻尼

11、时间的寄存器起始地址=0 x0189,但数据帧中的寄存器起始地址必,但数据帧中的寄存器起始地址必须是须是 0 x0189-0 x0001 = 0 x0188请求帧:上位机-仪表数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码1031 30寄存器起始地址高字节0130 31寄存器起始地址低字节8838 38寄存器数量高字节0030 30寄存器数量低字节0230 32数据长度0430 34写入寄存器 0 x0189 的高字节4034 30写入寄存器 0 x0189 的低字节4034 30写入寄存器 0 x018a

12、的高字节0030 30写入寄存器 0 x018a 的低字节0030 30帧校验e3 ed45 38包尾none0d 0a本例中的 4 个数据字节为 ieee754 格式的浮点数 40 40 00 00 = 3.0应答帧:仪表-上位机数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码1031 30寄存器起始地址高字节0130 31寄存器起始地址低字节8838 38寄存器数量高字节0030 30寄存器数量低字节0230 32帧校验c0 1e36 43包尾none0d 0a3.4 故障返回帧故障返回帧对于不能正确完成操

13、作的请求帧,仪表将返回一个报告故障代码的返回帧,以报告不能完成操作的具体原因。比如将流量单位设置成 hz,由于仪表不能支持 hz 这个流量单位,所以将返回如下的故障应答帧。故障应答帧:仪表-上位机数据场名称数据场名称rtu 示例数据示例数据(hex)asc 示例数据示例数据(hex)包头none3a仪表地址0130 31功能码8638 36故障码4334 33帧校验03 9139 31包尾none0d 0a注:注:1故障返回帧中的功能码故障返回帧中的功能码=请求帧的功能码请求帧的功能码+0 x802具体的故障代码请参考具体的故障代码请参考 附录附录 1:常数表:故障码:常数表:故障码4 数据帧

14、校验算法数据帧校验算法4.1 lrc 校验校验/ lrc 校验范围:从校验范围:从“仪表地址仪表地址”到到 lrc 帧校验码的前一个字节帧校验码的前一个字节void lrc(unsigned char *buf, unsigned int len)unsigned int i;lrc = 0;for (i=0; ilen; i+)lrc += bufi;lrc = 0 xff - lrc;lrc+;4.2 crc16 校验校验const unsigned char tab_crc_h = 0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01

15、,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80

16、,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00

17、,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81

18、,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01

19、,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40,0 x01,0 xc0,0 x80,0 x41,0 x01,0 xc0,0 x80,0 x41,0 x00,0 xc1,0 x81,0 x40;const unsigned ch

20、ar tab_crc_l = 0 x00,0 xc0,0 xc1,0 x01,0 xc3,0 x03,0 x02,0 xc2,0 xc6,0 x06,0 x07,0 xc7,0 x05,0 xc5,0 xc4,0 x04,0 xcc,0 x0c,0 x0d,0 xcd,0 x0f,0 xcf,0 xce,0 x0e,0 x0a,0 xca,0 xcb,0 x0b,0 xc9,0 x09,0 x08,0 xc8,0 xd8,0 x18,0 x19,0 xd9,0 x1b,0 xdb,0 xda,0 x1a,0 x1e,0 xde,0 xdf,0 x1f,0 xdd,0 x1d,0 x1c,0 x

21、dc,0 x14,0 xd4,0 xd5,0 x15,0 xd7,0 x17,0 x16,0 xd6,0 xd2,0 x12,0 x13,0 xd3,0 x11,0 xd1,0 xd0,0 x10,0 xf0,0 x30,0 x31,0 xf1,0 x33,0 xf3,0 xf2,0 x32,0 x36,0 xf6,0 xf7,0 x37,0 xf5,0 x35,0 x34,0 xf4,0 x3c,0 xfc,0 xfd,0 x3d,0 xff,0 x3f,0 x3e,0 xfe,0 xfa,0 x3a,0 x3b,0 xfb,0 x39,0 xf9,0 xf8,0 x38,0 x28,0 x

22、e8,0 xe9,0 x29,0 xeb,0 x2b,0 x2a,0 xea,0 xee,0 x2e,0 x2f,0 xef,0 x2d,0 xed,0 xec,0 x2c,0 xe4,0 x24,0 x25,0 xe5,0 x27,0 xe7,0 xe6,0 x26,0 x22,0 xe2,0 xe3,0 x23,0 xe1,0 x21,0 x20,0 xe0,0 xa0,0 x60,0 x61,0 xa1,0 x63,0 xa3,0 xa2,0 x62,0 x66,0 xa6,0 xa7,0 x67,0 xa5,0 x65,0 x64,0 xa4,0 x6c,0 xac,0 xad,0 x

23、6d,0 xaf,0 x6f,0 x6e,0 xae,0 xaa,0 x6a,0 x6b,0 xab,0 x69,0 xa9,0 xa8,0 x68,0 x78,0 xb8,0 xb9,0 x79,0 xbb,0 x7b,0 x7a,0 xba,0 xbe,0 x7e,0 x7f,0 xbf,0 x7d,0 xbd,0 xbc,0 x7c,0 xb4,0 x74,0 x75,0 xb5,0 x77,0 xb7,0 xb6,0 x76,0 x72,0 xb2,0 xb3,0 x73,0 xb1,0 x71,0 x70,0 xb0,0 x50,0 x90,0 x91,0 x51,0 x93,0 x

24、53,0 x52,0 x92,0 x96,0 x56,0 x57,0 x97,0 x55,0 x95,0 x94,0 x54,0 x9c,0 x5c,0 x5d,0 x9d,0 x5f,0 x9f,0 x9e,0 x5e,0 x5a,0 x9a,0 x9b,0 x5b,0 x99,0 x59,0 x58,0 x98,0 x88,0 x48,0 x49,0 x89,0 x4b,0 x8b,0 x8a,0 x4a,0 x4e,0 x8e,0 x8f,0 x4f,0 x8d,0 x4d,0 x4c,0 x8c,0 x44,0 x84,0 x85,0 x45,0 x87,0 x47,0 x46,0 x

25、86,0 x82,0 x42,0 x43,0 x83,0 x41,0 x81,0 x80,0 x40;/ crc 校验范围:从校验范围:从“仪表地址仪表地址”到到 crc 帧校验码的前一个字节帧校验码的前一个字节void crc(unsigned char *buf, unsigned int len)unsigned int i;unsigned char crc_h , crc_l , index, ch;crc_h = 0 xff;crc_l = 0 xff;for (i=0; ilen; i+)ch = bufi;index = crc_h ch;crc_h = crc_l tab_c

26、rc_hindex;crc_l = tab_crc_lindex;5 仪表变量地址定义仪表变量地址定义以下为仪表支持数据变量信息列表,数据均为 hex 类型变量名变量名寄存器地址寄存器地址寄存器长度寄存器长度读指令读指令写指令写指令coil 类型类型清累计0003-05int 类型类型流量单位(附录 2:常数表流量单位)004200010306累计单位(附录 2:常数表流量单位)004600010306功率单位(附录 2:常数表流量单位)6003 (热能表热能表)00010306热能单位(附录 2:常数表流量单位)6004 (热能表热能表)00010306报警(附录 3:报警定义)041900

27、0103-long 类型类型扩展正向累计0309000203-正向累计0311000203-扩展反向累计0313000203-反向累计0315000203-扩展正向累计热量 0317 (热能表热能表)000203-正向累计热量0319 (热能表热能表)000203-扩展反向累计热量0321 (热能表热能表)000203-反向累计热量0323 (热能表热能表)000203-float 类型类型主变量(瞬时流量)0253000203-瞬时功率2000 (热能表热能表)000203-入口温度2002 (热能表热能表)000203-出口温度2004 (热能表热能表)000203-阻尼时间 s01890

28、0020310小信号切除%019700020310刻度流量0209000203104-20ma 电流测试(ma)01430002-10输出电流值 ma0203000203-输出频率值 hz0229000203-频率上限 hz022300020310脉冲当量 l/p110300020310脉冲宽度 ms022700020310连读连读: (通讯协议通讯协议 v10 版本版本)瞬时流量瞬时流量 累计流量累计流量主变量(瞬时流量) float0500000203-扩展正向累计 unsigned long0502000203-正向累计 unsigned long0504000203-扩展反向累计 un

29、signed long0506000203-反向累计 unsigned long0508000203-连读连读: (通讯协议通讯协议 v10 版本版本)瞬时流量瞬时流量 累计流量:此处的累计量为仪表现场读数累计流量:此处的累计量为仪表现场读数*1000 的结果,的结果,比如仪表现场读数比如仪表现场读数=10 m3, 则通过通讯读过来的数据为则通过通讯读过来的数据为 10,000 l比如仪表现场读数比如仪表现场读数=10 l, 则通过通讯读过来的数据为则通过通讯读过来的数据为 10,000 ml主变量(瞬时流量) float0510000203-扩展正向累计 unsigned long05120

30、00203-正向累计 unsigned long0514000203-扩展反向累计 unsigned long0516000203-反向累计 unsigned long0518000203-连读连读: (通讯协议通讯协议 v10 版本版本 & 热能表热能表)瞬时流量瞬时流量 瞬时功率瞬时功率 入口温度入口温度 出口温度出口温度 累计流量累计流量 累计热量累计热量主变量(瞬时流量) float0520000203-瞬时功率 float0522000203-入口温度 0c float0524000203-出口温度 0c float0526000203-扩展正向累计 unsigned long052

31、8000203-正向累计 unsigned long052a000203-扩展反向累计 unsigned long052c000203-反向累计 unsigned long052e000203-扩展正向热能累计 unsigned long0530000203-正向热能累计 unsigned long0532000203-扩展反向热能累计 unsigned long0534000203-反向热能累计 unsigned long0536000203-注:累计量的计算方法如下假设读出的“扩展正向累计” = 2, “正向累计” = 1234则总的正向累计流量 = 2 * 1000,0000 + 123

32、4 = 200012346 附录附录 1:常数表:故障码:常数表:故障码0 x01: 无效指令码0 x02: 无效的寄存器地址0 x30: 参数超上限0 x31: 参数超下限0 x32: 参数选择项错误0 x40: 无效的寄存器长度0 x41: 寄存器不支持当前的指令码0 x42: 寄存器未指定功能0 x43: 流量单位不存在0 x44: 总量单位不存在0 x45: 最高频率输出超上限0 x46: 最低频率输出超下限0 x47: 最高流速超上限0 x48: 占空比超上限7 附录附录 2:常数表:流量单位:常数表:流量单位inh2o 1inhg 2fth2o 3mmh2o 4mmhg 5psi 6bar 7mbar 8g/sqcm 9kg/sqcm 10pa 11kpa 12torr 13atm 14cuft/min 15gal/min 16l/min 17impgal/min 18cum/h 19ft/s 20m/s 21gal/s 22mmgal/d 23l/s 24ml/d 25cuft/s 26cuft/d 27cum/s 28cum/d 29impgal/h 30impgal/d 31degc 32degf 33degr 34kelvin 35mv 36ohm 37hz 38ma 39gal 40l 41impgal 42cum 43ft 44m 45bbl 46

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论