协议 = 规约 协议就是一种规约
Modbus协议是一种应用层的报文传输协议 1.RTU 2.ASCII 3.TCP
Modbus RTU通信协议: 通信:读写 存储区:输入:只读 输出:读写 输出线圈0 00001-09999 000001 - 065536 输入线圈1 10001-19999 100001 - 165536 这些是绝对地址,协议里面使用的是相对地址 输出寄存器4 40001-49999 400001 - 465536 输入寄存器3 30001-39999 300001 - 365536 线圈:bool(1或者0) 寄存器:16位 存储区范围:5位标准地址 6位扩展地址 标准地址:Y(代号,就知道是哪一个存储区 0 1 4 3 没有2) XXXX 扩展地址:Y XXXXX
读和写 --- 功能码
读输出线圈 01 读输入线圈 02 读输出寄存器 03 读输入寄存器 04
写单个输出线圈 05
写单个输出寄存器 06
写多个输出线圈 15
写多个输出寄存器 16
协议 Modbus RTU/ASCII 报文格式:从站地址(设备编号)(1byte)+ 功能码(1byte) + 数据 (n byte)+ 校验(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校验