Modbus协议
一、Modbus协议简介
Modbus一个工业上常用的通讯协议、一种通讯约定。
协议包括了:RTU、ASCII、TCP。其中RTU最常用,较简单,在单片机上很容易实现
通讯方式:主从-双向读写
常用接口形式:RS232C、RS485、RS422
常用波特率:1200、1800、2400、4800、9600、12500 等等
常见设备默认波特率:9600
自动化领域中RTU模式每个字节格式:
编码系统:八位二进制,16进制0-9 A-F
数据位:1起始位
8位数据低位先送
奇偶校验1位,无校验0位
停止位:带校验1位,无校验两停止位
1.2 报文格式及解析
- 如图为协议格式:
分析一条实际报文:01 06 00 01 00 17 98 04
从机地址 | 功能号 | 数据地址 | 数据 | CRC校验 |
---|---|---|---|---|
01 | 06 | 00 01 | 00 17 | 98 04 |
这串命令会把数据 0x0017(十进制23) 写入 1号从机地址 0x0001数据地址。
1.2.2 从机地址
- 00 为广播地址
- 01-FF(255) 从机地址(从机有效设备地址范围:01-247)
- 01 就位一号机,会往指定从机发送命令
1.2.3 功能号
- 常用功能号:
01 (0x01) 读线圈
02 (0x02) 读离散量输入
03 (0x03) 读保持寄存器
04(0x04) 读输入寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器
-
主机对从机 01 写数据操作:功能号06
如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如报文:
01 06 00 01 00 17 98 04 -
主机对从机 01 读数据操作:功能号03
主机进行读HoldDataReg[1] 操作,如报文:
01 03 00 01 00 01 D5 CA
从机返回格式为:
从机地址 | 功能号 | 数据字节个数 | 两个字节数据 | CRC校验 |
---|---|---|---|---|
01 | 03 | 02 | 0017 | F8 4A |
MODBUS主机就完成了一次对从机数据的读操作,实现了通讯。 |
附

人生还有意义。那一定是还在找存在的理由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?