通用工业协议 - MODBUS 的基本介绍和应用
Modbus Modicon通信协议(Modicon Communication Protocol)是一种用于工业自动化领域的串行通信协议。它最初由Modicon公司(现为施耐德电气的一部分)于1979年开发,用于其PLC(可编程逻辑控制器),如今已成为工业领域通信协议的行业标准,并得到广泛应用。
Modbus协议是工业电子设备之间常用的连接方式,尤其适用于监控系统。PLC、DCS、智能仪表等设备均采用Modbus协议作为标准通信协议。借助Modbus协议,不同厂商生产的控制设备可以连接到工业网络中,实现集中监控。

Modbus协议采用主从通信技术,涉及一个主站(Master)和多个从站(Slave)之间的通信,其中主站主动查询和操作从站。通常,我们将主控设备使用的协议称为Modbus Master协议,将从站使用的协议称为Modbus Slave协议。

它通过串行线路在设备间进行数据传输。最简单的设置是使用串行电缆连接两个设备(主设备和从设备)的串行端口。数据以 1 和 0 的序列形式发送,称为比特。每个比特都以电压的形式发送。0 表示正电压,1 表示负电压。主站向从站发送请求,从站则响应这些请求。
通过 Modbus 协议,控制器可以相互通信,也可以通过网络(例如以太网)与其他设备通信。典型的主设备包括工业计算机和工业控制器,而典型的从设备包括 PLC(可编程逻辑控制器)等。

Modbus 是 OSI 模型第七层(应用层)的消息传输协议,用于在连接到不同类型总线或网络的设备之间提供客户端/服务器通信。Modbus 应用层协议和服务规范主要包括两类:一类是基于串行链路的 Modbus(Modbus 串行链路基于 TIA/EIA 标准:232-F 和 485-A),另一类是基于 TCP/IP 的 Modbus(Modbus TCP/IP 基于 IETF 标准:RFC793 和 RFC791)。Modbus 通信协议栈的示意图如下所示:

Modbus 也是一种开放协议,可在不同的物理层上运行。其通信物理接口可选择串行端口(包括 RS-232 和 RS-485)或以太网端口。最常用的 Modbus 协议包括以下四种类型:Modbus ASCII、Modbus RTU、Modbus Plus 和 Modbus TCP。在串行端口模式下,常用的帧格式为 RTU(远程终端单元)和 ASCII。在以太网模式下,通常使用 Modbus TCP 协议。Modbus 协议与我们通常自定义的协议基本一致,其数据传输格式由起始帧、数据帧、校验帧等组成,只是 Modbus 协议更加标准化。
Modbus 协议定义了一个简单的协议数据单元 (PDU),它独立于底层通信层。特定总线或网络上的 Modbus 协议映射可以在应用数据单元 (ADU) 中引入一些额外的字段。通用的 Modbus 帧协议如下图所示:

具体分析如下:
1)地址字段:子节点的地址信息。
2) 功能码:此字段指示服务器要执行的操作。有效代码范围为十进制 1-255(128-255 保留用于异常响应)。客户端向服务器设备发送消息时,功能码字段会告知服务器要执行的操作。
3) 数据:传输的数据的内容,在某个请求中,数据可能不存在(长度为 0),在这种情况下,服务器不需要任何附加信息,功能代码仅指定操作。
4)错误检查:验证接收和发送的数据是否正确。
如果正确接收到的 Modbus ADU 中不存在与所请求的 Modbus 功能相关的错误,则服务器发送给客户端的响应数据字段将包含所请求的数据。如果存在与所请求的 Modbus 功能相关的错误,则该字段将包含一个异常代码,服务器应用程序可以使用该异常代码来确定要执行的下一步操作。
总而言之,Modbus协议的简洁性、灵活性和易用性使其成为工业自动化领域最常用的通信协议之一。由于其开放性,Modbus协议得到了广泛的支持,使得不同制造商的设备能够在同一网络中轻松通信。










