跳转至

MODBUS-RTU协议

1 协议概述

MODBUS-RTU(国标GB/T19582-2008)通讯协议进行通讯,支持一主站控制多个从站,通过自带的上位机可以配置 247个从站地址(0为广播地址,1-247为单播地址),主站可以是单片机、PLC或PC机等。

2 通信参数

出厂时的串口默认配置,波特率默认为 115200bps,数据位 8,无校验,停止位 1;波特率可配置范围 4800~256k0bps,驱动器默认通信地址(站号)为1。

3 modbus-rtu帧格式

本驱动器支持 modbus的0x03(读保持寄存器)、0x06(写单个寄存器)、0x10(写多个寄存器),0x83(异常码),异常码支持0x01(操作码错误)与0x02(地址错误)。

3.1 读保持寄存器 0x03

主站发送:

字节 1 2 3 4 5 6 7 8
内容 从站地址 0x03 寄存器地址高位 寄存器地址低位 读数据长度高位 读数据长度低位 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x03: 读寄存器值功能码 第3、4字节:读取寄存器的开始地址 第5、6字节:读数据长度 第7、8字节:字节1到6的CRC16校验和

从站正常应答:

字节 1 2 3 4、5 6、7 n-1、n n+1 n+2
内容 从站地址 0x03 寄存器字节总数 寄存器数据1 寄存器数据2 …… 寄存器数据m CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x03: 读寄存器值功能码 第3字节:从4到n(包括4及n)的寄存器字节总数 第4~n字节:读取的m个寄存器数据,其中m=(n-3)/2, n-1为高位字节,n为低位字节 第n+1、n+2字节:字节1到n的CRC16 校验和

从站异常应答:

字节 1 2 3 4 5
内容 从站地址 0x83 0x02 CRC高位 CRC低位

3.2 写单个寄存器 0x06

主站发送:

字节 1 2 3 4 5 6 7 8
内容 从站地址 0x06 寄存器地址高位 寄存器地址低位 寄存器数据高位 寄存器字节数低位 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x06: 写单个寄存器功能码 第3、4字节:写寄存器的地址 第5、6字节:写寄存器数据 第7、8字节:字节1到6的CRC16 校验和

从站正常应答:

字节 1 2 3 4 5 6 7 8
内容 从站地址 0x06 寄存器地址高位 寄存器地址低位 寄存器数据高位 寄存器字节数低位 CRC高位 CRC低位

从站异常应答:

字节 1 2 3 4 5
内容 从站地址 0x86 异常码 CRC高位 CRC低位

异常码:0x02表示主站请求地址非法,0x03表示请求数据非法

3.3 写多个寄存器 0x10

主站发送:

字节 1 2 3 4 5 6 7 8、9 10、11 n-1、n n+1 n+2
内容 从站地址 0x10 寄存器地址高位 寄存器地址低位 寄存器长度高位 寄存器长度低位 寄存器字节总数 寄存器数据1 寄存器数据2 … 寄存器数据m CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x03: 应答读功能码 第3、4字节:写入寄存器地址,3为高位字节,4为低位字节 第5、6字节:写入寄存器的长度m 第7字节:从8到n(包括8及n)的字节总数 第8~n字节:写入的m个寄存器数据,其中m=(n-7)/2,n-1为高位字节,n为低位字节 第n+1、n+2字节:字节1到n的 CRC16校验和

从站正常应答:

字节 1 2 3 4 5 6 7 8
内容 从站地址 0x10 寄存器地址高位 寄存器地址低位 寄存器长度高位 寄存器长度低位值 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x10:写多个寄存器功能码 第3、4字节:写寄存器的地址 第5、6字节:写寄存器长度 第7、8字节:字节1到6的CRC16校验和

从站异常应答:

字节 1 2 3 4 5
内容 从站地址 0x90 异常码 CRC高位 CRC低位

异常码:0x02表示主站请求地址非法,0x03表示请求数据非法

3.4 查询总线从机设备ID 0x11

主站发送:

字节 1 2 3 4
内容 从站地址 0x11 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247),ID 总线上只接一个从设备允许使用0广播ID查询 第2字节0x11: 功能码 第3、4字节:字节1到3的 CRC16校验和

从站正常应答:

字节 1 2 3 4 5 6 7 8
内容 从站地址 0x17 3 从站地址 状态码高位 状态码低位 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247) 第2字节0x11: 功能码 第3字节:返回有效字节数 第4字节:从站地址码(1~247) 第6、7字节:状态码 第8、9字节:字节1到6的CRC16校验和

3.5 重启指定ID从机设备 0x41

主站发送:

字节 1 2 3 4
内容 从站地址 0x41 CRC高位 CRC低位

第1字节从站地址:从站地址码(1~247),使用0为广播ID可重启总线上所有从设备 第2字节0x41: 功能码 第3、4字节:字节1到3的 CRC16校验和