Modbus RTU(Remote Terminal Unit)与RS-485协议介绍(主站设备(Master)、从站设备(Slave))

文章目录

  • 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那么常见。


  1. Modicon, “Modbus Protocol Reference Guide”, June 1996. Link ↩︎

  2. Schneider Electric, “Modbus and ION Technology”, July 2004. Link ↩︎

  3. Modbus Organization, “Modbus Messaging on TCP/IP Implementation Guide V1.0b”, October 2006. Link ↩︎

  4. Simply Modbus, “About Modbus RTU”, 2021. Link ↩︎

  5. Maxim Integrated, “Understanding RS-485: 7 Essential Facts About RS‑485 Data Communication”, November 2018. Link ↩︎

  6. Texas Instruments, “Guide to RS-485 data transmission”, December 2011. Link ↩︎

  7. Real Time Automation, “The ABCs of Modbus RTU”, February 2018. Link ↩︎

  8. Modbus Organization, “Modbus Messaging on TCP/IP Implementation Guide V1.0b”, October 2006. Link ↩︎

  9. Schneider Electric, “Modbus and ION Technology”, July 2004. Link ↩︎

  10. Simply Modbus, “About Modbus ASCII”, 2021. Link ↩︎

  11. Schneider Electric, “Modbus Plus Network Planning and Installation Guide”, 2015. Link ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/112363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts的折线图,在点击图例后,提示出现变化,不报错。tooltip的formatter怎么写

在点击图例的年后,提示框会相应的变化,多选和单选都会响应变化。tooptip的重度在formatter tooltip:{show:true,trigger:"axis",alwaysShowContent:true,triggerOn:"mousemove",textStyle:{color:"#fff"},backgroundColor…

Dumi从0到1搭建属于自己的组件库

项目地址在末尾 初始化组件库 Dumi(官网) 使用dumi可以在开发组件库的同时,生成文档和demo 创建一个目录 mkdir test_demo cd test_demo使用dumi脚手架创建组件库 npx umijs/create-dumi-lib --site安装依赖,运行展示 npm …

Mock数据:单元测试中的心灵鸡汤

在当今的软件开发领域,质量控制已经成为了一个不可或缺的环节。为了确保软件的稳定性和可靠性,开发者们投入了大量的时间和精力进行各种测试。其中,单元测试作为最基础的测试方法,其重要性不言而喻。然而,单元测试中的…

插件化原理

插件化技术和热修复技术都属于动态加载,从普及率的角度来看,插件化技术还没有热修复的普及率高,主要原因是占大多数的中小型应用很少也没有必要去采用插件化技术。 Android P preview(Android 9)开始限制调用隐藏 API…

解决 010Edittor 复制问题

遇到的问题: 使用010Edittor做CTF题目的时候 复制Nex Text File 复制的内容在右边 解决方法: 如果要复制到左边是复制的问题 需要ctrlshift c 然后ctrlshift v粘贴即可。 具体操作如下: 这边复制过来就可以看到是RAR的文件格式另存为 修…

肖sir__mysql之索引__010

mysql之索引 一、什么是索引? 索引是一种数据结构设计 一个索引是存储的表中数据结构; 索引是建立在表字段上, 索引包含了一列值,这个值保存在一个数据结构中 二、索引作用 1、保证数据记录的唯一性 2、实现表与表之间的参照性 3…

Python入门-pack和unpack的用法

struct.calcsize(format) 返回与格式字符串format相对应的结构体的大小(以及由 生成的字节对象的大小 ) 使用大端顺序打包和解包三种不同大小的整数: from struct import *pack(">bhl", 1, 2, 3)unpack(>bhl, b\x01\x00\x…

ETH01-ETH驱动的配置01

总目录链接==>> AutoSAR入门和实战系列总目录 总目录链接==>> AutoSAR BSW高阶配置系列总目录 1 配置参数 /MICROSAR/Eth_Enet/Eth/EthConfigSet/EthCtrlConfig/EthTxBufConfig/EthTxBufTotal/MICROSAR/Eth_Enet/Eth/EthConfigSet/EthCtrlConfig/EthTxBufConf…

【数据结构】C++实现二叉搜索树

二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有结点的值都小于根结点的值。若它的右子树不为空,则右子树上所有结点的值都大于根结…

深度学习——线性神经网络一

深度学习——线性神经网络一 文章目录 前言一、线性回归1.1. 线性回归的基本元素1.1.1. 线性模型1.1.2. 损失函数1.1.3. 解析解1.1.4. 随机梯度下降1.1.5. 用模型进行预测 1.2. 向量化加速1.3. 正态分布与平方损失1.4. 从线性回归到深度网络 二、线性回归的从零开始实现2.1. 生…

charles报错Not allowed GET http://xx.xx.com/xx - connection dropped

现象:手机抓包时,charles提示Not allowed GET http://xx.xx.com/xx - connection,请求status显示block 排查原因: 1、换手机连接抓包工具,现象也是同上,可以排除手机的原因 2、检索网络上关于报错的解决方…