news 2026/5/16 17:35:03

Modbus:工业通信的“通用语言”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Modbus:工业通信的“通用语言”

Modbus 如今仍是工业自动化最普及的通信协议,虽诞生已久、结构简单,但适配场景极广。本文用简短篇幅介绍它的特性。看完后,你就知道为什么有了 Modbus,之后又诞生了 IEC101(参考IEC101和串口通信)。

一、背景和现状

Modbus 在 1979 年发布,是工业领域首个开放的主从式通信协议。

当时不同厂商的 PLC、传感器各自为战,缺乏统一通信标准。Modbus 因“极简设计、开放免费”的特点,快速成为工业通信的通用协议,40 多年也未被淘汰。目前在电力行业也经常被用到,主要是站内设备间的通信。

二、特点

1. 技术特点

  • 优势:简单、开放免费、兼容性强,适配 RS-485/232 串口与以太网。

  • 局限:无内置加密与安全机制、主从轮询模式实时性有限、无原生时标与数据质量位,难以满足电力调度主站这类对安全性、时序精度、数据完整性有高要求的调度场景。

2. 主要传输模式

Modbus 有三种传输模式:

  • Modbus RTU:串口二进制编码,效率高、紧凑,是 RS-485 总线的主流模式;

  • Modbus ASCII:串口 ASCII 字符传输,可读性强但效率低,现已极少使用;

  • Modbus TCP:以太网 TCP/IP 承载,使用知名端口 502,速度快、支持远距离跨网通信,是现代工业网络的主流模式。

三者应用层逻辑完全一致,仅底层传输方式不同,可通过网关实现相互转换。

3. 主从架构

1 个主站(客户端)发起读写请求,多个从站(服务端)被动响应。

三、分层

Modbus 不同于 IEC101 的三层架构,采用简化的两层设计(应用层 + 物理层,含链路适配)。

1. 物理层:串口与以太网双模式

  • 串口 RS-232:点对点、全双工、短距离(≤15m),用于主站与单台设备直连(如本地调试);

  • 串口 RS-485:总线型、半双工、长距离(≤1200m),支持 1 主多从(单段最多 32 节点);

  • 以太网:星形拓扑、全双工、距离不限,支持海量设备组网,对应 Modbus TCP 模式。

通信参数(串口模式必配,双方需完全一致):

  • 波特率:常用 9600bps、19200bps;

  • 串口帧结构:多采用 8N1(8 数据位、无校验、1 停止位)。

2. 应用层

  • 功能:定义数据模型(寄存器)、功能码、报文格式。

寄存器是 Modbus 应用层的数据载体,代表设备数据的存储单元。工业设备(如电表、逆变器)的各类测点数据,都会按照 Modbus 协议,存储在对应的寄存器中;主站通过读取、写入寄存器,就能实现对从站设备的监测(读)和控制(写),无需关注设备内部的硬件差异。

  • 数据模型(四类寄存器):

寄存器类型

位数

读写属性

用途

线圈

1位

读/写

用于开关量输出,如断路器分合闸、设备启停等遥控场景

离散输入

1位

只读

用于开关量输入,如设备运行状态、故障报警等遥信场景

输入寄存器

16位

只读

用于模拟量输入,如电压、电流、功率等遥测场景

保持寄存器

16位

读/写

用于参数设定、状态存储,如功率定值、运行参数等遥调场景

3. 报文格式

Modbus 报文格式由协议内置定义,不同传输模式的格式略有差异,但核心结构一致,均包含“寻址+指令+数据+校验”四部分。

(1)Modbus RTU 报文格式(RS-485/串口场景)

完整结构(请求/返回通用):从站地址(1字节)+ 功能码(1字节)+ 数据域(N字节)+ CRC16校验(2字节)

① 请求报文(主站→从站)

字段名称

字节数

说明

从站地址

1字节

1~247(唯一标识从站),0为广播地址(所有从站接收不响应)

功能码

1字节

如03(读保持寄存器)、04(读输入寄存器,遥测专用)、05(写单个线圈,遥控专用)

数据域

N字节

包含寄存器起始地址(2字节)、读取/写入数量(2字节),以及具体数据

CRC16校验

2字节

校验码,由报文前N字节计算得出

示例:从站地址1,功能码04(读输入寄存器),读取1个遥测寄存器(如A相电压),请求报文为:01 04 00 00 00 01 71 0D

② 返回报文(从站→主站)

字段名称

字节数

说明(结合前文示例)

从站地址

1字节

与请求报文一致,示例中为01

功能码

1字节

与请求一致(04);若出错,功能码最高位置1(如84)

数据域

N字节

示例中为02 00 23(02=数据字节数,0023=A相电压实际值)

CRC16校验

2字节

由返回报文前N字节计算得出,示例中为XX XX

示例(对应前文请求):返回报文为:01 04 02 00 23 XX XX(XX XX为CRC16校验码),对应A相电压实际值为35V。

(2)Modbus TCP 报文格式

完整结构:MBAP头(7字节,Modbus TCP专属)+ RTU PDU(无CRC校验)

① 请求报文(主站→从站)

字段名称

字节数

取值范围/说明

MBAP头

7字节

包含4部分:事务ID(2字节)、协议ID(2字节,0代表Modbus TCP)、长度(2字节)、单元ID(1字节,等同于RTU从站地址)

RTU PDU

N字节

与RTU的“从站地址+功能码+数据域”完全一致

示例:TCP请求报文为:00 01 00 00 00 06 07 04 00 00 00 01,与RTU报文核心逻辑一致,仅多了MBAP头、去掉了CRC校验。

② 返回报文(从站→主站,对应上述请求)

字段名称

字节数

取值/说明(结合前文示例)

MBAP头

7字节

事务ID与请求一致(00 01),协议ID 00 00,长度00 04,单元ID 07

功能码

1字节

与请求一致(04),出错则为84

数据域

N字节

示例中为02 00 23(与RTU数据域一致)

示例(对应前文请求):返回报文为:00 01 00 00 00 04 07 04 02 00 23,与RTU返回数据一致,仅多MBAP头、无CRC校验。

四、网络拓扑

串行 Modbus 为严格单主站;Modbus TCP 支持多客户端(多主站)并发访问同一从站,但仍为主从模型,从站不能主动上报。

1. 点对点拓扑(RS-232/RS-485)

  • 结构:1 个主站 ↔ 1 个从站

  • 特点:全双工、无通信冲突、可靠性高,适用于单设备本地通信。

2. 总线型拓扑(RS-485)

  • 结构:1 个主站 + 多个从站挂接在同一 RS-485 总线上

  • 特点:半双工、主站轮询、布线简单、成本低,是工业现场常用的拓扑。

  • 规则:

    • 仅 1 个主站,可多个从站(单段 ≤32 台,加中继器可扩展);

    • 只有主站能发起读/写请求,从站只能被动响应,不能主动发送数据;

  • 流程:主站发送带从站地址的请求 → 总线上所有设备接收 → 仅目标地址从站响应。

3. 星形拓扑(Modbus TCP)

  • 结构:主站、所有从站均接入交换机,通过以太网组网

  • 特点:全双工、无轮询瓶颈、可跨网段扩展,适用于海量设备组网。

五、答疑

1. Modbus 只能支持 247 个从站吗?

协议层面从站地址为 1~247(共 247 个),但物理层有上限:RS-485 单段最多 32 个节点,加中继器可扩展至接近 247 个;Modbus TCP 则无硬限制,仅受主站性能和网络带宽影响。

2. Modbus 支持单次读多个数据吗?

支持,且是最常用的用法。通过对应功能码(01、02 读多个开关量,03、04 读多个寄存器),PDU 最大长度253 字节,单次可读最多 2008 个开关量或 125 个寄存器,但只能是连续的寄存器。

3. 寄存器只有 16 位,如果数据是一个较大的数怎么办?

采用“多寄存器拼接”解决。16 位寄存器范围有限,对于电压、功率等较大数值或高精度数值,会用 2 个(32 位)甚至 4 个(64 位)16 位寄存器拼接,按约定顺序(大端/小端)组合成一个大数。Modbus 协议仅规定可多寄存器拼接,但未统一大端/小端顺序,不同厂商设备约定不同,必须以设备手册标注为准。

4. 2 字节校验位,是否表示有 6 万多分之一的概率校验失败?

不是。2 字节 CRC16 校验理论有 65536 种校验码,但实际数据位本身出错的概率就很低,校验同时出错且命中 1/65536 的概率就更低,实际错误被 CRC16 检测到的概率接近 100%,可靠性足够。

5. Modbus 不安全吗?

原生无内置安全机制,报文明文传输,无加密、无身份认证,适合内网使用;若需跨网或高安全场景,需通过防火墙、VPN 或协议加密网关补充安全防护。

6. Modbus 与 IEC101 有什么区别?

Modbus 是通用工业协议,适配所有工业设备,设计极简、成本低,无原生电力四遥时序和安全机制;IEC101 是电力专用远动规约,专为电力四遥、长距离高干扰场景设计,可靠性和专业性更强,二者场景互补,不能相互替代。

7. 名词全称

简写

全称

说明

RTU

Remote Terminal Unit

Modbus 协议的远程终端单元二进制串口传输模式

PDU

Protocol Data Unit

协议中的数据域

MBAP

Modbus Application Protocol Header

Modbus 应用协议头

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 17:26:07

2026年图片如何去除背景?AI抠图方法大测评与背景替换完全指南

想要快速去掉图片背景?不知道用什么工具最高效?本文汇总了2026年最实用的背景移除方法,从零基础一键抠图到专业级精细编辑,覆盖手机、电脑和在线三大场景,帮你找到最适合的解决方案。为什么要学会图片去背景色技巧在日…

作者头像 李华
网站建设 2026/5/16 17:23:52

Unlock Music:12种加密音乐格式一键解锁的终极解决方案

Unlock Music:12种加密音乐格式一键解锁的终极解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: http…

作者头像 李华
网站建设 2026/5/16 17:20:42

终极Steam饰品交易指南:如何利用挂刀行情站实现收益最大化

终极Steam饰品交易指南:如何利用挂刀行情站实现收益最大化 【免费下载链接】SteamTradingSiteTracker Steam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Market items on buff.163.c…

作者头像 李华