惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
V
Visual Studio Blog
The Register - Security
The Register - Security
A
About on SuperTechFans
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security @ Cisco Blogs
Google Online Security Blog
Google Online Security Blog
U
Unit 42
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
T
Tenable Blog
Help Net Security
Help Net Security
Recorded Future
Recorded Future
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
G
GRAHAM CLULEY
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
MyScale Blog
MyScale Blog
The Hacker News
The Hacker News
H
Heimdal Security Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 三生石上(FineUI控件)
Project Zero
Project Zero
T
Threat Research - Cisco Blogs
J
Java Code Geeks
T
Threatpost
Cyberwarzone
Cyberwarzone
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
S
Security Affairs
Security Latest
Security Latest
Martin Fowler
Martin Fowler
C
Cyber Attacks, Cyber Crime and Cyber Security
T
The Exploit Database - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
C
CERT Recently Published Vulnerability Notes

博客园 - sunny_2016

核聚:雷·达里奥的达成目标5步法 英语发单规则一 英语学习三 英语学习笔记二 英语学习笔记一 OPC UA协议学习笔记 限制ssh非法登录 linux添加hosts.deny文件 jmeter的tcp请求示例发送16进制报文 pymodbus模拟modbus slave从站(二) 使用python的pymodbus实现modbus slave 模拟从站一 secure crt使用ssh密钥登录提示未知文件格式 专业的通讯调试工具或者平台有哪些 centos7.9上面卸载中文语言包和中文字体重新安装 linux centos7.9 中文乱码 linux pkill命令的坑 Windows 11 主机上建立反向隧道,实现服务端连接内网客户端主机 互联网上的高危IP,一直在尝试sshd破解 通过/etc/hosts.deny限制一个网段的 SSH 登录尝试 linux查询近8小时ssh登录失败的ip转换为hosts.deny格式打印 多系统集成分析——ERP与OA、PLM、MES、CRM、WMS、SRM、HR ERP也有库存管理、生产管理、流程审批,为什么还要上WMS、MES和OA? gitlab流水线执行发布提示: No such file or directory gitlab-runner注册完提示:New runner. Has not connected yet(新的Runner,尚未连接) 电池片组件生产工艺流程
modbus协议
sunny_2016 · 2026-05-25 · via 博客园 - sunny_2016

来源:https://blog.redisant.cn/docs/modbus-tutorial/

  Modbus的工作原理 #

Modbus遵循主从架构(Master-Slave Architecture),在通信网络中,通常有一个主设备(Master)和一个或多个从设备(Slave)。主设备负责发出请求,从设备接收并响应请求。

  通信帧结构 #

Modbus通信的基本单位是“帧”,一帧包括以下几个部分:

  • 地址域:用于标识目标设备的地址。
  • 功能码(Function Code):定义要执行的操作,如读取寄存器、写入数据等。
  • 数据域:根据功能码携带相应的数据(如寄存器地址、寄存器值等)。
  • 校验码:用于确保数据传输的完整性(在Modbus RTU和ASCII中使用)

    Modbus的应用场景 #

    Modbus协议广泛应用于工业控制系统中,尤其是在以下场景中:

    • 设备间数据采集和监控(如PLC与传感器、HMI的连接)。
    • 过程自动化中的数据传输。
    • 远程监控和控制系统(如SCADA系统)。

    Modbus的开放性和简单性,使其成为工业物联网(IIoT)中广泛使用的协议之一。

  主要特点 #

  • 主从架构:Modbus 采用主从(Master/Slave)架构。一个主设备可以与多个从设备通信,从设备之间不直接通信。主设备发出命令,从设备响应。
  • 简单易用:Modbus 协议相对简单,易于实现和理解,适用于资源有限的嵌入式系统。
  • 多种传输方式:
    • Modbus RTU:基于串行通信的 Modbus 变体,通常使用 RS-232 或 RS-485 作为物理层。数据以二进制形式传输,具有较高的效率和较低的通信开销。
    • Modbus ASCII:另一种基于串行通信的变体,数据以 ASCII 字符形式传输,便于调试,但效率较低。
    • Modbus TCP/IP:基于以太网的 Modbus 变体,通过 TCP/IP 协议进行传输,适用于现代网络环境。
  • 数据模型:Modbus 定义了一种简单的数据模型,包含四种数据类型:
    • 离散输入:单个位,只读。
    • 线圈:单个位,读/写。
    • 输入寄存器:16 位寄存器,只读。
    • 保持寄存器:16 位寄存器,读/写。

  应用领域 #

  • 工业自动化:如 PLC、SCADA 系统、传感器和执行器之间的通信。
  • 能源管理:如电表和能源管理系统的通信。
  • 楼宇自动化:如暖通空调 (HVAC) 系统、照明和安防系统的控制。

    可视化 Modbus 设备中的数据 #

    Modbus 从设备可以想象为具有一个内部电子表格,其中填满了数字。Modbus 主设备将向从设备询问其在给定行和列中找到的数据值或数字,从设备将通过将该数据发送回主设备来响应。当然,这个过程可以逆转,Modbus 主设备告诉从设备在给定行和列处将什么数字放入其数据表中。

    Modbus 设备“电子表格”中的“列”更正式地称为寄存器类型。寄存器类型可能是线圈、离散输入(又称状态输入)、输入寄存器或保持寄存器。

    Modbus 设备“电子表格”中的“行”只是寄存器编号。通常,这些行从 1 开始并按顺序递增。某些设备可能没有寄存器 1,例如,它们的第一个寄存器可能是 100。如果从设备中不存在寄存器编号,它将发回一个异常消息。该异常提供了一个错误代码,提示“没有这样的寄存器”(异常代码 2,非法数据地址)。

    什么是 Modbus TCP? #

    Modbus TCP 将 Modbus RTU 请求和响应数据包封装在通过标准以太网网络传输的 TCP 数据包中。单元号仍包含在内,其解释因应用程序而异 - 单元或从站地址不是 TCP 中的主要寻址方式。这里最重要的地址是 IP 地址,例如 192.168.1.100。Modbus TCP 的标准端口是 502,但如果需要,通常可以重新分配端口号。

    TCP 数据包中省略了通常位于 RTU 数据包末尾的校验和字段。对于 Modbus TCP,校验和和错误处理由以太网处理。

    Modbus 的 TCP 版本遵循 OSI 网络参考模型。Modbus TCP 定义了 OSI 模型中的表示层和应用层。

    Modbus TCP 使主设备和从设备的定义不那么明显,因为以太网允许对等通信。客户端和服务器的定义在基于以太网的网络中更为人所知。在这种情况下,从设备成为服务器,主设备成为客户端。可以有多个客户端从服务器获取数据。在 Modbus 术语中,这意味着可以有多个主设备和多个从设备。现在,系统设计人员的责任是创建主设备和从设备功能之间的逻辑关联,而不是逐个物理设备地定义主设备和从设备。