Modbus通信协议
modbus 莫迪康 1979年
PLC 1969年 可编程逻辑控制器,解决电气工程中的接线问题
通信
协议,规约
协议是不区分接口的
Modbus协议是一种应用层的报文传输协议
RTU
ASCII
TCP
Modbus RTU通信协议
通信:读写
1、存储区 :
输出线圈 0
00001-09999
输入线圈(存储布尔数据) 1
10001-19999
输出寄存器(存储一般数据) 4
40001-49999
输入寄存器 3
30001-39999
存储区范围:5位和6位 标准地址 扩展地址
地址:Y XXXX
2、功能码
3、Modbus RTU/ASCII报文格式
从站地址(设备编号)(1byte)+功能码(1byte)+数据(Nbyte)+校验(2byte)
对于读取来说:
从站地址(设备编号) 找谁?
功能码 干嘛
数据 具体细节
检验 验证
对于写入来说:
从站地址(设备编号) 找谁?
功能码 干嘛
数据 具体细节(更多,多个写入的具体数据 )
检验 验证
发送
01 03 00 00 00 02 C4 0B:
01 从站地址
03 读输出寄存器
00 00 起始寄存器
00 02 寄存器长度
C4 0B CRC校验
回包
01 03 04 01 46 01 3B 5A 59:
01 从站地址
03 读输出寄存器
04 字节计数
01 46 01 3B 具体的4个字节
5A 59 CRC校验
4、地址
协议里面的地址是相对地址,功能码已经提前决定了首地址了
按照功能码分类,报文分为三种:
FuncCode = 0x03读取寄存器状态 Read Holding Register
FuncCode = 0x10配置多个寄存器 Preset Multiple Register
FuncCode = 0x06配置单个寄存器 Preset Single Register