Modbus通信协议2

一、Modbus概述

1.MODBUS通信栈(软件实现方法)

2.MODBUS应用协议

2.1 MODBUS应用协议介绍

  • Modbus是一种简单客户机/服务器应用协议;
  • 客户机能够向服务器发送请求;
  • 服务器分析请求,处理请求,向客户机发送应答。

2.2 MODBUS事务处理(无差错)

  • 当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应);
  • 对于一个正常响应来说,服务器仅复制原始功能码。

2.3 MODBUS事务处理(异常处理)

  • 对于异常响应,服务器将原始功能码的最高有效位(mostsignificant bit,MSB)设置逻辑值1之后返回(相当于十进制处理中将原功能码加上128);(功能码为1个字节,8个二进制位,最高位1等于十进制128、十六进制80);
  • 异常码指示差错类型。

3.通用MODBUS帧结构

3.1 应用数据单元

Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),在特定总线或网络上附加一些字段,构成该总线或网络上的ADU。

  • PDU中的功能码确定执行哪一种操作;
  • 功能码后面是请求和响应参数的数据域;
  • ADU中附加地址用于告知站地址,校验域用于报文校验的CRC计算结果。

MODBUS数据模型

MODBUS ADU与PDU长度

MODBUS PDU结构

二、MODBUS协议说明

MODBUS协议是工业自动化中广泛使用的主/从式通信协议,它的设计初衷是为了在各种设备之间进行数据传输和交换,在开放系统互连(OSI)模型中处于第二层(数据链路层)。

1.MODBUS的基本概念

1.1 通信模型

MODBUS是一种主从通信协议,这意味着在通信过程中存在一个主设备和一个或多个从设备。主设备负责发起通信,而从设备则响应主设备的请求,主节点在同一时刻只会发起一个Modbus事务处理。

在物理层,Modbus串行链路系统可以使用不同的物理接口(RS-485、RS232)

  • 最常用的是TIA/EIA-485(RS-485)两线制接口
  • 作为附加的选项,也可以实现RS-485四线制接口(RS-422)
  • 当只需要短距离的点到点通信时,TIA/EIA-232-E(RS-232)串行接口也可以使用

1.2 数据结构

MODBUS协议定义了数据的格式和传输方式:

  • 功能码:用于指示从设备执行的操作,如读写寄存器、线圈等。
  • 数据域:包含了具体的操作数据信息,根据功能码的不同,数据域的内容也有所不同。
  • 错误检测:通过循环冗余校验(CRC)或纵向冗余校验(LRC)确保数据传输的可靠性。

1.3 通信方式

MODBUS支持三种主要的传输方式:

  • MODBUS RTU(Remote Terminal Unit):在RS-485或RS-232物理层上传输,数据以二进制格式发送。
  • MODBUS ASCII:在RS-485或RS-232物理层上传输,数据以ASCII码格式发送。
  • MODBUS TCP/IP:基于以太网传输,数据封装在TCP/IP包中。

两种串行传输模式RTU模式和ASCII模式。

  • 它定义了报文域的位内容在线路上串行的传送,以及确定了信息如何打包为报文和如何解解码。
  • Modbus串行链路上所有设备的传输模式以及串行口通信参数(波特率、数据位、停止位、校验位)必须相同
  • 一般默认设置为RTU模式

2.MODBUS的工作原理

2.1 请求与响应机制

MODBUS通信基于请求-响应机制。主设备发送请求帧,从设备收到请求后进行处理,并发送响应帧回主设备。

2.2 功能码与操作

MODBUS协议支持多种功能码,不同的功能码对应不同的操作:

0x01读线圈状态
0x02读离散输入状态
0x03读保持寄存器
0x04读输入寄存器
0x05写单个线圈
0x06写单个保持寄存器
0x0F写多个线圈
0x10写多个保持寄存器

2.3 数据帧格式

  • 网络上的每个从站必须有唯一的地址(从1到247)
  • 从站地址用于寻址从站设备,由主站发起
  • 地址0用于广播模式,不需要响应

以MODBUS RTU为例,数据帧格式如下:

  • 起始位:一个或多个空闲时间段,用于同步
  • 从设备地址:唯一标识从设备的地址
  • 功能码:表示要执行的操作
  • 数据域:包含具体的操作数据
  • 错误校验:CRC校验码,用于检测数据传输是否错误
  • 结束位:空闲时间段,表示数据帧结束

2.4 地址规则

3.MODBUS RTU

3.1 MODBUS RTU概述

  • 当控制器设为在Modbus网络上以RTU(Remote Terminal Unit)模式通信,在报文中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据(更高的吞吐率)
  • 代码系统:8位二进制,十六进制数0..9,A..F
  • 报文中的每个8位域都是一个两个十六进制字符组成

每个字节的位

  • 1个起始位
  • 8个数据位,最小的有效位先发送
  • 1奇偶校验位,无校验则无
  • 1个停止位(有校验时),2个Bit(无校验时)

错误检测域

  • CRC(循环冗长检测)

位序列

帧格式

帧的标识与鉴别

循环冗余校验

传输错误检测

报文实例

1111

MODBUS功能码

实例

异常码

串行链路的物理层与信号规范

RS-232

连接器

数据传输

网络拓扑

信号

波形实例

485

线缆

越小,抗干扰越强

传输方式

网络拓扑

信号

波形示例

传输速率与格式

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

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

相关文章

金混合纳米粒子催化级联反应产生一氧化碳气体对抗糖尿病牙周炎

引用信息 文 章:Cascade Reactions Catalyzed by Gold Hybrid Nanoparticles Generate CO Gas Against Periodontitis in Diabetes. 期 刊:Advanced Science(影响因子:15.1) 发表时间:2024年…

汽车IVI中控开发入门及进阶(二十四):杰发科技AC8015

前言: 在此之前的大部分时间,四维图新更多的是以图商的身份在业内出现,但现在四维图新图商之外的技术积累提现在了杰发科技身上,或者是从图商到汽车智能化一体解决方案供应商的角色转变。汽车智能化,可以简单的归为座舱智能化和智能驾驶两个板块。 随着汽车变得越来越智能…

pvt对net delay的影响

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 有星球成员提问: pt中在同一个corner下的net的为啥在min和max的情况下读RC值是不一样的呢??不应该都是根据spef来的吗?? 回答: 这个其实是个误区,相同RC corner情况下我们看report_delay_…

SploitScan:一款多功能实用型安全漏洞管理平台

关于SploitScan SploitScan是一款功能完善的实用型网络安全漏洞管理工具,该工具提供了用户友好的界面,旨在简化广大研究人员识别已知安全漏洞的相关信息和复现过程。 SploitScan可以帮助网络安全专业人员快速识别和测试已知安全漏洞,如果你需…

【运维项目经历|028】Cobbler自动化部署平台构建项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专…

C++数据结构之:树Tree

摘要: it人员无论是使用哪种高级语言开发东东,想要更高效有层次的开发程序的话都躲不开三件套:数据结构,算法和设计模式。数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合&am…

Linux驱动应用编程(二)控制GPIO

本文目录 一、基础1. 命令控制方式一:使用 GPIO序号来控制。方式二:使用 GPIO组号来控制。 2. 代码控制 一、基础 我们先要通过查询开发板手册,来获取引脚口信息。这里我们以开发板OreangpiAIPro为例。查询官方手册如下: 1. 命令…

工业机器视觉系统如何实现精准检测?

机器视觉系统是指利用机器替代人眼做出各种测量和判断。一种比较复杂的系统。大多数系统监控对象都是运动物体,系统与运动物体的匹配和协调动作尤为重要,所以给系统各部分的动作时间和处理速度带来了严格的要求。在某些应用领域,例如机器人、…

Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制

多环境开发(yaml文件版) 我们在自己的开发中是自己环境 测试 生产的环境都不同 多环境分为 两个步骤 设置环境 生产环境 开发环境 测试环境 手搓三个环境 设置应用环境 应用pro配置 # 应用环境 spring:profiles:active: pro--- # 设置环境 # 生产环境 spring:profiles: p…

计网期末复习指南(五):运输层(可靠传输原理、TCP协议、UDP协议、端口)

前言:本系列文章旨在通过TCP/IP协议簇自下而上的梳理大致的知识点,从计算机网络体系结构出发到应用层,每一个协议层通过一篇文章进行总结,本系列正在持续更新中... 计网期末复习指南(一):计算机…

Jetpack架构组件_3. 数据绑定库双向绑定

这里介绍数据绑定库双向绑定的两种写法。第一种是模型类继承Observable,两个属性username、password的get方法上面添加bindable注解。第二种是创建一个包裹类,使用 ObservableField字段,然后再调用 this.observableField.get()获取字段。 1.…

数据结构算法之链表指针LinkList

链表是一种数据结构,它包含一系列存储在内存中随机位置的节点,从而实现高效的内存管理。链表中的每个节点包含两个主要组成部分:数据部分和对序列中下一个节点的引用。 链表种类: 单项链表 单链表是最简单的链表类型&#xff0c…

webm转换mp4,四种转换方法任你选!

在数字媒体日益盛行的今天,视频格式的转换已成为许多用户不可或缺的技能。其中,WebM和MP4作为两种广受欢迎的视频格式,各有其特点和优势。 WebM以其高效压缩和流畅播放而著称,而MP4则因其广泛的兼容性和易用性受到欢迎。因此&…

借助调试工具理解BLE协议_1.蓝牙简介和BLE工作流程

1.蓝牙简介 蓝牙是一种近距离无线通信技术,运行在2.4GHz免费频段,目前已大量应用于各种移动终端,物联网,健康医疗,智能家居等行业。蓝牙4.0以后的版本分为两种模式,单模蓝牙和双模蓝牙。 单模蓝牙&#xf…

杰理语音芯片AC1042A,变声喇叭玩具方案—云信通讯

变声喇叭玩具内置多种声音效果,例如机器人声、怪兽声、动物声以及各种搞笑声,让孩子能够在玩耍过程中体验不同的声音变化。有一些变声喇叭还可以模拟名人声音,让孩子们仿佛变身成为自己心目中的英雄或者明星。无论是自由的想象力游戏还是模仿…

借助调试工具理解BLE协议_2.BLE协议栈

名词解释: BT SIG英文全称为Bluetooth Special Interest Group(蓝牙特别兴趣组),网址为 www.Bluetooth.com。 Bluetooth Technology Website SIG成立于1998年,是一个全球技术交流组织,拥有超过36000家公…

进阶 RocketMQ - 消息存储-一张图掌握核心要点

看了很多遍源码整理的 一张图进阶 RocketMQ 图片,关于 RocketMQ 你只需要记住这张图! 消息传递责任已移交至Broker,接下来如何处理?首先,我们需要确保消息的持久化,避免因宕机导致的数据丢失。那么&#xf…

什么是OCR转写服务?

OCR(Optical Character Recognition,光学字符识别)转写服务是一种技术,用于将图像或扫描文档中的文字转换为可编辑的文本格式。这项服务通过识别图像中的文字,并将其转换成计算机可读的文本形式,从而使得用…

期权懂基础知识分享:场外期权怎么做?

今天带你了解期权懂基础知识分享:场外期权怎么做?场外个股期权是一种金融工具,用于在股票市场之外交易。 场外期权怎么做? 签订框架协议:个人需要与机构签订场外期权框架协议,通常无需单独开立账户。 询价…

ARP欺骗的原理与详细步骤

ARP是什么: 我还记得在计算机网络课程当中,学过ARP协议,ARP是地址转换协议,是链路层的协议,是硬件与上层之间的接口,同时对上层提供服务。在局域网中主机与主机之间不能直接通过IP地址进行通信&#xff0c…