原文标题:亿佰特物联网无线通信技术:Modbus协议详解

 

Modbus协议通常被称为工业化网络的祖父。Modbus 协议可根据工业和商业要求轻松配置。由于在多个领域的流行和广泛应用,本文详细概述了 Modbus 通信、其功能代码、实现和应用。

 

什么是Modbus?

 

Modbus 是开放标准的 RTU,许多组织和工程师将其实施到他们的设备中,而无需支付任何费用。该协议被认为是最普遍的通信协议,并且通常可以作为链接工程电子设备的一种手段来访问。

 

详细地说,这是用于通过串行线路或以太网连接在电子设备之间进行信息传输的通信协议。在开放标准条件下,任何人都可以实施。这可能用于连接电源域使用SCADA中的RTU 进行控制的系统。

 

Modbus 的协议被明确定义为主从协议,这意味着作为主设备的工具将使一个或多个工具作为从设备。这清楚地表明从机不会承接数据,它需要等到它被要求提供信息。主设备将信息写入从设备,然后将信息从寄存器读取到主设备。从寄存器的角度来看,注册地址总是存在的。

 

Modbus 通信协议如何工作?

 

由于这种开放标准的远程终端单元 (RTU) 采用主从方法来创建跨各种设备的通信,因此,采用RTU方案的任何类型的应用程序都将拥有一个Modbus主设备和至少一个从设备。这清楚地表明从机不会承接数据,它需要等到它被要求提供信息。

 

设备之间的主从通信通过串行总线或网络实现。在OSI方法中,Modbus 位于第七层。这样做的目的是请求协议,然后交付功能代码提到的相应服务。这些 Modbus RTU 协议的功能代码是 Modbus 请求组件。

 

为了开发 Modbus 应用数据单元,交付单元应该发起设备事务。这是通知服务器处理指定类型操作的操作。由主设备发起的请求的设计由应用协议决定。然后功能码将被编码为 8 位,即 1 个字节。只有在 1-25 范围内的功能代码才被认为是有效的,并且在这个 128-255 中留出用于异常响应。

 


 
当有从主机到从机的请求/消息时,这意味着是功能代码字段通知服务器执行请求的操作。对于某些操作,也会有一些子功能代码。例如,主设备可以读取各种输入/输出集群的 ON 和 OFF 转换。

 

它还可以读取或写入一组 Modbus 寄存器的信息。当主设备收到从设备的响应时,从设备使用功能代码字段来表示它是正常响应还是异常响应。从设备会在有正常响应的情况下对第一个功能码的请求产生共振。

 

这就是Modbus 通信协议的运作方式。

 

功能代码

 

Modbus 协议识别多个功能代码以获得寄存器的可访问性。Modbus 主要有四种不同的数据块,这里可能会出现寄存器编号或地址重叠的情况。因此,必须在需要地址和功能代码的地方定义准确的定义。

 

下表清楚地总结了Modbus 功能代码。这些代码只存在一个子类别。但是对于一些相应的应用程序,这些可能不会得到应用。

 

 

Profibus 与/s Modbus

 

将 Profibus 和 Modbus 作为单独的应用程序进行比较,两者中的每一个都有多个优点和应用程序。

 

Modbus具有结构简单、操作流线型、易于上手的协议。尽管协议本身和物理层的定义存在一些差异,但这会在多供应商操作中产生问题。而 Profibus 是最复杂的协议,其构建是为了使整个行业自动化。它在具有调制解调器的多供应商功能中表现出色,并具有彻底的诊断功能。

 

在智能设备以点对点方式与控制器连接时,或者存在一个远程位置时,Modbus 最适合这种情况。在存在多个点,即多个供应商的情况下,Profibus 是最好的。

 

协议版本

 

Modbus 协议的变体是:

 

Modbus RTU
为了建立协议通信,它以二进制格式表示数据,主要用于串行通信。此版本中的消息按空闲时间段划分。RTU 版本遵循的格式是循环冗余校验验证机制,这确保了数据的可靠性。

 

Modbus ASCII
为了建立协议通信,使用ASCII字符并且主要在串行通信中实现。此版本中的消息由冒号 (“) 和尾随换行符 (/) 分隔。ASCII 版本遵循的格式是纵向冗余校验以验证机制。

 

Modbus TCP
此版本的 Modbus 用于通过TCP/IP 网络通过端口 502 链接进行通信。此变体不需要任何类型的校验和计算,因为较低级别本身提供了这一点。

 

Modbus Plus
这是施耐德电气的专利变体,与其他类型的变体相比,它支持各种主站之间的点对点类型的通信。它需要一个承诺的协处理器来管理快速 HDLC,例如令牌变化。它使用 1 Mbit/s 的双绞线,并由放置在每个节点的变压器隔离组成。在 Modbus+ 和计算机之间建立连接需要特定类型的硬件,例如 ISA 总线。

 

Modbus 应用

 

主要应用有:

用于医疗保健领域,用于分析自动温度水平

交通行为分析

在家庭自动化中实施以简化数据传输

天然气、石油、地热、海德尔、风能和太阳能等行业