modbus协议

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

posted on 2026-05-25 16:47  sunny_2016  阅读(1)  评论(0)    收藏  举报

导航