当前位置: 首页 > news >正文

Modbus协议原理

一、背景

Modbus是一种广泛应用于工业自动化和控制系统中的通信协议,由Modicon于1979年开发。有了它,不同厂商生产的控制设备可以连成工业网络, 进行集中控制。Modbus由于其简单性和可靠性,成为工业领域最常用的协议之一。

二、协议概述

Modbus协议遵循主从架构(Master-Slave Architecture)。在通信网络中,通常有一个主设备(Master)和一个或多个从设备(Slave)。主设备负责发出请求,从设备接收并响应请求。

Modbus协议有多个版本,主要包括:

  1. Modbus RTU(Remote Terminal Unit):基于串行通信(如RS-232、RS-485)的协议。数据以二进制格式发送,传输效率高,通常用于串行链路。

  2. Modbus ASCII:与Modbus RTU类似,但数据以ASCII码格式发送,传输速率较低,但易于调试。

  3. Modbus TCP/IP:基于以太网的版本,采用TCP/IP协议栈来传输Modbus数据包,适用于局域网或广域网环境。它允许更灵活的网络拓扑,并支持更多设备接入。

三、通信帧结构

Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上 的 Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域,通用Modbus帧协议如下图所示:

Modbus通信的基本单位是“帧”,一帧包括以下几个部分:

  • 地址域:用于标识目标设备的地址。
  • 功能码(Function Code):定义要执行的操作,如读取寄存器、写入数据等。
  • 数据:根据功能码携带相应的数据(如寄存器地址、寄存器值等)。
  • 校验码:用于确保数据传输的完整性(在Modbus RTU和ASCII中使用)。

常用功能码

  • 01:读取线圈状态
  • 02:读取离散输入
  • 03:读取保持寄存器
  • 04:读取输入寄存器
  • 05:写单个线圈
  • 06:写单个寄存器
  • 15:写多个线圈
  • 16:写多个寄存器

 

 四、报文格式

读数据

写数据

五、实例

Modbus-RTU协议一般用的最多功能码就是03和06,大部分都是用modbus来查询传感器上的信息用03查询功能码,如果需要修改传感器寄存器的值就用06修改功能码。
例如:现在我是主机,我要查询从机地址为01的数据。我需要发送以下数据:
下面展示查询功能码0x03:

主机发送: 01 03 00 00 00 01 84 0A
从机回复: 01 03 02 19 98 B2 7E

 

返回数据

参考:

Modbus初学者教程 | 博客

Modbus通信协议_modbus协议-CSDN博客

http://www.xdnf.cn/news/642097.html

相关文章:

  • 【Hive 开发进阶】窗口函数深度解析:OVER/NTILE/RANK 实战案例与行转列高级技巧
  • Day02
  • springboot日志
  • NotePad++编辑Linux服务器文档
  • 安全权限管理:从零到精通Android动态权限请求机制
  • CV中常用Backbone-3:Clip/SAM原理以及代码操作
  • Spring Boot 项目中常用的 ORM 框架 (JPA/Hibernate) 在性能方面有哪些需要注意的点?
  • 2025年- H50-Lc158 --25. k个一组翻转链表(链表,双指针,虚拟头节点)--Java版
  • Muduo网络库流程分析
  • quill 富文本多张图片排序
  • SRS流媒体服务器之RTC播放环境搭建
  • 揭开C语言指针的神秘面纱:地址、变量与“指向”的力量
  • systemverilog的单精度浮点和双精度浮点
  • AI测试怎么做投入产出比分析以及人员分配?
  • YOLOV8涨点技巧之DSS模块(一种轻量化火灾检测模型)
  • Unity引擎源码-物理系统详解-其三
  • C++23 std::out_ptr 和 std::inout_ptr:提升 C 互操作性
  • 锁与死锁的诊断:如何通过 SHOW ENGINE INNODB STATUS 解锁瓶颈
  • 加密货币投资亏损后,能否以“欺诈”或“不当销售”索赔?
  • 如何在 Windows 11 上安装 Ubuntu 20.04 WSL2
  • 《红警2000》游戏信息
  • YOLOv8源码修改(5)- YOLO知识蒸馏(下)设置蒸馏超参数:以yolov8-pose为例
  • Karakeep | 支持Docker/NAS 私有化部署!稍后阅读工具告别云端依赖,让知识收藏更有序
  • 机器学习---特征降维
  • C++指针与引用:const修饰的奥秘
  • 视频剪辑SDK定制开发技术方案与报价书优雅草卓伊凡
  • pinia状态管理使用
  • 星际旅行家(广度优先搜索+邻接表)
  • 直流电机 pwm 调速
  • 第五十一节:增强现实基础-单应性矩阵计算