Modbus协议学习第一篇之基础概念

news2024/9/30 9:35:03

什么是“协议”

        大白话解释:协议是用来正确传递消息数据而设立的一种规则。传递消息的双方(两台计算机)在通信时遵循同一种协议,即可理解彼此传递的消息数据。

Modbus协议模型

        Modbus协议模型较为简单,使用一种称为应用数据单元ADU(Application Data Unit)的模型,而应用数据单元模型ADU又由地址域+PDU+校验域组成。

        地址域:设备的地址标识。

        PDU:协议数据单元(Modbus协议模型的核心),由功能码+数据组成。

        校验域:用于检查传输的数据是否准确(数据在链路中传输有可能会失真,如0变1,1变0,接收端可通过校验域来检查是否有失真的情况)

        具体协议模型如图所示:

Modbus协议运行机制

        Modbus协议的通信双方一般被称之为主机设备(客户端)和从机设备(服务端,提供数据)。主机设备创建Modbus应用数据单元ADU形成查询报文,其中的功能码是指向从机设备表明将要执行哪种操作,比如读数据等。功能码占用一个字节,有效的范围为1-255(其中128-255为异常响应保留)。查询报文创建完毕,主机设备向从机设备发送报文,从机设备接收到该报文,根据功能码来执行相应操作,并将响应报文返回给主机设备,如图所示(响应正常情况)。

专业术语

        常用专业术语如下:

        Master:主设备

        Slave:从设备

        Client:客户端

        Server:服务端

        ADU:应用数据单元(Application Data Unit)

        PDU:协议数据单元(Protocol Data Unit)

        MSB:最高有效位(Most Significant Bit)

        LSB:最低有效位(Least Significant Bit)

        MBAP:Modbus应用协议(ModBus Application Protocol)

        PLC:可编程逻辑控制器(Programmable Logic Controller)

写在最后

        因工作需要而接触Modbus,正在恶补知识,利用博客的方式来加深理解和记忆,同时希望同行大佬能一起交流。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于群晖ARPL界面能出现ip但是使用Synology Assistant搜索不到ip问题 及解决方法

原文链接:https://www.mi-d.cn/7303 当进入该界面后 提示IP无法访问,使用Synology Assistant搜索不到ip。这不一定是网卡驱动的问题,大概率是kernel崩溃掉了。引起kernel崩溃的问题也很多这个不好定位,如果你无法定位问题可以看文…

Apache ActiveMQ RCE漏洞复现

Apache ActiveMQ RCE漏洞复现 1、 产品简介 ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中…

使用斐波那契(Fibonacci)数列来测试各大语言的性能

笔者使用最多的语言是C,目前项目中在使用Go,也使用过不少其它语言,像Erlang,Python,Lua,C#等等。最近看到C#夺冠,首次荣获 TIOBE 年度编程语言,同时也看到网上有不少Java与C#之争的文…

jdk、tomcat及mysql的安装和windows项目部署

目录 一、jdk安装 1.1 安装jdk 1.2 配置jdk环境 1.3 配置成功 二、tomcat安装 三、MySQL安装 3.1 解压安装文件夹 3.2改变my.ini文件位置 3.3编辑my.ini文件 3.4 打开cmd 输入 mysqld install 3.5初始化mysql服务端 3.6 sql服务启动mysql 3.7 登录mysql 3.8 修改密…

PPT插件-大珩助手-导出长图

导出长图 在日常交稿的时候,为便于交流,或不希望别人修改,需要将PPT存成也一张页面连续的长图,因此开发了导出长图功能,另外还可以将选中的幻灯片导出为长图,导出pdf等功能。 软件介绍 PPT大珩助手是一款…

MySQL面试题 | 04.精选MySQL面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【第二课课后作业】书生·浦语大模型实战营-轻松玩转书生·浦语大模型趣味Demo

目录 轻松玩转书生浦语大模型趣味Demo课后作业1. 基础作业1.1 使用 InternLM-Chat-7B 模型生成 300 字的小故事:1.2 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地 2. 进阶作业2.…

新书速览|从零开始大模型开发与微调:基于PyTorch与ChatGLM

详细讲解大模型基本理论、算法、程序实现与应用实战,揭示大模型开发与微调技术 1 本书内容 大模型是深度学习自然语言处理皇冠上的一颗明珠,也是当前AI和NLP研究与产业中最重要的方向之一。本书使用PyTorch 2.0作为学习大模型的基本框架,以C…

[自动驾驶算法][从0开始轨迹预测]:一、坐标和坐标系变换

既然要从0开始轨迹预测,那从哪开始写起呢?回想下自己的学习历程,真正有挑战性的不是模型结构,不是繁琐的训练和调参,而是数据的制作!!! 笔者自认为不是一个数学基础牢固的人&#xf…

【机器学习300问】5、什么是强化学习?

我将从三个方面为大家简明阐述什么是强化学习,首先从强化学习的定义大家的了解强化学习的特点,其次学习强化学习里特殊的术语加深对强化学习的理解,最后通过和监督学习与无监督学习的比较,通过对比学习来了解强化学习。 一、强化…

怎么提高客服满意度?

相应速度 1.即使平时回复手速很快,但一旦接待量一上来脑子转不过来,或是顾客咨询了一些自己不知道的问题,就知道快捷语有多重要。 2.熟悉快捷短语。(针对顾客提出的问题能快速给出反应。) 3. 安装快捷回复软件。(使用[客服宝]快捷回复软件…

【JAVA】谈谈 ReadWriteLock 和 StampedLock

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 ReadWriteLock(读写锁) 基本原理: 接口和实现: 用法示例: StampedL…

【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】

前言 大家好吖,欢迎来到 YY 滴C考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《…

Linux安装Rdkafka PHP 扩展(Kafka使用教程)

以是centos为例 #可以查看php版本 php -v#查看php安装的扩展库 php -m 1、首先,确保你已经安装了 PHP 和相关的开发工具。你可以使用以下命令来安装它们: sudo yum install php-devel 中间会问你是否ok,输入y回车,出现complete…

基于SSM+vue的新生报到服务管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

C#,卡特兰数(Catalan number,明安图数)的算法源代码

一、概要 卡特兰数(英语:Catalan number),又称卡塔兰数、明安图数,是组合数学中一种常出现于各种计数问题中的数列。以比利时的数学家欧仁查理卡特兰的名字来命名。1730年左右被蒙古族数学家明安图使用于对三角函数幂…

基于matlab实现AUTOSAR软件开发---答疑5

最近还是经常有人反馈mode switch的枚举搞不定,我在统一回复下,希望可以解决大家的疑问 运行这个脚本即可,运行成功后,就已经存在于SIMULINK系统里了,程序中可以直接识别到的, 但是运行之后 在matlab基础工作区里也是看不到枚举的,这点大家要注意,不要纠结这个,实际…

神经网络|张量tensor(待完善)

文章目录 tensor/张量什么是tensor?如何用代码实现tensortensor在神经网络中的应用 其他 tensor/张量 什么是tensor? 张量是用来探究一个点在各个切面(一共三个切面)和各个方向(x,y,z三个方向&…

微服务接口工具Swagger2

##1、什么是Swagger? # 官网 https://swagger.io/核心功能 生成接口说明文档生成接口测试工具 2、SpringBoot集成Swagger2 1&#xff09;、添加依赖 <!-- swagger2 --><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><depen…

【qt】sdk写pro写法,cv,onnx,cudnn

我的sdk在OpenCV003项目里&#xff1a; pro中添加 CONFIG(release, debug|release) {LIBS -L$$PWD/sdk/onnxruntime-x64-gpu/lib/ -lonnxruntimeLIBS -L$$PWD/sdk/onnxruntime-x64-gpu/lib/ -lonnxruntime_providers_cudaLIBS -L$$PWD/sdk/onnxruntime-x64-gpu/lib/ -lon…