Modbus协议理论基础

1、Modbus协议基础
Modbus协议出现于1979年,协议是不区分接口的,Modbus协议可应用于串口,也可应用于网口。
(1)、Modbus协议分为Modbus-RTU、Modbus-ASCII、Modbus-TCP;
(2)、通信方式:读、写;
(3)、存储区:输出线圈、输入线圈、输出寄存器、输入寄存器;
(4)、存储范围:5位或6位
标准地址(5位)格式:Y-XXXX,输出线圈对应00001-09999,输入线圈对应10001-19999,输出寄存器对应40001-49999,输入寄存器30001-39999;
扩展地址(6位)格式:Y-XXXXX,输出线圈对应000001-065535,输入线圈对应100001-165535,输出寄存器对应400001-465535,输入寄存器300001-365535;
2、报文格式
从站地址(设备编号,1 byte)+功能码(1 byte)+数据(N byte)+校验(2 byte)
读取数据格式:
从站地址(1 byte)+功能码(1 byte)+起始地址(2 byte)+数据长度(2 byte)+校验(2 byte)
读取响应数据格式:
从站地址(1 byte)+功能码(1 byte)+字节计数(1 byte)+数据(N byte)+校验(2 byte)
单个写入数据格式:
从站地址(1 byte)+功能码(1 byte)+地址(2 byte)+写入值(2 byte)+校验(2 byte)
单个写入响应数据格式
从站地址(1 byte)+功能码(1 byte)+地址(2 byte)+响应值(2 byte)+校验(2 byte)
多个写入数据格式
从站地址(1 byte)+功能码(1 byte)+起始地址(2 byte)+输出数量(2 byte)+字节数(1 byte)+输出值(N byte)+校验(2 byte)
多个写入响应数据格式
从站地址(1 byte)+功能码(1 byte)+起始地址(2 byte)+输出数量(2 byte)+校验(2 byte)
3、功能及功能码
读输出线圈的功能码02、
读输入线圈的功能码01
读输出寄存器的功能码03、
读输入寄存器的功能码04、
写单个输出线圈的功能码05、
写多个输出线圈的功能码15、
写单个输出寄存器的功能码06、
写多个输出寄存器的功能码16、
4、报文分析
(1)、发送报文分析
如:发送报文01 03 00 00 00 02 C4 0B的分析
01 从站地址
03 读输出寄存器
00 00 起始地址
00 02 数据长度
C4 0B CRC校验
(2)、接收报文分析
如:接收报文 01 03 04 01 46 01 3B 5A 59的分析
01 从站地址
03 读输出寄存器
04 字节计数
01 46 01 3B 数据
5A 59 CRC校验
5、相对地址和绝对地址
在协议中使用相对地址,但在说明书等资料中需使用绝对地址。
如对于读输出寄存器,相对地址为0000 对应的绝对地址为40001

你可能感兴趣的:(通信协议,协议,Modbus)