Modbus通讯协议是什么?详解分析
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus 是一种开放、标准化、应用层的工业现场总线通信协议,由 Modicon 公司(现为施耐德电气旗下品牌)于 1979 年为其 PLC(可编程逻辑控制器)产品开发。其核心设计目标是实现简单性、可靠性和可扩展性,现已广泛应用于工业自动化领域(如 PLC、传感器、仪表、变频器、HMI 等设备间的通信)。
一、核心特性
-
主从架构 (Master-Slave):
- 主站 (Master): 发起所有通信请求(如读取或写入数据),同一时刻只有一个主站。
- 从站 (Slave): 响应主站请求(如返回数据或执行操作),每个从站有唯一地址(1-247)。
- 半双工通信: 同一时间仅允许一方发送数据。
-
协议简单:
- 报文结构清晰,易于开发和解析。
- 仅需实现基础功能码即可满足大部分需求。
-
跨平台兼容:
- 独立于物理层,可在多种介质上运行(RS-232/RS-485、以太网、无线等)。
- 协议栈开源免费,无版权限制。
二、物理层与传输模式
1. 串行传输 (Modbus-RTU / Modbus-ASCII)
- Modbus-RTU (最常用):
- 数据以二进制形式传输(高效紧凑)。
- 帧间隔:以至少 3.5字符时间 的空闲作为帧分隔。
- 校验:CRC-16 循环冗余校验。
- Modbus-ASCII:
- 数据以十六进制ASCII码传输(可读性强,效率低)。
- 帧以冒号
:开始,换行符结束。 - 校验:LRC(纵向冗余校验)。
2. 基于以太网的传输 (Modbus-TCP)
- 在 TCP/IP 协议栈上运行(端口号 502)。
- 报文结构:
[MBAP Header] + [Modbus PDU] -
MBAP 报文头 (7字节): 事务标识符 协议标识符 长度 单元标识符 2字节 2字节(0) 2字节 1字节
三、协议数据单元 (PDU) 详解
PDU 是协议核心,包含:
[功能码] + [数据域]
1. 功能码 (Function Code)
| 功能码 | 名称 | 操作 | 访问类型 |
|---|---|---|---|
| 01 | Read Coils | 读位状态 | 读写位 |
| 02 | Read Discrete Inputs | 读离散输入 | 只读位 |
| 03 | Read Holding Registers | 读保持寄存器 | 读写字 |
| 04 | Read Input Registers | 读输入寄存器 | 只读字 |
| 05 | Write Single Coil | 写单个线圈 | 写位 |
| 06 | Write Single Register | 写单个寄存器 | 写字 |
| 15 | Write Multiple Coils | 写多个线圈 | 批量写位 |
| 16 | Write Multiple Registers | 写多寄存器 | 批量写字 |
2. 数据域 (Data Field)
- 请求示例:读取保持寄存器(功能码 03)
[从站地址][03][起始地址高][起始地址低][寄存器数量高][寄存器数量低][CRC校验] - 响应示例:
[从站地址][03][字节数][数据1高][数据1低][数据2高][数据2低]...[CRC]
四、数据模型(内存映射)
| Modbus 抽象出四类存储区,类似 PLC 的变量表: | 区域类型 | 地址范围 | 访问权限 | 用途举例 |
|---|---|---|---|---|
| 线圈 (Coils) | 00001-09999 | 读写 | 控制继电器开关 | |
| 离散输入 (Discrete Inputs) | 10001-19999 | 只读 | 传感器开关量输入 | |
| 保持寄存器 (Holding Registers) | 40001-49999 | 读写 | 设定参数、存储数据 | |
| 输入寄存器 (Input Registers) | 30001-39999 | 只读 | 模拟量输入(温度) |
注:地址常以 "偏移量" 形式表示(如功能码03请求中地址为 0x0000~0xFFFF)。
五、错误处理机制
响应报文格式:[从站地址][功能码+0x80][异常码][CRC]常见异常码: |
代码 | 含义 |
|---|---|---|
| 01 | 非法功能码 | |
| 02 | 数据地址无效 | |
| 03 | 数据值无效 | |
| 04 | 从站设备故障 |
六、应用示例:读取保持寄存器(Modbus-RTU)
主站请求(读从站1的2个寄存器,起始地址0x0002):
01 03 00 02 00 02 CRC(2字节)
从站响应(返回数据:0x1234, 0x5678):
01 03 04 12 34 56 78 CRC(2字节)
七、扩展协议变种
- Modbus-TCP: 直接基于以太网传输,无需CRC校验(TCP本身保证可靠性)。
- Modbus-Plus: 施耐德专有高速协议(需专用芯片)。
- Modbus over UDP: 用于低可靠性要求场景(如无线网络)。
八、核心优势与局限
- 优势:
- 协议简单,开发门槛低。
- 兼容性强,跨厂商设备互通性好。
- 资源占用少,适合嵌入式设备。
- 局限:
- 无数据加密或身份验证机制(安全性弱)。
- 不支持大数据块传输(最大寄存器数量125个)。
- 主从模式限制实时性,不适合高速控制。
九、实际应用场景
- 工厂自动化:PLC 控制电机启停、读取温度传感器。
- 楼宇自控:空调系统状态监控。
- 能源管理:电表数据采集(如读取电压电流值)。
- 物联网网关:将 Modbus 设备数据转发至云平台。
注:现代工业系统中,Modbus 常通过协议转换网关接入更高级网络(如 MQTT + 云平台)。
如需更深入的代码实现或具体设备配置案例,可进一步说明需求方向!
串口屏Modbus通讯协议详解
Modbus是一种开放的通信协议,广泛应用于工业自动化领域。它定义了消息结构和设备间的通信方式,支持多种物理层网络,如RS-232、RS-485等。本文将详细介绍如何在串口屏上实现
2024-10-20 14:23:41
Modbus通讯协议的几种实现方式
1. Modbus简介 Modbus是Modicon公司(现在已经被施耐德收购成为了施耐德旗下品牌)为其PLC通讯而开发的一种
MODBUS通讯协议详解
顾名思义,他是一个bus,即总线协议,如果你接触到这种协议,相信你所处的行业很可能是工业方面或者你的产品用于工业。Modbus是一种串行通信
资料下载
建立建利12
2021-12-20 18:46:15
MODBUS通讯协议中文版资料详解
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
资料下载
ah此生不换
2019-06-14 08:00:00
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机