文章目录
- Modbus RTU与RS-485协议介绍
- 一、引言
- 二、Modbus RTU 协议介绍
- 2.1 Modbus RTU 协议简介
- 2.2 Modbus RTU 协议帧结构
- 主站设备、从站设备与从站设备地址
- 2.3 Modbus RTU 协议举例
- 三、RS-485 协议介绍
- 3.1 RS-485 协议简介
- 3.2 RS-485 物理连接方式
- 3.3 RS-485 与 Modbus RTU 的关系
- 四、Modbus TCP、Modbus RTU、Modbus ASCII、Modbus PLUS区别
- Modbus TCP
- Modbus RTU
- Modbus ASCII
- Modbus PLUS
Modbus RTU与RS-485协议介绍
参考文章:ModBus协议
参考文章:一篇文章了解 RS485 和 MODBUS 的区别,它们有什么不同?
一、引言
Modbus RTU和RS-485是工业通信中常用的两种协议。Modbus RTU 是一种数据表示协议,而 RS-485 则是物理传输标准。尽管这两者有时被并列讨论,但它们在通信系统中的角色却大不相同。以下内容将详细分析这两种协议,并解释它们如何结合使用。
二、Modbus RTU 协议介绍
2.1 Modbus RTU 协议简介
Modbus RTU(Remote Terminal Unit)协议是Modbus协议的一种,主要应用于工业自动化系统中。它以二进制形式传输数据,并采用CRC校验方式确保数据的正确性1。
2.2 Modbus RTU 协议帧结构
Modbus RTU协议的数据帧结构如下2:
[设备地址][功能码][数据][CRC校验]
其中:
- 设备地址:一个字节,表示从站设备的地址;
- 功能码:一个字节,定义了主机需要执行的操作类型;
- 数据:n个字节,该部分的内容和长度取决于功能码;
- CRC校验:两个字节,用于错误检测。
主站设备、从站设备与从站设备地址
从站设备(Slave设备):在Modbus RTU协议中,通信网络包含一个主站设备(Master)和多个从站设备(Slave)。这种配置被称为主-从模式或者客户端-服务器模式。
从站设备,也称为Slave设备,是一种被动的设备,它不会自行发送数据,只有当接收到主站设备的请求时,才会响应并返回相应的数据3。这些数据可能包括传感器读数、状态信息、诊断信息等。
从站设备的具体实现可以非常多样,包括各类工业控制设备如PLC(Programmable Logic
Controller),智能仪表,驱动器,以及其他任何需要与主站设备通信的设备。在一个典型的Modbus RTU网络中,可能存在一个主站设备和多个从站设备。主站设备通过广播地址或特定的从站地址,来向所有从站设备或某个特定的从站设备发送指令或请求数据。
从站设备地址:在Modbus RTU协议中,从站设备的地址是用来识别网络中的特定设备的唯一标识符。这个地址被编码在每一个Modbus消息帧的开始部分。
对于RS-485通信系统中的Modbus RTU协议,从站设备的地址范围为0到247。地址0通常被保留作为广播地址,当主站设备需要向所有从站设备发送消息时,会使用此广播地址。而地址1至247则被分配给单个从站设备,以便主站设备能够与指定的从站设备进行通信4。
需要注意的是,每个从站设备的地址必须在整个Modbus网络中是唯一的。如果有两个或更多的设备被配置了相同的地址,将会导致通信冲突和数据错误。
2.3 Modbus RTU 协议举例
假设主机需要读取从站设备1的保持寄存器30029和30030,那么对应的Modbus RTU帧如下:
01 03 00 1C 00 02 B8 44
解析:
- 01:设备地址;
- 03:功能码(读取保持寄存器);
- 00 1C:起始寄存器地址(转换为十进制就是28,再加上基地址30001等于30029);
- 00 02:读取的寄存器数量(2个);
- B8 44:CRC校验。
三、RS-485 协议介绍
3.1 RS-485 协议简介
RS-485 是一种差分信号传输方式,其主要优点在于具有较高的抗电磁干扰能力和传输距离5。
3.2 RS-485 物理连接方式
RS-485 通常采用两线半双工或四线全双工方式进行连接。其中,两线半双工需要通过数据方向引脚(DE/RE)控制数据的收发6。
3.3 RS-485 与 Modbus RTU 的关系
RS-485 仅定义了物理层的标准,而 Modbus RTU 定义了如何封装数据并进行通信。因此,Modbus RTU 常常运行在 RS-485 上,通过 RS-485 进行物理通信7。
简单来说,你可以将RS-485比作运输公司,负责将包裹(数据)从一个地方运到另一个地方,而Modbus RTU则像是包裹内的商品清单,描述了包裹里有什么东西(数据的结构和含义)。如果没有RS-485,你无法将数据有效地发送出去;如果没有Modbus RTU,即使数据被发送出去,接收方也无法理解数据的含义。因此,这两种协议通常会一起使用,以确保数据能够准确、可靠地从一个设备传输到另一个设备,并且接收设备能够正确理解数据的含义。
四、Modbus TCP、Modbus RTU、Modbus ASCII、Modbus PLUS区别
Modbus协议有多种形式,主要包括Modbus TCP、Modbus RTU以及Modbus ASCII和Modbus PLUS。这些协议在数据编码、传输介质、通信方式等方面存在一些差异。
Modbus TCP
Modbus TCP是基于TCP/IP的Modbus协议,用于以太网通信。它将Modbus消息封装在TCP/IP数据包中进行传输,使得Modbus能在现代网络设备上使用,例如通过Wi-Fi或者以太网8。其优点是可以使用现有的网络设备和架构,并且可以支持更大的设备数量(最多65536个设备)。
Modbus RTU
Modbus RTU(Remote Terminal Unit)是最常见的Modbus实现之一,它以二进制形式编码数据,因此相比于ASCII模式具有更高的通信速度和效率。通常使用RS-232或RS-485作为物理层接口9。它的优点是传输效率高,但缺点是人眼无法直接读取二进制数据。
Modbus ASCII
Modbus ASCII与Modbus RTU类似,都是串行通信协议,但Modbus ASCII采用ASCII字符进行数据编码。相较于RTU,ASCII格式的数据更易于人类阅读和调试,但通信速度较慢10。
Modbus PLUS
Modbus PLUS是一种专有的、高速的(1 Mbps)令牌传递网络,使用RS-485进行通信。这种协议特别适合于需要高通信速度和大数据量传输的应用11。但它需要特殊的接口卡和电缆,并且不如Modbus RTU和TCP那么常见。
Modicon, “Modbus Protocol Reference Guide”, June 1996. Link ↩︎
Schneider Electric, “Modbus and ION Technology”, July 2004. Link ↩︎
Modbus Organization, “Modbus Messaging on TCP/IP Implementation Guide V1.0b”, October 2006. Link ↩︎
Simply Modbus, “About Modbus RTU”, 2021. Link ↩︎
Maxim Integrated, “Understanding RS-485: 7 Essential Facts About RS‑485 Data Communication”, November 2018. Link ↩︎
Texas Instruments, “Guide to RS-485 data transmission”, December 2011. Link ↩︎
Real Time Automation, “The ABCs of Modbus RTU”, February 2018. Link ↩︎
Modbus Organization, “Modbus Messaging on TCP/IP Implementation Guide V1.0b”, October 2006. Link ↩︎
Schneider Electric, “Modbus and ION Technology”, July 2004. Link ↩︎
Simply Modbus, “About Modbus ASCII”, 2021. Link ↩︎
Schneider Electric, “Modbus Plus Network Planning and Installation Guide”, 2015. Link ↩︎