资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
MODBUS 通 信 规 约串口调试工具设置:PH 仪与上位机之间采用 MODBUS 协议进行通信,波特率固定为 9600bps。读取数据或查询数据之间的时间间隔不小于 500 毫秒。具体协议如下:1 读取 PH 测量信息命令格式:地址 功能码 起始地址 数据个数 CRC 校验数据 ADDR 0x03 0x 0000 0x 0001 CRC 16字节数 1 1 2 2 2返回格式:定义 地址 功能码 数据个数 PH 数据 CRC 校验数据 ADDR 0x 03 0x 02 Data CRC 16字节数 1 1 1 2 2注释: (1) 数据个数:为返回数据的实际字节长度固定为 1 个字;(2) DATA 数据:PH 数据,高字节在前,低字节在后:如 6.86 则显示为 161进制 0x02AE 默认两位小数2 读取温度测量信息命令格式:地址 功能码 起始地址 数据个数 CRC 校验数据 ADDR 0x03 0x 0001 0x 0001 CRC 16字节数 1 1 2 2 2返回格式:定义 地址 功能码 数据个数 温度数据 CRC 校验数据 ADDR 0x 03 0x 02 Data CRC 16字节数 1 1 1 2 2注释: (3) 数据个数:为返回数据的实际字节长度固定为 1 个字;(4) DATA 数据:温度数据,高字节在前,低字节在后:如 25.0 度 则显示为 16 进制 0x00FA 默认 1 位小数3 读取批量信息(PH 和温度一起)命令格式:定义 地址 功能码 起始地址 数据个数 CRC 校验数据 ADDR 0x03 0x 0000 0x 0002 CRC 16字节数 1 1 2 2 2返回格式:定义 地址 功能码 数据个数 批量数据 CRC 校验数据 ADDR 0x 03 0x 04 Data CRC 16字节数 1 1 1 4 2注释: (5) 数据个数:为返回数据的实际字节长度固定为 2 个字;(6) DATA 数据:PH 和温度数据,高字节在前,低字节在后:如 PH 为 6.86 ,温度为 25.0 度 则显示为 16 进制 0x02AE00FA 前两两个字节为 PH 值,默认两位小数 ,后两字节为温度值默认一位小数。PH 读取举例说明: 计算机发送:02 03 00 00 00 01 84 39PH 表返回:02 03 02 02 AE 7C 982返回命令注释: 02 为 485 地址;03 为功能码;02 为返回 PH 值的数据长度:2 字节;02 为返回的 PH 值 686 的(十六进制高位字节) ;AE 为返回的 PH 值 686 的(十六进制低位字节) ;7C 98 为 CRC 校验值;温度读取举例说明: 计算机发送:02 03 00 01 00 01 D5 F9PH 表返回:02 03 02 00 FA 7C 07返回命令注释: 02 为 485 地址;03 为功能码;02 为返回温度值的数据长度:2 字节;00 为返回的温度值 250 的(十六进制高位字节) ;FA 为返回的温度值 250 的(十六进制低位字节) ;7C 07 为 CRC 校验值;批量读取举例说明: 计算机发送:02 03 00 00 00 02 C4 38PH 表返回:02 03 04 02 AE 00 FA 29 29 返回命令注释: 02 为 485 地址;03 为功能码;04 为返回温度值的数据长度:4 字节;02 为返回的 PH 值 686 的(十六进制高位字节) ;AE 为返回的 PH 值 686 的(十六进制低位字节) ;00 为返回的温度值 250 的(十六进制高位字节) ;FA 为返回的温度值 250 的(十六进制低位字节) ;29 29 为 CRC 校验值;2 错误响应如果监测器不能正确执行上位机命令,返回如下格式:定义 地址 功能码 CODE CRC 校验数据 ADDR COM+80H 1 CRC 16字节数 1 1 1 2 CODE: 01 功能码错03 数据错3 COM: 接收到的功能码5 CRC 检测CRC 添加到命令中时,低字节先加入,然后高字节。CRC 简单函数如下:unsigned short CRC16(puchMsg, usDataLen)unsigned char *puchMsg ; /* 要进行 CRC 校验的消息 */unsigned short usDataLen ; /* 消息中字节数 */unsigned char uchCRCHi = 0xFF ; /* 高 CRC 字节初始化 */unsigned char uchCRCLo = 0xFF ; /* 低 CRC 字节初始化 */unsigned uIndex ; /* CRC 循环中的索引 */while (usDataLen-) /* 传输消息缓冲区 */uIndex = uchCRCHi *puchMsgg+ ; /* 计算 CRC */uchCRCHi = uchCRCLo auchCRCHiuIndex ;uchCRCLo = auchCRCLouIndex ;return (uchCRCHi 8 | uchCRCLo) ;/* CRC 高位字节值表 */static unsigned char auchCRCHi = 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, 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, 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, 40x81, 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, 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, 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, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 ; /* CRC 低位字节值表*/static char auchCRCLo = 0x00, 0xC0, 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, 0xD1, 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, 0xE2, 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, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号