中文
English
日本語
한국어
Español

Modbus协议是什么?从串口到TCP/IP全解析

2026-04-16

在工业自动化领域,不同品牌的控制器、传感器、执行器之间如何“对话”?答案往往指向同一个名字——Modbus协议。自1979年诞生以来,Modbus凭借其简单、开放、易用的特性,成为事实上的工业通信标准。本文将深入解析Modbus协议的核心原理、传输方式以及Modbus TCP/IP的现代应用。

一、什么是Modbus协议?

Modbus是一种主从架构的通用通讯协议,广泛应用于工业控制领域。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以与其它设备进行通信。

它的核心工作模式非常清晰:

  • 主设备(Modbus Master):主动发起查询和操作的设备,典型代表是工控机、工业控制器、HMI(人机界面)。

  • 从设备(Modbus Slave):响应主设备请求的设备,典型代表是PLC、变频器、智能仪表、I/O模块。

通信过程遵循三步走

  1. 主设备向特定从设备发送请求命令。

  2. 从设备分析并处理请求,然后返回结果数据。

  3. 如果出现任何差错(如功能码不支持、数据地址错误),从设备将返回一个异常功能码。

这种一问一答的模式稳定可靠,主设备完全控制总线,避免了数据冲突。

二、Modbus协议的三大核心特点

为什么Modbus能在众多工业协议中经久不衰?以下三个特点至关重要:

1. 标准、开放、免授权

Modbus协议是完全公开的,用户可以免费使用,无需交纳许可证费,也不会侵犯知识产权。这大大降低了自动化系统的集成成本。目前,全球支持Modbus的厂家超过400家,支持Modbus的产品超过600种,从西门子、施耐德到无数中小品牌,几乎找不到不支持Modbus的控制器。

2. 支持多种物理接口与介质

Modbus不挑剔硬件。它可以支持多种电气接口:

  • 串口:RS-232(适合短距离、点对点)、RS-485(适合长距离、多站点点对点网络)

  • 以太网口:通过Modbus TCP/IP协议
    它还可以在各种介质上传输:双绞线、光纤、无线(4G/5G、电台)等。这使得Modbus既能用于老旧设备的改造,也能用于全新的高速网络。

3. 帧格式简单、紧凑

Modbus的报文结构通俗易懂,无论是位操作(读取开关状态、线圈状态)还是字操作(读取寄存器数值),都有对应的功能码,用户和开发人员可以快速上手,开发成本极低。

三、Modbus支持的功能码(部分)

功能码是Modbus命令的核心,告诉从设备要执行什么操作。它们可以分为两类:

类型功能码(十进制)操作名称作用对象
位操作01H (1)读线圈状态读取离散量输出(DO)的状态

02H (2)读离散输入状态读取离散量输入(DI)的状态

05H (5)写单个线圈控制单个DO点

15H (21)写多个线圈同时控制多个DO点
字操作03H (3)读保持寄存器读取设备参数、设定值、当前数值(最常用)

04H (4)读输入寄存器读取模拟量输入(AI)的数值

06H (6)写单个寄存器修改单个参数或设定值

16H (22)写多个寄存器同时修改多个参数

理解PDU与ADU

  • PDU(协议数据单元):纯粹的功能码+数据,与传输方式无关。

  • ADU(应用数据单元):PDU加上额外的地址校验信息,适配不同的传输介质。

四、Modbus两种串行传输方式:ASCII vs RTU

当Modbus运行于串口(RS-232/RS-485)时,有两种主要的传输模式,所有设备必须选择相同模式才能通信。

1. RTU模式(Remote Terminal Unit)—— 工业首选

  • 特点:报文中的每个8位字节直接以十六进制发送,数据密度高。

  • 优势:在相同波特率下,比ASCII模式有更高的传输效率和吞吐量,是绝大多数工业现场的选择。

  • 帧结构:连续的字符流,通过至少3.5个字符的静默时间间隔来区分帧。每个字节包含1位起始位、8位数据位、1位校验位(可选)、1位停止位。

  • 检错:采用16位CRC(循环冗余校验),可靠性高。

2. ASCII模式 —— 特殊场景备用

  • 特点:报文中的每个8位字节被拆分成两个ASCII字符发送。例如,字节0x5B会编码为字符'5'(0x35)和'B'(0x42)发送。

  • 优势:字符可见,便于人工调试和查看。允许字符间间隔长达1秒,对定时要求较宽松。

  • 劣势:传输效率约为RTU模式的一半,因为每字节数据需要两个字符表示。

  • 帧结构:以冒号:(0x3A)起始,以回车换行CRLF(0x0D+0x0A)结束。采用LRC(纵向冗余校验)。

一句话总结RTU是性能优先的生产模式,ASCII是调试优先的兼容模式。实际项目中,95%以上的串口Modbus设备使用RTU模式。

五、Modbus TCP/IP:拥抱工业以太网时代

随着工业互联网的发展,Modbus也进化出了以太网版本——Modbus TCP/IP

它与串行Modbus(RTU/ASCII)有何不同?

特性Modbus RTU/ASCII (串口)Modbus TCP/IP (以太网)
物理层RS-232, RS-485标准以太网 (RJ45, 光纤, 无线)
传输方式主从轮询,一问一答客户端/服务器,支持并发
地址方式从站地址 (1-247)IP地址 + 单元标识符
报文结构ADU包含地址+CRC/LRCADU去掉CRC,增加MBAP头部
检错机制CRC (RTU) 或 LRC (ASCII)底层TCP/IP协议负责
典型应用PLC、仪表、变频器本地连接上位机监控、云端SCADA、跨网络集成

Modbus TCP/IP的独特优势

  1. 更高的通信速率:以太网支持10/100/1000Mbps,远快于串口的115.2kbps。

  2. 支持多主站并发:不再像串口那样只能有一个主站轮询,多个客户端(如HMI、SCADA、ERP系统)可以同时访问同一台Modbus服务器设备。

  3. 长距离与网络化:通过工业以太网交换机、光纤、4G/5G路由器,可以轻松实现跨车间、跨厂区甚至跨城市的Modbus通信。

  4. 报文更简洁:Modbus TCP/IP报文去掉了CRC校验(由TCP/IP底层保证),并添加了7字节的MBAP头部(用于标识事务、协议、长度和单元ID),结构更清晰。

典型的Modbus TCP/IP应用场景

  • 工厂级SCADA监控系统通过以太网采集多个PLC的数据。

  • 远程运维中心通过VPN+4G网络,读取远端泵站的Modbus TCP仪表数据。

  • 在工业物联网(IIoT)平台中,作为边缘网关与云平台对接的协议。

六、如何选择:串行Modbus还是Modbus TCP/IP?

这是一个实际项目中经常遇到的问题,以下是快速决策参考:

场景推荐方案理由
现场柜内连接(PLC与变频器、仪表之间)Modbus RTU over RS-485成本低、抗干扰强、布线简单,适合几十米内多点连接
单台工控机采集几十台分散设备数据Modbus RTU over RS-485轮询简单,无需网络配置
跨车间、跨厂房数据采集Modbus TCP/IP可走现有以太网络,长距离无衰减,支持交换机扩展
多系统同时访问同一设备(如HMI+SCADA+MES)Modbus TCP/IP支持多客户端并发,无需排队等待
老旧串口设备接入以太网络串口转以太网网关将RTU协议封装成TCP/IP,保护既有投资
通过4G/5G无线远程采集Modbus TCP/IP无线网络天然支持TCP/IP,直接穿透

最佳实践:在新项目中,优先考虑Modbus TCP/IP作为主干网络,而在末端节点(如单个传感器、小型执行器)继续使用成本更低的RS-485 Modbus RTU,通过网关统一汇聚。这种混合架构兼顾了成本、性能和扩展性。

七、总结

Modbus协议之所以历经四十余年而不衰,根本原因在于它简单、开放、够用。无论你是维护老旧设备,还是设计全新的智能工厂,Modbus几乎总是那个“最不坏”的选择。

  • 需要简单可靠的点对点或总线通信?选 Modbus RTU over RS-485

  • 需要高速、网络化、多主站并发?选 Modbus TCP/IP

  • 需要调试或与特殊设备对接?保留 Modbus ASCII 作为备选。