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.rhkb.cn/news/135870.html

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

相关文章

LeetCode-热题100-笔记-day31

105. 从前序与中序遍历序列构造二叉树https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历&#xff0c…

全国职业技能大赛云计算--高职组赛题卷④(容器云)

全国职业技能大赛云计算--高职组赛题卷④(容器云) 第二场次题目:容器云平台部署与运维任务1 Docker CE及私有仓库安装任务(5分)任务2 基于容器的web应用系统部署任务(15分)任务3 基于容器的持续…

企业架构LNMP学习笔记61

Nginx作为tomcat的前段反向代理: 在实际业务环境中,用户是直接通过域名访问,基于协议一般是http、https等。默认tomcat运行在8080端口。一般会通过前端服务器反向代理到后端的tomcat的方式,来实现用户可以通过域名访问tomcat的we…

2023全新TwoNav开源网址导航系统源码 | 去授权版

2023全新TwoNav开源网址导航系统源码 已过授权 所有功能可用 测试环境:NginxPHP7.4MySQL5.6 一款开源的书签导航管理程序,界面简洁,安装简单,使用方便,基础功能免费。 TwoNav可帮助你将浏览器书签集中式管理&#…

Java面试八股文宝典:初识数据结构-数组的应用扩展之HashMap

前言 除了基本的数组,还有其他高级的数据结构,用于更复杂的数据存储和检索需求。其中,HashMap 是 Java 集合框架中的一部分,用于存储键值对(key-value pairs)。HashMap 允许我们通过键来快速查找和检索值&…

【数据结构】树的存储结构;树的遍历;哈夫曼树;并查集

欢~迎~光~临~^_^ 目录 1、树的存储结构 1.1双亲表示法 1.2孩子表示法 1.3孩子兄弟表示法 2、树与二叉树的转换 3、树和森林的遍历 3.1树的遍历 3.1.1先根遍历 3.1.2后根遍历 3.2森林的遍历 3.2.1先序遍历森林 3.2.2中序遍历森林 4、树与二叉树的应用 4.1哈夫曼树…

【Linux网络编程】Socket-TCP实例

该代码利用socket套接字建立Tcp连接,包含服务器和客户端。当服务器和客户端启动时需要把端口号或ip地址以命令行参数的形式传入。服务器启动如果接受到客户端发来的请求连接,accept函数会返回一个打开的socket文件描述符,区别于监听连接的lis…

【校招VIP】前端网络之路由选择协议

考点介绍 当两台非直接连接的计算机需要经过几个网络通信时,通常就需要路由器。路由器提供一种方法来开辟通过一个网状联结的路径。在图R-9中标示了几条存在于洛杉矶和纽约办公室的路径。这种网状网络提供了冗余路径以调整通信负载或倒行链路,通常有一条…

灰狼算法优化ICEEMDAN参数,四种适应度函数任意切换,最小包络熵、样本熵、信息熵、排列熵...

今天给大家带来一期由灰狼算法优化ICEEMDAN参数的MATLAB代码。 优化ICEEMDAN参数的思想可以参考该文献: [1]陈爱午,王红卫.基于HBA-ICEEMDAN和HWPE的行星齿轮箱故障诊断[J].机电工程,2023,40(08):1157-1166. 文献原文提到:由于 ICEEMDAN 方法的分解效果取…

【数据结构】队列知识点总结--定义;基本操作;队列的顺序实现;链式存储;双端队列;循环队列

欢迎各位看官^_^ 目录 1.队列的定义 2.队列的基本操作 2.1初始化队列 2.2判断队列是否为空 2.3判断队列是否已满 2.4入队 2.5出队 2.6完整代码 3.队列的顺序实现 4.队列的链式存储 5.双端队列 6.循环队列 1.队列的定义 队列(Queue)是一种先…

Vue3记录

Vue3快速上手 1.Vue3简介 2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王)耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址:https://github.com/vuejs/vue-next/releas…

软件需求怎么写?

前言:一般来说,软件产品的需求人员的主要输出物就是软件需求,如果这个软件产品就XX系统,人们口中的“系统需求”和“软件需求”就没有什么区别了。在车企行业,推行这ASPICE体系,在这个体系中明确申请了系统…

DMNet复现(一)之数据准备篇:Density map guided object detection in aerial image

一、生成密度图 密度图标签生成 采用以下代码,生成训练集密度图gt: import cv2 import glob import h5py import scipy import pickle import numpy as np from PIL import Image from itertools import islice from tqdm import tqdm from matplotli…

哈希及哈希表的实现

目录 一、哈希的引入 二、概念 三、哈希冲突 四、哈希函数 常见的哈希函数 1、直接定址法 2、除留余数法 五、哈希冲突的解决 1、闭散列 2、开散列 一、哈希的引入 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找…

浅析三维模型3DTile格式轻量化处理常见问题与处理措施

浅析三维模型3DTile格式轻量化处理常见问题与处理措施 三维模型3DTile格式的轻量化处理是大规模三维地理空间数据可视化的关键环节,但在实际操作过程中,往往会遇到一些问题。下面我们来看一下这些常见的问题以及对应的处理措施。 变形过大:压…

Vue入门--vue的生命周期

一.什么是Vue 二.Vue的简介 官方网址 特点 三. 前后端的分离 重大问题 优势 4.Vue入门 定义一个管理边界 ​编辑 测试结果 vue的优势 ​编辑 测试结果 5.Vue的生命周期 vue的生命周期图 ​编辑建立一个html 测试结果 一.什么是Vue Vue是一种流行的JavaScript前端框…

【Graph Net学习】GNN/GCN代码实战

一、简介 GNN(Graph Neural Network)和GCN(Graph Convolutional Network)都是基于图结构的神经网络模型。本文目标就是打代码基础,未用PyG,来扒一扒Graph Net两个基础算法的原理。直接上代码。 二、代码 …

无涯教程-JavaScript - MDETERM函数

描述 MDETERM函数返回数组的矩阵行列式。 语法 MDETERM (array)争论 Argument描述Required/OptionalArrayA numeric array with an equal number of rows and columns.Required Notes 数组可以作为单元格范围给出,如A1:C3;作为数组常量,如{1,2,3; 4,5,6; 7,8,9}&#xff1…

【刷题】蓝桥杯

蓝桥杯2023年第十四届省赛真题-平方差 - C语言网 (dotcpp.com) 初步想法,x y2 − z2(yz)(y-z) 即xa*b,ayz,by-z 2yab 即ab是2的倍数就好了。 即x存在两个因数之和为偶数就能满足条件。 但时间是(r-l)*x&am…

服务网格和微服务架构的关系:理解服务网格在微服务架构中的角色和作用

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…