Modbus协议详解1:Modbus的简介

news2024/11/16 19:11:25

 

Modbus协议是应用非常广泛的一种通信协议规约,也是最早应用在工业现场的协议。

早在1979年出现工业串行链路以来,Modbus的应用就开始普遍起来,它使得各种自动化设备之间的互相通信得到实现,做嵌入式产品开发的朋友应该不会陌生,Modbus的身影是随处可见的。并且在中国Modbus都已经形成了规范的标准,都有相应的国标的文件可以查阅到的。

有兴趣的朋友可以查阅标准文件:

《GBT 19582.1-2008 基于Modbus协议的工业自动化网络规范  第1部分:Modbus应用协议》
《GBT 19582.2-2008 基于Modbus协议的工业自动化网络规范  第2部分:Modbus协议在串行链路上的实现指南》
《GBT 19582.3-2008 基于Modbus协议的工业自动化网络规范  第3部分:Modbus协议在TCP∕IP上的实现指南》

虽然有标准文件的存在,查阅也很方便,但是对初学者和从没接触过Modbus的朋友来说,想要用于开发需要花费不少的时间去研究国标文件,费时间也费脑子。所以我想根据自己在项目开发中使用Modbus协议的经验对该协议进行拆解,有顺序的讲解Modbus的重要内容,帮助大家快速理解Modbus协议,可以做到快速应用于项目中进行协议的开发。

灵魂一问:Modbus是什么?

Modbus本质上是一种应用层上的报文协议,属于OSI模型上的应用层,它可以支持在多种不同类型总线上的设备之间进行通信,当然也一样支持以太网中应用。看下面的图片:

Modbus协议在设备端上实现的是一种主/从的通信协议结构,即请求/应答的通信模型。这怎么理解呢?其实就是使用了Modbus协议进行通信的设备中有一个设备要作为主机,其他的都作为从机,通信就是在主机和从机之间进行的。示意图如下:

Modbus常见的通信链路

Modbus应用很广泛,几乎可以应用在任何能够进行数据交互的场景中。在设备之间应用Modbus协议时,对使用何种物理链路进行数据流动并没有限制。

比如常用的有线方式:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A光纤、网线等。以及很多的无线方式等等的。实现的都是串行链路上的异步通信方式,同一时刻允许数据流向某一端的设备,不能同时出现两端流动。Modbus的通信栈如下:

Modbus应用中常见的一些专业名词

在应用Modbus的时候经常可以看到一些专业名词以及英文缩写,它们都是有着专业的含义和代表意义的。常见的缩略语如下:

ADU :应用数据单元
HDLC :高级数据链路控制
HMI :人机界面
IETF :因特网工程工作组
I/O :输入/输出设备
IP :互连网协议
MAC :介质访问控制
MB :MODBUS 协议
MBAP :MODBUS 协议
PDU :协议数据单元
PLC :可编程逻辑控制器
TCP :传输控制协议
2W :在 “电气接口” 一章中定义的两线制配置,或其中的一个接口。
4W :在 “电气接口” 一章中定义的四线制配置,或其中的一个接口。
2W+2:在两线制系统中使用四线制接口的特殊配置。(需要时可参见 Schneider Electric Momentum 文件 870 USE 101 10)
AUI :连接单元接口 (Attachment Unit Interface)
公共端 :EIA/TIA 标准中的信号公共端 (Common)。在两线制或四线制 RS485 Modbus 网络中,
信号和可选的电源的公共端。 Power Supply 公共端
DCE :一个 Modbus 设备。例如, 实现了 RS232 数据电路设备 (Data-Circuit Equipment) 的
可编程序控制器适配器。也称作数据通信设备(Data Communication Equipment)
设备 :Modbus 设备
驱动器 :发生器,或发送器
DTE :一个 Modbus 设备。例如, 实现了 RS232 数据终端设备 (Data Terminal Equipment)编程终端或 PC
ITr :干缆侧的物理总线接口 (Interface on Trunk Side)
IDv :设备侧的物理总线接口 (Interface on Derivation Side)
LT :线路终端(Line Termination)
Modbus :设备 实现了 Modbus 串行链路并遵循技术规范的设备。
RS232 :EIA/ TIA -232 标准。
RS485 :EIA/ TIA -485 标准。
RS485 :Modbus 与该技术标准一致的两线制或四线制网络

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

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

相关文章

RT1050的ADC

文章目录 1 ADC介绍2 ADC框图2.1 外部输入通道2.2 输入电压范围2.3 触发源2.4 时钟源2.5 偏移矫正功能2.5.1 校准 1 ADC介绍 RT1052 有 2 个 ADC,每个 ADC 有 12 位、10 位、8 位可选,每个 ADC 有 16 个外部通道。 ADC具有最高 1MS/s 采样率支持单次或…

ubuntu安装goland

下载并解压goland sudo tar -C /opt/ -xzvf goland-2023.1.3.tar.gz配置应用图标 新建文件: vim /usr/share/applications/goland.desktop文件中写入如下内容: [Desktop Entry] TypeApplication NameGoLand Icon/opt/GoLand/bin/goland.png Exec/op…

uni-app 分不清的全局变量this, uni, $u, vm, uni.$u, this.$u

项目引入了uview,并将uview所有模块指给uniapp全局变量uni uni.$u$u 在登录页面,或者APP.vue打印以下变量: this, uni, $u, vm, uni.$u, this.$u

软件测试之可靠性测试

CNAS标识 软件可靠性测试主要目的是通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现,为进行软件可靠性估计采集准确的数据,并找出所有对软件可靠性影响较大的错误。可靠性测试的特点是不同于硬件可靠性测试,主要…

TCP协议的重点知识点

TCP协议的重点知识点 TCP(传输控制协议)是一种面向连接、可靠的数据传输协议,工作在传输层,提供可靠的字节流服务。它是互联网协议栈中最重要、最复杂的协议之一,也是面试中常被问到的知识点。本文将详细介绍TCP协议的各个重要概念。 TCP基本特性 TCP主要具有以下基本特性: …

香橙派OrangePi zero H2+ 驱动移远EC200A

1 系统内核: Linux orangepizero 5.4.65-sunxi #2.2.2 SMP Tue Aug 15 17:45:28 CST 2023 armv7l armv7l armv7l GNU/Linux 1.1 下载内核头安装 下载:orangepi800 内核头rk3399链接https://download.csdn.net/download/weixin_37613240/87635781 1.1.1…

去除wps段落柄,删除空白页

如图,有一个段落柄在左端,无法删除,只能编辑。 导致本来是8页内容,现在是9页,多了一空白页 后面新建一个空白页,发现默认会自带一个段落柄,所以有可能这个段落柄是不能消除的,那么如…

SSH报错-Terminal shell path: C:\WINDOWS\System32\cmd.exe 此时不应有

最近接盘了实验室的工作,需要重新配置连接自己的VScode的SSH远程连接服务器,结果配置了一个下午都没搞好,决定记录一下,希望大家避免踩坑。在vscode上遇到的是这个报错: 错误日志 [11:40:12.097] Checking ssh with …

自考《00538 中国古代文学史(一)》2023年4月历年真题答案

自考科目列表,自考本科,题库,自学考试,历年真题 1.“弹歌、断竹、续竹、飞土、逐尖”属于() A.寓言 B.神话 C.传说故事 D.原始歌谣 2.出自《山海经》的神话是() A.女娲补天 B.盘古开天地 C.后羿射日 D.鲧禹治水 3.汉代伏生所传今文《尚书》共计() A.25篇 B.29篇 C.33篇 D.58篇 …

Go的基础运行方式和打包

目录 基础运行方式导入路径 打包技巧相关知识点 基础运行方式 // 文件名可以不是main,但包名和入口函数比如是main // main.go package main // 导入包的时候可以直接导入,也可以导入后指定包名, import ("fmt"godemo "githu…

最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码|霸王餐美团/饿了么系统/外卖红包cps粉丝裂变玩法源码下载

最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码、霸王餐美团、饿了么系统,粉丝裂变玩源码下载,外卖cps小程序项目,外卖红包cps带好友返利佣金分销系统程序、饿了么美团联盟源码,外卖cps带分销返利后端源码,基于L…

【Linux操作系统】线程的基本知识和创建--循环创建多个子线程

本篇文章主要介绍了线程的概念和作用,线程三级映射的实现,创建线程的方法(讲解pthread_self和pthread_create函数),循环创建多个子线程为例子,同时分析线程之间的全局变量的共享问题,希望可以帮…

fastjson-1.2.24-rce(CVE-2017-18349)fastjson-1.2.47-rce(CNVD-2019-22238)

一.fastjson 1.2.24 反序列化导致任意命令执行漏洞(CVE-2017-18349) fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链 影响范围…

LeetCode 刷题第四轮 Offer I + 类型题

目录 剑指 Offer 04. 二维数组中的查找 剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈 剑指 Offer 10- I. 斐波那契数列 [类型:记忆优化 递归 / 动态规划] 剑指 Offer 10- II. 青蛙跳台阶问题 [类型&am…

AcWing算法提高课-5.5.2最大公约数

宣传一下 算法提高课整理 CSDN个人主页:更好的阅读体验 原题链接 题目描述 给定整数 N N N,求 1 ≤ x , y ≤ N 1 \le x,y \le N 1≤x,y≤N 且 gcd ⁡ ( x , y ) \gcd(x,y) gcd(x,y) 为素数的数对 ( x , y ) (x,y) (x,y) 有多少对。 输入格式 输…

pandas由入门到精通-数据清洗-缺失值处理

pandas-02-数据清洗&预处理 A.缺失值处理1. Pandas缺失值判断2. 缺失值过滤2.1 Series.dropna()2.2 DataFrame.dropna()3. 缺失值填充3.1 值填充3.2 向前/向后填充文中用S代指Series,用Df代指DataFrame 数据清洗是处理大型复杂情况数据必不可少的步骤,这里总结一些数据清…

数字基带传输系统

文章目录 前言一、数字基带系统基本组成二、基本码型1、数字基带信号2、6 种基本码型 三、数字基带信号的频谱特性四、数字基带信号选码1、原则2、常用的传输码型①、AMI 码(传号交替反转码)②、 H D B 3 HDB_3 HDB3​ 码(3 阶高密度双极性码…

GeoHash之存储篇

前言: 在上一篇文章GeoHash——滴滴打车如何找出方圆一千米内的乘客主要介绍了GeoHash的应用是如何的,本篇文章我想要带大家探索一下使用什么样的数据结构去存储这些Base32编码的经纬度能够节省内存并且提高查询的效率。 前缀树、跳表介绍: …

京东话费直充系统——轻松充值移动、联通、电信三大运营商的通话套餐

京东三网话费直充系统/移动联通电信话费三网直充/三网话费直充系统 系统特性: ①、移动,联通,电信话费使用微信H5/支付宝H5 ②、移动话费/联通话费/电信话费额度支持1-任意额度(不得超过官网所支持的额度) ③、系统实测每分钟…

pandas由入门到精通-数据透视表

采集的数据存储后通常会分为多个文件或数据库,如何将这些文件按需拼接,或按键进行连接十分重要。这节将介绍数据索引的复杂操作如分层索引,stack,unstack,seet_index,reset_index等帮助重构数据,数据的拼接如merge,join,concat,combine_first等帮助连接数据,以及数据透视表…