Modbus 是工业通信协议的 "鼻祖"。它最初是由 Modicon 公司于 20 世纪 70 年代中期设计的,旨在通过简单的主/从概念将智能设备与 PLC 连接起来。 "简单 "是 Modbus 的主要特征,也是它的最大优势。它易于实施和使用。刚推出时,它是一种专有协议,只有 Modicon 可以使用。不过,后来它被免版税发布,任何人都可以使用。
最后,Modicon 将其作为开放协议。协议发布后,许多公司开始使用它,并对原始规范进行了不同的解释和修改。因此,该领域现在出现了许多变体。
规范文件长度不到 100 页,这充分说明该协议的复杂程度很低。相比之下,Profibus 的规范文件则长达数千页。术语 "Modbus "通常指三种相关协议之一: Modbus ASCII、Modbus RTU 或 Modbus TCP/IP
Modbus ASCII 是第一个 Modbus 协议,是一种串行协议,通常在 RS-232 或 RS-485 物理层上运行。所有从站都由主站按需轮询,且只有一个主站。报文帧最长可达 252 字节,地址最多可达 247 个。图 1 和 1.1 所示的报文帧和功能代码非常简单。

Modbus RTU 实际上只是 Modbus ASCII 协议的一个小变种。唯一的区别在于数据编码。ASCII 以 ASCII 字符编码报文,而 RTU 则使用字节,从而提高了协议的吞吐量。一般来说,RTU 更受欢迎,尤其是在新安装的设备中。
Modbus TCP/IP 是后来才加入的。了解 Modbus TCP/IP 的一个简单方法是将其想象成在 TCP/IP 数据包中封装一个 Modbus RTU 数据包。虽然还有一些其他方面的问题,但这基本上就是 Modbus 所做的事情。因此,Modbus TCP/IP 的实现也非常简单。代价是,由于所有信息都使用 TCP/IP 协议,因此与其他以太网工业协议相比速度较慢,但对于监控应用来说速度仍然足够快。
Modbus 的工作原理
如前所述,Modbus 是一种简单的主从协议。主站可以完全控制总线上的通信,而从站只有在被呼叫时才会做出响应。如图 2 所示,主站将在每个周期内记录输出,并从每个从站读取输入。

从设备并不 "加入 "网络。只要有主设备与它们对话,它们就会响应。如果主设备从未与从设备对话,则从设备处于空闲状态。 此外,也不需要对从设备的健康状况进行诊断。如果主站请求的数据对从站没有意义,那么从站可以发送异常响应。
但是,如果进程变量有问题或设备功能有问题,协议中并没有要求从属设备报告。
物理层
Modbus ASCII 和 RTU 通常都使用 RS-232 或 RS-485 物理层,但也可以使用电话线或无线等其他物理层。 推荐标准 (RS) 232 和 485 是 Modbus 最初开发时确立的物理层。RS-232 用于点对点应用,而 RS-485 则用于多点应用。
在这两种情况下,Modbus 没有对这些物理层增加任何新的要求。 这种做法是行之有效的,但在 RS-485 的情况下却造成了一些问题。问题在于物理层有多种变化: 2 线制、4 线制、共用以及驱动器和接地方法的变化。
任何使用过多个供应商提供的 RS-485 Modbus 的人都知道,在点对点配置中连接两种类型的设备时,如何管理所有的变化。如果现场有多个供应商,而且必须在一根电缆上组合多种类型,那么困难就来了。
电话线和无线都有许多标准。Modbus 在这些应用中表现出色,因为协议中的定时限制较少。电话线和无线调制解调器都会在信息中引入延迟。有时,这些延迟在整个报文中是非线性的,这会给许多协议带来实际问题。
然而,Modbus 要么不存在这种问题,要么可以对其进行调整,使其能够在这些应用中正常工作。
典型应用
1. 控制器/监控器到智能设备 - 在这种应用中,需要从一个智能设备中提取数据。这种点对点应用是常见的 Modbus ASCII/RTU 任务。协议和物理层的变化都很容易管理,这种应用也很容易运行。
2. 控制器/监控器与来自同一供应商的许多智能设备的连接--与第一个应用一样,这个应用非常容易实现。协议中的变化一般不成问题。
3. 远程监控来自智能设备的信息 - 由于 Modbus 协议是调制解调器友好协议,因此可以通过调制解调器实现远程监控。
什么是 Modbus ID
Modbus 网络依赖于各个设备的 ID。信息可在整个网络中发送,但数据的标记范围从 1 到 247(Modbus 基础知识规定主站只能寻址 247 台设备)。

例如,在使用 RS-485 多路传输的 Modbus 串行网络中,最多可以菊花链连接 31 台设备。但是,每台设备都必须有自己唯一的 ID 号。
由于 Modbus 主站是向从站发送请求的唯一设备,因此不会为从站分配任何 ID。从站之间不存在通信。

什么是 Modbus TCP 网关
Modbus TCP 网关是连接 Modbus TCP 协议和传统 Modbus 串行协议的设备。
网关的工作原理类似于中继设备,它接收来自 TCP(以太网)端的请求,然后将其传递到网关的串行端。请注意,使用该设备时,现有的限制(如 Modbus 从站菊花链连接)仍为 31 台设备。
最后,Modicon 将其作为开放协议。协议发布后,许多公司开始使用它,并对原始规范进行了不同的解释和修改。因此,该领域现在出现了许多变体。
规范文件长度不到 100 页,这充分说明该协议的复杂程度很低。相比之下,Profibus 的规范文件则长达数千页。术语 "Modbus "通常指三种相关协议之一: Modbus ASCII、Modbus RTU 或 Modbus TCP/IP
Modbus ASCII 是第一个 Modbus 协议,是一种串行协议,通常在 RS-232 或 RS-485 物理层上运行。所有从站都由主站按需轮询,且只有一个主站。报文帧最长可达 252 字节,地址最多可达 247 个。图 1 和 1.1 所示的报文帧和功能代码非常简单。

Modbus RTU 实际上只是 Modbus ASCII 协议的一个小变种。唯一的区别在于数据编码。ASCII 以 ASCII 字符编码报文,而 RTU 则使用字节,从而提高了协议的吞吐量。一般来说,RTU 更受欢迎,尤其是在新安装的设备中。
Modbus TCP/IP 是后来才加入的。了解 Modbus TCP/IP 的一个简单方法是将其想象成在 TCP/IP 数据包中封装一个 Modbus RTU 数据包。虽然还有一些其他方面的问题,但这基本上就是 Modbus 所做的事情。因此,Modbus TCP/IP 的实现也非常简单。代价是,由于所有信息都使用 TCP/IP 协议,因此与其他以太网工业协议相比速度较慢,但对于监控应用来说速度仍然足够快。
Modbus 的工作原理
如前所述,Modbus 是一种简单的主从协议。主站可以完全控制总线上的通信,而从站只有在被呼叫时才会做出响应。如图 2 所示,主站将在每个周期内记录输出,并从每个从站读取输入。

从设备并不 "加入 "网络。只要有主设备与它们对话,它们就会响应。如果主设备从未与从设备对话,则从设备处于空闲状态。 此外,也不需要对从设备的健康状况进行诊断。如果主站请求的数据对从站没有意义,那么从站可以发送异常响应。
但是,如果进程变量有问题或设备功能有问题,协议中并没有要求从属设备报告。
物理层
Modbus ASCII 和 RTU 通常都使用 RS-232 或 RS-485 物理层,但也可以使用电话线或无线等其他物理层。 推荐标准 (RS) 232 和 485 是 Modbus 最初开发时确立的物理层。RS-232 用于点对点应用,而 RS-485 则用于多点应用。
在这两种情况下,Modbus 没有对这些物理层增加任何新的要求。 这种做法是行之有效的,但在 RS-485 的情况下却造成了一些问题。问题在于物理层有多种变化: 2 线制、4 线制、共用以及驱动器和接地方法的变化。
任何使用过多个供应商提供的 RS-485 Modbus 的人都知道,在点对点配置中连接两种类型的设备时,如何管理所有的变化。如果现场有多个供应商,而且必须在一根电缆上组合多种类型,那么困难就来了。
电话线和无线都有许多标准。Modbus 在这些应用中表现出色,因为协议中的定时限制较少。电话线和无线调制解调器都会在信息中引入延迟。有时,这些延迟在整个报文中是非线性的,这会给许多协议带来实际问题。
然而,Modbus 要么不存在这种问题,要么可以对其进行调整,使其能够在这些应用中正常工作。
典型应用
1. 控制器/监控器到智能设备 - 在这种应用中,需要从一个智能设备中提取数据。这种点对点应用是常见的 Modbus ASCII/RTU 任务。协议和物理层的变化都很容易管理,这种应用也很容易运行。
2. 控制器/监控器与来自同一供应商的许多智能设备的连接--与第一个应用一样,这个应用非常容易实现。协议中的变化一般不成问题。
3. 远程监控来自智能设备的信息 - 由于 Modbus 协议是调制解调器友好协议,因此可以通过调制解调器实现远程监控。
什么是 Modbus ID
Modbus 网络依赖于各个设备的 ID。信息可在整个网络中发送,但数据的标记范围从 1 到 247(Modbus 基础知识规定主站只能寻址 247 台设备)。

例如,在使用 RS-485 多路传输的 Modbus 串行网络中,最多可以菊花链连接 31 台设备。但是,每台设备都必须有自己唯一的 ID 号。
由于 Modbus 主站是向从站发送请求的唯一设备,因此不会为从站分配任何 ID。从站之间不存在通信。

什么是 Modbus TCP 网关
Modbus TCP 网关是连接 Modbus TCP 协议和传统 Modbus 串行协议的设备。
网关的工作原理类似于中继设备,它接收来自 TCP(以太网)端的请求,然后将其传递到网关的串行端。请注意,使用该设备时,现有的限制(如 Modbus 从站菊花链连接)仍为 31 台设备。