MODBUS手册中文版VERD.doc

上传人:laozhun 文档编号:4141031 上传时间:2023-04-07 格式:DOC 页数:23 大小:200KB
返回 下载 相关 举报
MODBUS手册中文版VERD.doc_第1页
第1页 / 共23页
MODBUS手册中文版VERD.doc_第2页
第2页 / 共23页
MODBUS手册中文版VERD.doc_第3页
第3页 / 共23页
MODBUS手册中文版VERD.doc_第4页
第4页 / 共23页
MODBUS手册中文版VERD.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《MODBUS手册中文版VERD.doc》由会员分享,可在线阅读,更多相关《MODBUS手册中文版VERD.doc(23页珍藏版)》请在三一办公上搜索。

1、MODBUS 协议用户手册Ver: D2010-10-20目录1 数据传输模式42 寄存器和数据类型52.1 COIL52.2 FLOAT52.3 INT52.4 LONG53 数据帧格式定义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 仪表变量地址定义146 附录1:常数表:故障码177 附录2:常数表:流量单位188 附录3:报警定义23版本声明:Ver: D支持寄

2、存器连读功能仪表的modbus通讯协议设置项处有V10版本标志的均支持此功能2010/10/201 数据传输模式MODBUS采用RTU和ASCII两种方式进行数据传输。RTU模式下,采用8bit二进制字符,ASCII模式下采用7bit ASC字符。将RTU模式下的一个字节的高4位和低4位分开,变成2个字节,这样就是ASCII模式下传输的字节。比如RTU模式下的数据0x1A,那么ASCII模式下就是0x31 0x41两个字节,所以ASCII模式下的帧长度为RTU模式下的1倍。RTU传输模式的数据帧采用CRC校验,ASCII模式采用LRC校验。下表总结了两种传输模式的区别:传输模式ASCII (7

3、 bit)RTU (8 bit)编码格式ASCII码 (0-9 A-F)8bit二进制 (0x00 0xff)起始位数据位校验位停止位17、8无、奇、偶1、218无、奇、偶1、2帧校验LRCCRC162 寄存器和数据类型下表列举了几种寄存器和数据类型寄存器类型数据长度寄存器数量描述COIL1 bit-布尔变量(ON OFF)FLOAT32 bit232位浮点数(IEEE754格式)INT16 bit1无符号整型(0x0 0xFFFF)LONG32 bit2无符号长整型(0x0 0xFFFFFFFF)2.1 COIL布尔变量 0xFF00 - ON0x0000 - OFF2.2 FLOAT使用2

4、个寄存器存储单精度IEEE754格式的浮点数。每个浮点数包含4个字节,具体定义如下:SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMMS:符号位 0-正 1-负E:阶码M:尾数的小数部分例如:0xC1480000 = -12.52.3 INT使用1个寄存器存储无符号整型数。例如:0x0025 = 370x1234 = 46602.4 LONG使用2个寄存器存储无符号长整型数。例如:0x12345678 = 3054198963 数据帧格式定义3.1 CMD=0x03(读1个或多个寄存器)本例数据为读取瞬时流量的数据帧,仪表地址=1。注:瞬时流量的寄存器起始地址=0x0253

5、,但数据帧中的寄存器起始地址必须是0x0253-0x0001 = 0x0252请求帧:上位机-仪表数据场名称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寄存器0x0253的数据高字节C143 31寄存器0

6、x0253的数据低字节4834 38寄存器0x0254的数据高字节0030 30寄存器0x0254的数据低字节0030 30帧校验47 D945 46包尾NONE0D 0A本应答帧返回的IEEE754格式的瞬时流量数据C1 48 00 00 = -12.53.2 CMD=0x05(写COIL变量)本例数据为清除累计流量的数据帧,仪表地址=1。注:清累计流量的寄存器起始地址=0x0003,但数据帧中的寄存器起始地址必须是0x0003-0x0001 = 0x0002请求帧:上位机-仪表数据场名称RTU示例数据(HEX)ASC示例数据(HEX)包头NONE3A仪表地址0130 31功能码0530 3

7、5寄存器起始地址高字节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变量高字节FF46 46COIL变量低字节0030 30帧校验2D FA46 39包尾NONE0D 0A3.3 CMD=0x06(写单个寄存器)本例数据为写流量单位=m3/h的数据帧,仪表地址=1。注:流量

8、单位的寄存器起始地址=0x0042,但数据帧中的寄存器起始地址必须是0x0042-0x0001 = 0x0041请求帧:上位机-仪表数据场名称RTU示例数据(HEX)ASC示例数据(HEX)包头NONE3A仪表地址0130 31功能码0630 36寄存器起始地址高字节0030 30寄存器起始地址低字节4134 31变量高字节0030 30变量低字节1331 33帧校验98 1341 35包尾NONE0D 0A应答帧:仪表-上位机数据场名称RTU示例数据(HEX)ASC示例数据(HEX)包头NONE3A仪表地址0130 31功能码0630 36寄存器起始地址高字节0030 30寄存器起始地址低字

9、节4134 31变量高字节0030 30变量低字节1331 33帧校验98 1341 35包尾NONE0D 0A3.3 CMD=0x10(写多个寄存器)本例数据为写阻尼时间=3s的数据帧,仪表地址=1。注:阻尼时间的寄存器起始地址=0x0189,但数据帧中的寄存器起始地址必须是0x0189-0x0001 = 0x0188请求帧:上位机-仪表数据场名称RTU示例数据(HEX)ASC示例数据(HEX)包头NONE3A仪表地址0130 31功能码1031 30寄存器起始地址高字节0130 31寄存器起始地址低字节8838 38寄存器数量高字节0030 30寄存器数量低字节0230 32数据长度043

10、0 34写入寄存器0x0189的高字节4034 30写入寄存器0x0189的低字节4034 30写入寄存器0x018A的高字节0030 30写入寄存器0x018A的低字节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

11、43包尾NONE0D 0A3.4 故障返回帧对于不能正确完成操作的请求帧,仪表将返回一个报告故障代码的返回帧,以报告不能完成操作的具体原因。比如将流量单位设置成Hz,由于仪表不能支持Hz这个流量单位,所以将返回如下的故障应答帧。故障应答帧:仪表-上位机数据场名称RTU示例数据(HEX)ASC示例数据(HEX)包头NONE3A仪表地址0130 31功能码8638 36故障码4334 33帧校验03 9139 31包尾NONE0D 0A注:1故障返回帧中的功能码=请求帧的功能码+0x802具体的故障代码请参考 附录1:常数表:故障码4 数据帧校验算法4.1 LRC校验/ LRC 校验范围:从“仪表

12、地址”到LRC帧校验码的前一个字节void LRC(unsigned char *buf, unsigned int len)unsigned int i;LRC = 0;for (i=0; ilen; i+)LRC += bufi;LRC = 0xff - LRC;LRC+;4.2 CRC16校验const unsigned char TAB_CRC_H = 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x4

13、0,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x4

14、0,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x4

15、1,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x4

16、1,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40;const unsigned char TAB_CRC_L = 0x00,0

17、xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0

18、xD1,0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0

19、xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,0x77,0

20、xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,0x44,0

21、x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40;/ CRC 校验范围:从“仪表地址”到CRC帧校验码的前一个字节void CRC(unsigned char *buf, unsigned int len)unsigned int i;unsigned char CRC_H , CRC_L , index, ch;CRC_H = 0xff;CRC_L = 0xff;for (i=0; ilen; i+)ch = bufi;index = CRC_H ch;CRC_H = CRC_L TAB_CRC

22、_Hindex;CRC_L = TAB_CRC_Lindex;5 仪表变量地址定义以下为仪表支持数据变量信息列表,数据均为HEX类型变量名寄存器地址寄存器长度读指令写指令COIL类型清累计0003-05INT 类型流量单位(附录2:常数表流量单位)004200010306累计单位(附录2:常数表流量单位)004600010306功率单位(附录2:常数表流量单位)6003 (热能表)00010306热能单位(附录2:常数表流量单位)6004 (热能表)00010306报警(附录3:报警定义)0419000103-LONG 类型扩展正向累计0309000203-正向累计0311000203-扩展反

23、向累计0313000203-反向累计0315000203-扩展正向累计热量 0317 (热能表)000203-正向累计热量0319 (热能表)000203-扩展反向累计热量0321 (热能表)000203-反向累计热量0323 (热能表)000203-FLOAT 类型主变量(瞬时流量)0253000203-瞬时功率2000 (热能表)000203-入口温度2002 (热能表)000203-出口温度2004 (热能表)000203-阻尼时间s018900020310小信号切除%019700020310刻度流量0209000203104-20mA电流测试(mA)01430002-10输出电流值mA

24、0203000203-输出频率值Hz0229000203-频率上限 Hz022300020310脉冲当量 L/p110300020310脉冲宽度 ms022700020310连读: (通讯协议V10版本)瞬时流量 累计流量主变量(瞬时流量) float0500000203-扩展正向累计 unsigned long0502000203-正向累计 unsigned long0504000203-扩展反向累计 unsigned long0506000203-反向累计 unsigned long0508000203-连读: (通讯协议V10版本)瞬时流量 累计流量:此处的累计量为仪表现场读数*1000

25、的结果,比如仪表现场读数=10 m3, 则通过通讯读过来的数据为10,000 L比如仪表现场读数=10 L, 则通过通讯读过来的数据为10,000 mL主变量(瞬时流量) float0510000203-扩展正向累计 unsigned long0512000203-正向累计 unsigned long0514000203-扩展反向累计 unsigned long0516000203-反向累计 unsigned long0518000203-连读: (通讯协议V10版本 & 热能表)瞬时流量 瞬时功率 入口温度 出口温度 累计流量 累计热量主变量(瞬时流量) float0520000203-瞬时

26、功率 float0522000203-入口温度0C float0524000203-出口温度0C float0526000203-扩展正向累计 unsigned long0528000203-正向累计 unsigned long052A000203-扩展反向累计 unsigned long052C000203-反向累计 unsigned long052E000203-扩展正向热能累计 unsigned long0530000203-正向热能累计 unsigned long0532000203-扩展反向热能累计 unsigned long0534000203-反向热能累计 unsigned lo

27、ng0536000203-注:累计量的计算方法如下假设读出的“扩展正向累计” = 2,“正向累计” = 1234则总的正向累计流量 = 2 * 1000,0000 + 1234 = 200012346 附录1:常数表:故障码0x01: 无效指令码0x02: 无效的寄存器地址0x30: 参数超上限0x31: 参数超下限0x32: 参数选择项错误0x40: 无效的寄存器长度0x41: 寄存器不支持当前的指令码0x42: 寄存器未指定功能0x43: 流量单位不存在0x44: 总量单位不存在0x45: 最高频率输出超上限0x46: 最低频率输出超下限0x47: 最高流速超上限0x48: 占空比超上限7

28、 附录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 38

29、mA 39gal 40L 41Impgal 42Cum 43ft 44m 45bbl 46in 47cm 48mm 49min 50s 51h 52d 53cSt 54cP 55uMho 56% 57V 58pH 59g 60kg 61MetTon 62lb 63STon 64LTon 65 g/s 70g/min 71g/h 72Kg/s 73Kg/min 74Kg/h 75Kg/d 76MetTon/min 77MetTon/h 78MetTon/d 79lb/s 80lb/min 81lb/h 82lb/d 83STon/min 84STon/h 85STon/d 86LTon/h 87

30、LTon/d 88SGU 90g/Cucm 91Kg/Cum 92lb/gal 93lb/Cuft 94g/mL 95kg/L 96g/L 97lb/Cuin 98STon/Cuyd 99degTwad 100degBrix 101degBaum hv 102degBaum lt 103degAPI 104% sol-wt 105% sol-vol 106degBall 107proof/vol 108proof/mass 109bush 110Cuyd 111Cuft 112Cuin 113m/h 120Cuft/h 130Cum/min 131bbl/s 132bbl/min 133bbl

31、/h 134bbl/d 135gal/h 136Impgal/s 137L/h 138 % Stm Qual 150ft.in16 151Cuft/lb 152pF 153 % plato 160KW 161MW 162KWh 163MWh 164gal/d 235hL 236Mpa 237inH2O 4DegC 238mmH2O 4DegC 239MetTon/s 240ML/s 241ML/min 242ML/h 243L/d 244g/d 245ML 246KJ 247MJ 248GJ 249KJ/h 250MJ/h 251GJ/h 2528 附录3:报警定义15 14 13 12 11 10 9 8UnusedUnusedUnusedUnusedUnusedUnusedUnusedUnused7 6 5 4 3 2 1 0UnusedUnusedADCZEROCOILEMPTYUnusedMEMUnused:Bits 15 6UnusedADC:Bit 5超ADC范围ZERO:Bit 4零点过大( +99.9mV)COIL:Bit 3励磁报警EMPTY:Bit 2空管报警Unused:Bit 1UnusedMEM:Bit 0EEPROM未安装

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号