Modbus RTU

6次阅读
没有评论

Modbus RTU(Remote Terminal Unit)是一种在工业环境中广泛使用的串行通信协议。它基于 Modbus 协议的一种实现,通过串行线(如 RS-232 或 RS-485)进行通信,主要用于设备间的简单通信。由于其开放性、简单性和广泛的支持,Modbus RTU 成为了工业通信中的事实标准之一。

  基本概念

Modbus RTU 帧结构 :每个 Modbus RTU 消息帧以设备地址开始,后跟功能码、数据、以及一个循环冗余检查(CRC)校验码结束。设备地址标识了网络上的特定设备,功能码指定了要执行的操作(如读取数据、写入数据等),数据部分包含了指令或指令的回复,CRC 校验码用于检测传输错误。

主站 / 从站模式 :Modbus RTU 采用主站 / 从站(或主从)模式。在任何给定的 Modbus 网络中,有一个设备充当主站,负责发起请求。其余设备作为从站,响应主站的请求。每个从站设备都有一个唯一的地址。

串行通信 :Modbus RTU 通过串行通信端口进行数据传输,典型的接口是 RS-232 或 RS-485。RS-485 尤其受到欢迎,因为它支持长距离通信和多设备网络。

功能码

Modbus RTU 定义了一系列功能码,用于读取和写入数据,以及进行设备控制。这些功能码包括但不限于:

读取线圈状态(01):读取从站的一组数字输出(线圈)的状态。

读取输入状态(02):读取从站的一组数字输入的状态。

读取保持寄存器(03):读取从站的一组保持寄存器中的值,这些寄存器可以由主站读写。

读取输入寄存器(04):读取从站的一组输入寄存器中的值,这些寄存器只能由主站读取。

写单个线圈(05):写一个数字输出(线圈)的状态。

写单个寄存器(06):写单个保持寄存器的值。

通信流程

请求 :主站发送一个请求给从站,请求中包括从站的地址、一个功能码、以及根据所请求操作的需要可能包含的数据。

处理 :从站接收到请求后,解析功能码并执行相应的操作。

响应 :从站处理完请求后,回送一个响应给主站。响应可能包含所请求的数据或执行操作的结果。

错误处理 :如果请求不能被正确执行,从站会返回一个错误响应,其中包含错误码指示问题所在。

在 Modbus RTU 通信协议中,从机通常是执行实际控制任务的物理设备,比如传感器、执行器、PLCs(可编程逻辑控制器)等。下面我将列举几个常用的从机类型,并提供各种功能码的请求与回复例子,同时解释报文中的含义。

常用从机类型

温度传感器 :用于测量温度,通常会通过保持寄存器或输入寄存器提供测量值。

电机控制器 :用于控制电机的启动、停止和速度调节,可能会使用线圈进行开 / 关控制和保持寄存器来设置参数。

PLC:可编程逻辑控制器,用于自动化控制生产过程,可以通过 Modbus RTU 读写其输入 / 输出接口和参数设置。

变频器 :用于调节电机的速度,通过读写保持寄存器来设置和读取运行参数。

功能码的请求与回复例子

读取保持寄存器(功能码 03)

请求 :从主站读取从站保持寄存器的值。例如,主站请求从一个 PLC(设备地址为 01)的保持寄存器开始,读取 3 个寄存器的值。

请求报文示例:01 03 00 64 00 03 76 87

01:从站地址。

03:功能码,表示读取保持寄存器。

00 64:起始寄存器地址(100)。

00 03:要读取的寄存器数量(3 个)。

76 87:CRC 校验码。

回复 :从站回复所请求的保持寄存器的值。

回复报文示例:01 03 06 00 0A 01 2B 00 0C 45 E8

01:从站地址。

03:功能码。

06:字节计数(读取 3 个寄存器,每个寄存器 2 字节,共 6 字节)。

00 0A:第一个寄存器的值(10)。

01 2B:第二个寄存器的值(299)。

00 0C:第三个寄存器的值(12)。

45 E8:CRC 校验码。

写单个寄存器(功能码 06)

请求 :主站设置从站单个保持寄存器的值。例如,主站设置一个温度控制器(设备地址为 02)的目标温度。

请求报文示例:02 06 00 01 04 D2 F8 14

02:从站地址。

06:功能码,表示写单个寄存器。

00 01:寄存器地址(1)。

04 D2:要写入的值(1234,假设这是一个温度值)。

F8 14:CRC 校验码。

回复 :从站确认写入的寄存器地址和值。

回复报文示例:02 06 00 01 04 D2 F8 14

报文结构与请求相同,确认已正确写入值。

这些例子展示了 Modbus RTU 协议中请求与回复报文的结构和含义。通过这些例子,可以看到 Modbus RTU 协议在工业通信中的灵活性和实用性,允许主站与从站之间进行高效的数据交换。

通信设置

Modbus RTU 通信设置包括波特率(例如 9600 或 19200 bps)、数据位(通常是 8 位)、停止位(1 或 2 位)、以及奇偶校验(无、奇校验或偶校验)。这些参数必须在通信设备间事先协商一致。

应用场景

Modbus RTU 广泛应用于各种工业自动化系统,如 PLC(可编程逻辑控制器)、温度控制器、变频器、传感器网络等。它使得不同制造商的设备能够通过标准化方式互相通信,极大地促进了工业设备的兼容性和互操作性。

总而言之,Modbus RTU 协议以其简单、高效和灵活的特点,在工业通信领域占据了重要地位。它不仅适用于小型简单系统,也能扩展以满足更复杂网络的需求。

正文完
 0