Modbus协议学习第三篇之协议通信规则
导语
本篇博客将深入介绍Modbus协议的一些内容,主要包括通讯方式和通讯模型的介绍
Modbus通讯方式
Modbus协议是单主机、多从机的通信协议,即同一时间,总线上只能有一个主设备,但可以有一个或者多个从设备(最多好像是247个?根据协议的地址长度来决定)。
通讯流程及规则:由主设备发起请求,从设备接收到消息后,再响应请求,返回主设备需要的数据。当从设备没有收到请求时,从设备不会主动向主设备发送数据。同时,从设备之间不能相互通信,主设备在同一时间只能启动一个Modbus通信事务。
通讯有两种方式:广播模式和单播模式。
广播模式:主设备向所有的从设备发送请求指令,从设备接收到广播指令后进行对应的事务处理,而不需要应答主机。(一般是写指令)
单播模式:主设备向单个从设备发送请求,从设备接收并处理请求后,向主设备返回一个响应报文。
Modbus通讯模型详解
根据专栏的之前一篇博文介绍的协议模型我们知道,主设备发送的请求报文中包括设备地址、功能码、数据域以及差错检测域。注意,当设备地址为全0时,表明主设备发送的是广播信息,总线上所有的从设备都会接收该信息,然后进行事务处理(但不会向主机发送响应)。当发送单播报文时,会在报文中指定从设备的地址(地址范围为1-247,主设备无地址),每个从设备均有唯一的地址标识,可以理解为ID或者局域网的IP地址。
主机设备发送的一条Modbus请求报文如下:

从设备的一条Modbus应答与上述请求报文类似,如果正常应答,数据段中包含设备收集的数据,如寄存器值或者状态,如果异常应答,功能码则为对应的异常码,数据段则包含描述错误信息的代码。
注意:根据Modbus的协议要求,所有的从设备都必须接收广播模式下的写指令,并且地址0被用作广播通信(即当主机发送的一条请求报文中,地址值为0时,该条报文被视作广播报文,所有的从设备都需要接收并且执行该报文的命令)
另外:对于串行链路,存在两种传输帧模式:ASCII模式和RTU(Remote Terminal Unit,远程终端单元)模式,但对于同一网络条件下, 只能选择其中一种模式,RTU传输效率更高。
写在最后
最近被其他事耽误了,学习写作有点挤不出时间,感觉本篇写的也是构思依托,大家就当做笔记来查阅吧。后面有空再更,大家想了解Modbus哪方面的知识呢?
相关文章:
Modbus协议学习第三篇之协议通信规则
导语 本篇博客将深入介绍Modbus协议的一些内容,主要包括通讯方式和通讯模型的介绍 Modbus通讯方式 Modbus协议是单主机、多从机的通信协议,即同一时间,总线上只能有一个主设备,但可以有一个或者多个从设备(最多好像是2…...
git仓库使用说明
Git软件使用 1.先下载git相关软件 下载地址: Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 …...
边缘计算和联邦学习的联系
1. 什么是边缘计算? 边缘计算(Edge Computing)是一种计算模型,其主要思想是将计算、存储和数据处理能力推送到离数据源近的边缘设备,而不是依赖于远程的云服务器。这样做的目的是减少数据传输延迟、提高响应速度&…...
机器学习算法理论:贝叶斯
贝叶斯定理对于机器学习来说是经典的概率模型之一,它基于先验信息和数据观测来得到目标变量的后验分布。具体来说,条件概率(也称为后验概率)描述的是事件A在另一个事件B已经发生的条件下的发生概率,公式表示为P(A|B)&a…...
229.【2023年华为OD机试真题(C卷)】手机App防沉迷系统(模拟-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-手机App防沉迷系统二.解题思路三.题解代码Pyth…...
关系运算符
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 补充: 如果要想对所选择的数据行进行控制,那么可以利用 WHERE 子句完成,此时的 SQL 语法结构变为如下形式 先系统性介绍下: ● 关系运算: >、、&…...
K8s-架构
一、K8s节点划分 K8s集群包含Master(控制节点)和Node(工作节点),应用部署在Node节点上。 集群架构图: 二、Master节点 Master节点分成四个组件:scheduler、ApiServer、Controller Manager、ETCD。类似三层结构,controller&#…...
C++ 并发编程 | 进程与线程
一、进程与线程 1、进程 1.1、定义 操作系统中最核心的概念就是进程,进程是对正在运行中的程序的一个抽象,是系统进行资源分配和调度的基本单位。进程是一种抽象的概念,一般由程序、数据集合和进程控制块三部分组成,如下&#x…...
基于Python实现身份证信息识别
目录 前言身份证信息识别的背景与意义自动识别身份证的需求实现环境与工具准备Python编程语言OpenCV图像处理库Tesseract OCR引擎身份证信息识别算法原理图像预处理步骤(图像裁剪、灰度化 、二值化、去噪)信息提取与解析Python代码实现通过OCR提取身份证号码代码解析身份证信息…...
深度学习记录--正则化(regularization)
什么是正则化? 正则化(regularization)是一种实用的减少方差(variance)的方法,也即避免过度拟合 几种正则化的方法 L2正则化 又被称为权重衰减(weight dacay) 在成本函数中加上正则项: 其中 由于在w的更新过程中会递减,即权…...
Java的便捷输入方法及解析
在 Java 中,有多种便捷的输入方法可以从用户那里获取输入。下面是一些常见的便捷输入方法及解析: 使用 Scanner 类:在上述示例中,首先导入了 java.util.Scanner 类,创建了一个 Scanner 对象,并使用 System…...
抖音矩阵云混剪系统源码(免授权版)多平台多账号一站式管理,附带系统搭建教程
搭建教程 MySQL 5.6 PHP 7.2 Apache 数据库名称 juzhen Nginx环境切换伪静态 1、解压安装包到项目根目录,找到application/database.php 更换自己的数据库密码 2、阿里云现有的配置不要动 其他按照文档进行添加 3、项目访问目录:public 4、域名…...
【Linux】权限的深度解析
前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记&a…...
c++函数怎么返回多个值
文章目录 使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。 struct Result {int value1;double value2;char value3; };Result myFunction() {Result r;r.value1 1;r.value2 2.0;r.value3 a;r…...
《剑指 Offer》专项突破版 - 面试题 15 : 字符串中的所有变位词(C++ 实现)
题目链接:LCR 015. 找到字符串中所有字母异位词 - 力扣(LeetCode) 题目: 输入字符串 s1 和 s2,如何找出字符串 s2 的所有变位词在字符串 s1 中的起始下标?假设两个字符串中只包含英文小写字母。例如&…...
03 SpringMVC响应数据之接收Cookie和请求头+原生API+共享域对象操作
下载postman,测试传json数据 1. 接收cookie 用CookieValue注解将cookie值绑定到控制器中的handler参数。 Controller类中的一个handler GetMapping("/CookieTest") public void handle(CookieValue("cookie的id(name)") String cookie) { //... }2. 接收…...
数据仓库(3)-模型建设
本文从以下9个内容,介绍数据参考模型建设相关内容。 1、OLTP VS OLAP OLTP:全称OnLine Transaction Processing,中文名联机事务处理系统,主要是执行基本日常的事务处理,比如数据库记录的增删查改,例如mysql、oracle…...
交换机配置及网络测试
实验环境 拓扑图 Ip规划表 部门 主机数量 网络地址 子网掩码 网关 可用ip Vlan 市场部 38 192.168.131.0 255.255.255.0 192.168.131.1 2-254 11 研发部 53 192.168.132.0 255.255.255.0 192.168.132.1 2-254 12 财务部 9 192.168.133.0 255.255.255…...
贪吃蛇游戏
文章目录 前言一.Win32API1.1GetStdHandle1.2GetConsoleCursorInfo1.3SetConsoleCursorInfo1.4SetConsoleCursorPosition1.5GetAsyncKeyState1.6setlocale二.游戏设计三.GameStart3.1蛇的创建3.2分文件3.3控制台设置3.4WelComeToGame3.5CreateMap3.6InitSnack3.7CreateFood 四.…...
DPDK trace 的简单使用
文章目录 前言trace的简单使用 前言 日志用于记录不太频繁,比较高level的事情。trace记录频繁发生的事情,它的开销低。 trace可以在运行时,通过参数控制是否启用;可以在任何时间点,将trace记录的缓冲区保存到文件系统…...
3个实用方案解决百度网盘限速问题:高效下载工具使用指南
3个实用方案解决百度网盘限速问题:高效下载工具使用指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 百度网盘作为国内主流云存储服务,其资源分享功…...
CodeHike终极指南:10个提升代码演示质量的专业技巧
CodeHike终极指南:10个提升代码演示质量的专业技巧 【免费下载链接】codehike Build rich content websites with Markdown and React 项目地址: https://gitcode.com/gh_mirrors/co/codehike CodeHike是一个强大的工具,它允许开发者使用Markdown…...
城通网盘下载慢到心碎?这个开源工具让你1秒获取高速直连地址
城通网盘下载慢到心碎?这个开源工具让你1秒获取高速直连地址 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经遇到过这样的情况:从城通网盘下载一个重要的学习资料&…...
USART串口通信
一、串口 USART USART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步 / 异步收发器) 是一种全双工、串行、逐位传输的通信接口,核心是把单片机 / 处理器的并行数据转为串行数据发送,或把串行数据…...
YOLOv10实战:用官方镜像5分钟搭建智能监控原型系统
YOLOv10实战:用官方镜像5分钟搭建智能监控原型系统 想快速验证一个智能监控的想法,却卡在繁琐的环境配置和模型部署上?从安装CUDA、配置Python环境,到调试各种依赖库,可能半天时间就过去了,真正的业务逻辑…...
OpenClaw代码助手:Qwen3-14b_int4_awq实现的自动补全与错误检查
OpenClaw代码助手:Qwen3-14b_int4_awq实现的自动补全与错误检查 1. 为什么需要本地化代码助手? 作为一名长期与代码打交道的开发者,我一直在寻找能够提升编程效率的工具。传统的IDE插件虽然能提供基础补全,但存在几个痛点&#…...
BRV下拉刷新与上拉加载:SmartRefreshLayout集成完整教程
BRV下拉刷新与上拉加载:SmartRefreshLayout集成完整教程 【免费下载链接】BRV [永久维护] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大 项目地址: https://gitcode.com/gh_mirrors/br/BRV BRV(Android 快速构建 RecyclerView)…...
【数字孪生实战案例】如何给电子地图标记点实现三维点位同款的视角切换效果?~山海鲸可视化
在可视化项目中,常规电子地图标记点仅支持基础点位标注,无法联动视角切换;本文讲解如何为地图标记点复刻三维标记的视角跳转能力,实现点击点位即可一键切换预设场景视角。 1.在左侧组件库添加“GIS电子地图(基础&#…...
OpenClaw+千问3.5-9B电商运营:自动生成商品详情与回复咨询
OpenClaw千问3.5-9B电商运营:自动生成商品详情与回复咨询 1. 为什么选择OpenClaw千问3.5-9B做电商自动化 去年双十一期间,我负责运营的个人店铺单日咨询量突破300条,手忙脚乱到凌晨三点还在回复客户问题。正是这段经历让我开始寻找自动化解…...
别光调包了!在EduCoder上通关‘卷积神经网络实现’后,我搞懂了im2col加速的奥秘
从EduCoder实战到工业级优化:im2col如何让卷积计算快10倍 在EduCoder平台完成"卷积神经网络实现"实验时,很多同学会疑惑:为什么提供的代码模板里要用im2col这个看似复杂的函数?直接写四重循环实现卷积不是更直观吗&…...
