logo资料库

ZBLD.C20系列485MODBUS协议V1.0 .pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
ZBLD.C20 系列 485 MODBUS(RTU)协议
1、 数据帧格式
1) 0x03 读单个寄存器操作
0x03(读单个寄存器)举例
2)0x06 写单个寄存器操作
0x06(写单个寄存器)举例
3)0x10 写多个寄存器操作
0x10(写多个寄存器)举例
4)异常码
2、 寄存器列表
参数属性说明
3、 常用命令举例
ZBLD.C20 系统 485 MODBUS(RTU)协议 ZBLD.C20 系列 485 MODBUS(RTU)协议 1、 数据帧格式 地址码 功能码 ADDR CMD MODBUS--RTU 方式 数据 DATA 校验码 CRC16_L CRC16_H 1 Byte 1 Byte n Bytes 1 Byte 1 Byte 波特率:19200(默认) 起始位:1bit 数据位:8bit 校验位:无校验 停止位:1bit MODBUS RTU 方式下,每两个字符之间发送或者接收的时间间隔超过 1.5 倍字符时,此数据 无效; 如果两个字符时间间隔超过了 3.5 倍的字符传输时间,依规定就认为一帧数据已经 传输完毕,新的一帧数据可以传输开始。 a) 地址码:1 Byte 0x00(0)----广播地址,广播时从机无回复,适用于多台群控 0x01(1)-0xf7(247)----从机地址 0xf8(248)-0xff(255)----系统保留,请勿使用 b) 功能码:1 Byte 0x03(3) ----读单个寄存器操作 0x06(6) ----写单个寄存器操作 0x10(16) ----写多个寄存器操作 c) 数据: n Byte 不同指令有不同数据格式! d) 校验码:2 Byte CRC16校验对象:地址码+功能码+数据 CRC16校验算法:MODBUS(x16+x15+x2+1) 1 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 1) 0x03 读单个寄存器操作 0x03(读单个寄存器)数据帧格式 主机请求 帧数据 数据长度 数据内容 说明 地址 功能码 1 Byte 1 Byte 0x01-0xf7 0x03 寄存器地址 2 Byte 0x2000-0x30ff 高字节+低字节 寄存器个数 2 Byte 0x0001 高字节+低字节 校验码 2 Byte CRC16L+CRC16H 低字节+高字节 从机接收正确后回应 帧数据 数据长度 数据内容 说明 地址 功能码 字节数 数据 校验码 1 Byte 1 Byte 1 Byte 2 Byte 2 Byte 0x01-0xf7 0x03 0x02 数据区字节总数 读取数据内容 高字节+低字节 CRC16L+CRC16H 低字节+高字节 从机接收异常后回应 帧数据 数据长度 数据内容 说明 地址 功能码 异常码 校验码 1 Byte 1 Byte 1 Byte 2 Byte 0x01-0xf7 0x83 Msb=1 0x00-0xff 详见 4)异常码 CRC16L+CRC16H 低字节+高字节 注:所有寄存器地址为 2Byte,高字节在前,低字节在后; 所有寄存器数据位 2Byte,高字节在前,低字节在后; 此操作仅可对 RW 或 RW*类型寄存器操作; 2 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 0x03(读单个寄存器)举例 a) 读0x01号从机的0x0001寄存器数据 寄存器地址 寄存器个数 校验码 地址 功能码 高字节 低字节 高字节 低字节 低位 高位 0x01 0x03 0x20 0x01 0x00 0X01 CRCL CRCH 地址 功能码 字节数 校验码 高字节 低字节 数据 0x01 0x03 0x02 0x00 0X01 CRCL CRCH b) 读0x01号从机的0x0001寄存器数据异常 寄存器地址 寄存器个数 校验码 地址 功能码 高字节 低字节 高字节 低字节 低位 高位 0x01 0x03 0x20 0x01 0x00 0X01 CRCL CRCH 地址 功能码 异常码 校验码 0x01 0x83 详见 4)异常码 CRCL CRCH 主 机 从 机 主 机 从 机 3 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 2)0x06 写单个寄存器操作 0x06(写单个寄存器)数据帧格式 主机请求 帧数据 数据长度 数据内容 说明 地址 功能码 1 Byte 1 Byte 0x01-0xf7 0x06 寄存器地址 2 Byte 0x2000-0x30ff 高字节+低字节 数据 校验码 2 Byte 2 Byte 写入数据内容 高字节+低字节 CRC16L+CRC16H 低字节+高字节 从机接收正确后回应 帧数据 数据长度 数据内容 说明 地址 功能码 1 Byte 1 Byte 0x01-0xf7 0x06 寄存器地址 2 Byte 0x2000-0x30ff 高字节+低字节 数据字节数 2 Byte 写入数据内容 高字节+低字节 校验码 2 Byte CRC16L+CRC16H 低字节+高字节 从机接收异常后回应 帧数据 数据长度 数据内容 说明 地址 功能码 异常码 校验码 1 Byte 1 Byte 1 Byte 2 Byte 0x01-0xf7 0x86 Msb=1 0x00-0xff 详见 4)异常码 CRC16L+CRC16H 低字节+高字节 注:所有寄存器地址为 2Byte,高字节在前,低字节在后; 所有寄存器数据位 2Byte,高字节在前,低字节在后; 此操作仅可对 RW 或 RW*类型寄存器操作; 4 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 0x06(写单个寄存器)举例 a) 写0x01号从机的0x2001寄存器写数据 寄存器地址 数据 校验码 地址 功能码 高字节 低字节 高字节 低字节 低位 高位 0x01 0x06 0x20 0x01 0x00 0X01 CRCL CRCH 寄存器地址 数据 地址 功能码 校验码 高字节 低字节 高字节 低字节 0x01 0x06 0x20 0x01 0x00 0X01 CRCL CRCH b) 写0x01号从机的0x0001寄存器数据异常 寄存器地址 数据 校验码 地址 功能码 高字节 低字节 高字节 低字 节 低位 高位 0x01 0x06 0x20 0x01 0x00 0X01 CRCL CRCH 地址 功能码 异常码 校验码 0x01 0x86 详见 4)异常码 CRCL CRCH 5 / 12 主 机 从 机 主 机 从 机
ZBLD.C20 系统 485 MODBUS(RTU)协议 3)0x10 写多个寄存器操作 0x10(写多个寄存器)数据帧格式 主机请求 帧数据 数据长度 数据内容 说明 地址 功能码 1 Byte 1 Byte 0x00-0xf7 0x10 起始寄存器地址 2 Byte 0x2000-0x30ff 高字节+低字节 寄存器数量 2 Byte 数据字节总数 1 Byte N 2*N 高字节+低字节 高字节+低字节 数据 校验码 2*N Byte 2 Byte CRC16L+CRC16H 低字节+高字节 从机接收正确后回应 帧数据 数据长度 数据内容 说明 地址 功能码 1 Byte 1 Byte 0x01-0xf7 0x10 起始寄存器地址 2 Byte 0x2000-0x30ff 高字节+低字节 寄存器数量 2 Byte N 高字节+低字节 校验码 2 Byte CRC16L+CRC16H 低字节+高字节 从机接收异常后回应 帧数据 数据长度 数据内容 说明 地址 功能码 异常码 校验码 1 Byte 1 Byte 1 Byte 2 Byte 0x01-0xf7 0x90 Msb=1 0x00-0xff 详见 4)异常码 CRC16L+CRC16H 低字节+高字节 注:所有寄存器地址为 2Byte,高字节在前,低字节在后; 所有寄存器数据位 2Byte,高字节在前,低字节在后; 此操作仅可对 RW 或 RW*类型寄存器操作; 6 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 0x10(写多个寄存器)举例 写0x01号从机的0x2000,0x2001寄存器写数据 地址 功能码 起始寄存器地址 寄存器数量 高字节 低字节 高字节 低字节 数据字节总 数 0x01 0x10 0x20 0x00 0x00 0x02 0x04 寄存器 1 数据 寄存器 2 数据 高字节 低字节 高字节 低字节 校验码 数据 1 数据 2 CRCL CRCH 地址 功能码 起始寄存器地址 寄存器数量 高字节 低字节 高字节 低字节 校验码 0x01 0x10 0x20 0x00 0x00 0x02 CRCL CRCH 地址 功能码 异常码 校验码 0x01 0x90 详见 4)异常码 CRCL CRCH 主 机 从 机 正 常 返 回 从 机 异 常 返 回 7 / 12
ZBLD.C20 系统 485 MODBUS(RTU)协议 4)异常码 MODBUS 异常码 异常码 含义 说明 0x01 0x02 0x03 0x04 0x05 0x06 0x07 非法命令 从机不支持此命令或从机在错误状态中处理这 种请求; 非法数据地址 上位机的请求数据地址超出范围; 非法数据值 接收到的数据包含的是不允许的值; 操作失败 参数写操作中对该参数设置为无效设置,如写 功能码时未开启写使能(0x200E); 密码错误 密码效验地址写入的密码不对; 数据帧错误 数据帧的长度不正确或RTU格式CRC校验位不 正确; 参数为只读 上位机写操作时更改的参数为只读参数; 0x08 参数运行不可改 上位机写操作时更改的参数为运行中不可更改 的参数; 8 / 12
分享到:
收藏