MODBUS-8000B通讯协议.pdf
江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 1 MODBUS-8000B 通信协议 MODBUS-8000B 通通 信信 协协 议议 江阴众和电力仪表有限公司 江阴众和电力仪表有限公司 2005 年年 1 月月 江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 2 MODBUS-8000B 通信协议第第 1 章章 引言引言 文中详细说明了江阴众和电力仪表有限公司 8000B 系列旋转机械监视保护装置的通信协议,可供用户和第三方开发通信软件使用。用户如欲获得更多的功能,可使用本公司提供的“8000B 系列仪表数据采集管理软件”和“8000B 系列仪表组态软件”。第第 2 章章 系统基本介绍系统基本介绍?8000B 系列仪表与上位机通信,链路层采用 MODBUS-RTU 通信协议;?物理层采用 RS-485 接口,半双工主从方式串行异步通信;?数据格式为 1 个起始位、8 个数据位、1 个偶效验位、1 个停止位;?上位机为主站,8000B 系列仪表为从站。协议的内容包括:访问和修改 8000B 系列仪表的配置和参数。访问 8000B 系列仪表的测试数据及状态;?传输速度 9600bps;?数据以帧的形式传送。上位机发送请求帧,下位机发送应答帧;?8000B 系列仪表组件的每一个模块有一个唯一的表号(设备地址),表号的取值范围是 1-255;?0 表号为广播表号。使用广播表号时,8000B 系统网络中的所有功能模块都会接收到。第第 3 章章 MODBUS-RTU 通信协议简介通信协议简介 301 帧的基本格式帧的基本格式 MODBUS-RTU 通信协议的基本帧格式如下表所示:作用作用 字节数字节数 说明说明 起始 T1、T2、T3、T4至少 3.5 个字符的时间未收到信号 从站地址域 一个字节 请求帧为访问地址,应答帧为自身地址。功能码域 一个字节 见 2.0 数据域 多字节 见 3.0 CRC16 效验码域 二个字节 见 4.0 结束 T1、T2、T3、T4至少停止发送 3.5 个字节的时间 302 功能码域功能码域 MODBUS-RTU 通信协议的功能域为一个字节。用于通知从站进行何种操作。如通信正确,则从站的应答帧中包含有同样的功能码。对于出错时的应答,在应答帧的功能码中 BIT7=1。江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 3 MODBUS-8000B 通信协议 8000B 系统使用的功能码见下表:功能码功能码 含义含义 0 x03 读一个或多个 16 位寄存器 0 x06 写一个 16 位寄存器 0 x83 读指令出错应答 0 x86 写指令出错应答 303 数据域数据域 数据域的结构和长度按不同的功能来具体确定。对于 MODBUS-RTU 通信协议,数据采用 16 进制形式。数据的排列采用“DIG INDIAN”模式,即高位字节在前。304 CRC16 校验码域校验码域 MODBUS-RTU 模式采用 16 位 CRC 校验。发送设备应当对发送帧中的每一个数据都进行 CRC16计算,最后结果存放入 CRC16 校验域中。接收设备也应当对接收帧中的每一个数据除校验域以外进行 CRC16 计算。将结果域、校验域进行比较。只有校验码 CRC16 相同,接收的帧才可以被确认。具体的 CRC 校验算法参照附录。第第 4 章章 用户指令帧用户指令帧 401 读寄存器数据读寄存器数据 请求帧:从设备地址 1 个字节 功能码 1 个字节(03H)起始寄存器地址 2 个字节(高位字节在前)连续读取寄存器数 2 个字节(高位字节在前)CRC16 2 个字节 应答帧:从设备地址 1 个字节 功能码 1 个字节(03H)数据字节数 1 个字节(不包括自身)第 1 个寄存器内容 2 个字节(高位字节在前)第 2 个寄存器内容 2 个字节(高位字节在前)江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 4 MODBUS-8000B 通信协议CRC16 2 个字节 使用举例:读取地址 01 的设备类型(双通道轴承振动表)请求帧 01 03 08 00 00 01 86 6A 应答帧 01 03 02 00 07 F9 86 4.02 写寄存器数据写寄存器数据 请求帧:从设备地址 1 个字节 功能码 1 个字节(06H)写入寄存器地址 2 个字节(高位字节在前)写入寄存器数据 2 个字节(高位字节在前)CRC16 2 个字节 应答帧:从设备地址 1 个字节 功能码 1 个字节(06H)写入寄存器地址 2 个字节(高位字节在前)写入寄存器数据 2 个字节(高位字节在前)CRC16 2 个字节 使用举例:将设备地址 01 改为 02 请求帧:01 06 04 00 00 02 09 3B 应答帧:02 06 04 00 00 02 09 08 4.03 出错应答帧出错应答帧 读出错应答帧:从设备地址 1 个字节 功能码 1 个字节(83H)错误码 1 个字节 CRC16 2 个字节 写出错应答帧:从设备地址 1 个字节 功能码 1 个字节(86H)江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 5 MODBUS-8000B 通信协议错误码 1 个字节 CRC16 2 个字节 错误码 在出错应答帧中会给出错误码,用于指出错误的类型。错误码如下:01 :非法功能码 02 :非法数据(寄存器)地址 03 :非法数据 04 :执行命令出错 05 :执行时间超时错 06 :从设备忙 07 :无法执行的命令 08:偶校验错 第第 5 章章 8000B 系列仪表的寄存器系列仪表的寄存器 5.01 寄存器结构寄存器结构 8000B 系列仪表的内部寄存器为 16 位双字节寄存器。按照 MODBUS-RTU 的规定,采用高位字节在前低位字节在后的次序排列。由于 MODBUS 规定寄存器地址从 0 开始,在访问时,指令中寄存器的地址按下式计算,并转换成 16 进制:访问地址=寄存器地址 40000 1 502 表号(设备地址)寄存器表号(设备地址)寄存器 地址 属性 功 能 说 明 41025 读/写 表号 1-255、0 为广播地址、注一 注一:用功能码06写入寄存器“41025”的表号,断电后不会丢失。503 状态寄存器状态寄存器 地址 属性 功 能 说 明 42049 只读 功能模块类型 注一 42050 只读 报警状态 注二 注一:江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 6 MODBUS-8000B 通信协议 0000H 显示精度为 0.1双通道温度表(PT100)0001H 双通道标准信号表(油箱油位计)0002H 单通道偏心表 0003H 双通道(正向远离)轴向位移(胀差)表 0004H 双通道(正向靠近)轴向位移(胀差)表 0005H 显示精度为 0.1 的双通道行程表(热膨胀)0006H 双通道轴瓦振动表 0007H 双通道轴承振动表 0008H 双通道温度表(K)0009H 显示精度为 1双通道温度表(PT100)000AH 显示精度为 1 的双通道行程表 0040H 单通道转速表 注二:报警状态寄存器的低位字节的 8 个 BIT 分别用于指示相应的报警状态。为 1 时表示报警。高位字节不用。仪表类型 D7 D6 D5 D4 D3 D2 D1 D0 转速模块 超速二报警 撞击子II 打出 超速一报警 撞击子I 打出 零转速报警 零转速使能/禁止 位移模块 B 通道负报警 B 通道负停机 B 通道正报警B 通道正停机A 通道负报警A 通道负停机A 通道正报警 A 通道 正停机 其它模块 B 通道报警一 B 通道报警二 A 通道报警一A 通道报警二 504 数据寄存器数据寄存器 地址 属性 功 能 说 明 43073 只读 倍率 注一 43074 只读 A 通道报警一 位移正报警值 43075 只读 A 通道报警二 位移正停机值 43076 只读 B 通道报警一 位移负报警值,对单通道表无效 43077 只读 B 通道报警二 位移负停机值,对单通道表无效 43078 只读 0 转速报警值 仅用于转速表 43079 只读 A 通道当前采集值 江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 7 MODBUS-8000B 通信协议43080 只读 B 通道当前采集值 对单通道表无效 注一:从寄存器 43074-43080 读出的数据为两字节补码整数(高位字节在前)。需将读出的整数除以“倍率”才能得到实际数值;附录:计算 CRC16 的 C 函数 CRC Generation Function unsigned short CRC16(puchMsg,usDataLen)unsigned char*puchMsg;/*message to calculate CRC upon*/unsigned short usDataLen;/*quantity of bytes in message*/unsigned char uchCRCHi=0 xFF;/*high byte of CRC initialized*/unsigned char uchCRCLo=0 xFF;/*low byte of CRC initialized*/unsigned uIndex;/*will index into CRC lookup table*/while(usDataLen)/*pass through message buffer*/uIndex=uchCRCHi *puchMsg+;/*calculate the CRC*/uchCRCHi=uchCRCLo auchCRCHiuIndex;uchCRCLo=auchCRCLouIndex;return(uchCRCHi 8|uchCRCLo);High-Order Byte Table/*Table of CRC values for highorder byte*/static unsigned char auchCRCHi=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 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,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,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,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,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 ;江阴众和电力仪表有限公司江阴众和电力仪表有限公司 地址:江苏省江阴市绮山路 149 弄 6 号 电话:0510-6282529 传真:0510-6281752 8 MODBUS-8000B 通信协议Low-Order Byte Table/*Table of CRC values for loworder byte*/static char auchCRCLo=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 xDC,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 xE8,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 x6D,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 x53,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 x86,0 x82,0 x42,0 x43,0 x83,0 x41,0 x81,0 x80,0 x40 ;