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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
罗磊的独立博客
人人都是产品经理
人人都是产品经理
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
L
Lohrmann on Cybersecurity
博客园 - 【当耐特】
量子位
Last Week in AI
Last Week in AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Cyber Attacks, Cyber Crime and Cyber Security
腾讯CDC
有赞技术团队
有赞技术团队
Cyberwarzone
Cyberwarzone
T
Tor Project blog
V
V2EX
L
LINUX DO - 热门话题
Security Latest
Security Latest
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
NISL@THU
NISL@THU
C
Cisco Blogs
T
Tailwind CSS Blog
G
GRAHAM CLULEY
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
K
Kaspersky official blog
博客园 - 司徒正美
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
S
Schneier on Security
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
J
Java Code Geeks
博客园 - 聂微东
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
C
Cybersecurity and Infrastructure Security Agency CISA
F
Fortinet All Blogs
T
Threat Research - Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
雷峰网
雷峰网

博客园 - 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 术语中,这意味着可以有多个主设备和多个从设备。现在,系统设计人员的责任是创建主设备和从设备功能之间的逻辑关联,而不是逐个物理设备地定义主设备和从设备。