Modbus详解

发布时间:2026/6/30 5:27:48
Modbus详解 Modbus是一种在工业自动化领域被广泛使用的串行通信协议。它诞生于1979年最初由Modicon公司现施耐德电气为可编程逻辑控制器PLC之间的通信而设计。如今它已成为工业电子设备通信的通用标准和事实上的业界标准。它的核心是一个主从Master/Slave架构的请求/响应协议。这意味着在同一个Modbus网络中只有一个设备能充当主设备如计算机、PLC、HMI发起通信请求而其他从设备如传感器、变频器则只能被动响应主设备的请求。通信总是成对发生的主设备发起一个请求然后等待特定从设备的响应。 核心设计理念简单、开放、免费协议结构简单明了易于部署和维护并且公开免费无版权要求这极大地促进了它的普及。灵活的网络支持它不绑定特定的物理层可以在多种介质上运行例如串行链路如RS-232、RS-485这是最传统和常见的形式。以太网通过Modbus TCP/IP协议。标准化的数据模型Modbus定义了四种主要的数据类型用于组织和访问设备内的数据。数据模型数据类型访问权限常见前缀线圈 (Coils)布尔值 (0/1)可读可写0离散量输入 (Discrete Inputs)布尔值 (0/1)只读1输入寄存器 (Input Registers)16位无符号整数只读3保持寄存器 (Holding Registers)16位无符号整数可读可写4为了方便理解我们常说的40001地址前缀“4”代表保持寄存器后四位代表寄存器编号其对应的实际地址为0x0000。⚙️ 三种主要变体及其区别Modbus协议根据底层网络和编码方式主要有三种变体特性Modbus RTUModbus ASCIIModbus TCP底层网络串行RS-232/485串行RS-232/485以太网TCP/IP编码方式二进制每个字节直接传输效率高ASCII字符每个字节拆分为两个字符传输可读性强但效率低二进制直接封装在TCP帧中消息帧结构无特定起始/结束字符通过时间间隔如3.5个字符时间区分以冒号:开头以CR/LF(回车换行) 结尾依赖TCP连接本身管理增加了专门的MBAP报文头错误校验CRC-16(循环冗余校验)可靠性高LRC(纵向冗余校验)可靠性相对较弱无额外校验依赖TCP/IP协议本身的校验机制典型场景工业现场应用最广数据量大、实时性要求高的场景对时间要求不严或需要人工调试的场景现代工业网络、设备接入互联网或物联网的场景 典型应用与局限应用场景在数据采集与监视控制系统SCADA中Modbus常被用来连接监控计算机与远程终端单元RTU。它也广泛用于连接各类智能仪表、变频器、PLC等实现集中监控。局限性由于其诞生年代较早Modbus在数据类型、寻址方式和安全性上存在一些限制。例如它原生不支持浮点数、字符串等复杂数据类型也没有内置任何安全机制来防止未经授权的访问或数据截取。 总结Modbus的核心价值在于其极致的简单性、开放性和广泛的支持度。它不是一个追求功能最强大的协议而是一个追求最简单、最可靠、最容易被实现的协议。正因为如此它在工业现场总线中的地位至今依然稳固是连接无数传感器和执行器的“通用语言”。