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 协议以其简单、高效和灵活的特点,在工业通信领域占据了重要地位。它不仅适用于小型简单系统,也能扩展以满足更复杂网络的需求。