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

Modbus笔记

        网站推荐:https://www.modbus.cn/modbus-knowledge-basehttps://www.modbus.cn/modbus-knowledge-base

Modbus介绍

Modbus是一种广泛应用于工业自动化领域的串行通信协议,由施耐德电气(原Modicon公司)于1979年开发,旨在实现PLC与其他工业设备的高效通信其核心优势在于开放性、灵活性和简单性,现已成为工业设备互联的通用标准

主从通讯、半双工、位于OSI模型第七层(应用层)

Modbus协议分类

串行通信

Modbus RTU(设备必须具备、默认状态下使用的就是Modbus RTU)

基于串口(RS-485/RS-232),采用二进制编码,数据紧凑且效率高,支持CRC校验​

应用​:短距离、高实时性场景,如PLC与传感器/执行器的本地通信

Modbus ASCII(可读性强)

基于串口,使用ASCII字符编码,可读性强但效率较低,需LRC校验

应用​:早期工业设备或调试场景,数据量较小时使用

Modbus TCP(传输介质为以太网)

基于以太网(TCP/IP),封装RTU数据并添加MBAP报文头,端口默认502,无需CRC校验

应用​:远程监控、跨区域组网(如工业物联网、SCADA系统)

Modbus Plus(MB+)​

Modicon专有协议,采用高速令牌环网络(1Mbps),需专用硬件支持

应用​:大型工业网络,现已较少使用

Modbus协议格式

ADU :应用数据单元      PDU: 协议数据单元

地址域差错校验:非必要,有的协议不需要如Modbus TCP

功能码分类:公共功能码、用户自定义功能码、保留功能码。       

功能码的范围为1~127

1~6465~7273~99100~110111~127
公共功能码用户自定义功能码公共功能码用户自定义功能码公共功能码

常用公共功能码

访问类型

子类型

操作描述

功能码(十进制)​

功能码(十六进制)​

比特访问

物理离散量输入

读输入离散量

02

0x02

内部比特 / 物理线圈

读线圈

01

0x01

写单个线圈

05

0x05

写多个线圈

15

0x0F

16 比特访问

输入存储器

读输入寄存器

04

0x04

内部存储器 / 物理输出存储器

读多个寄存器

03

0x03

写单个寄存器

06

0x06

写多个寄存器

16

0x10

读/写多个寄存器

23

0x17

屏蔽写寄存器

22

0x16

文件记录访问

读文件记录

20

0x14

写文件记录

21

0x15

封装接口

读设备识别码

43

0x2B

Modbus 功能码

Modbus RTU协议解析

由发送设备将Modbus 报文构造为带有已知起始和结束标记的帧(串口的起始位和停止位)。这使设备可以在报文的开始接收 新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。 在 RTU 模式,报文帧由时长至少为3.5 个字符时间的空闲间隔区分。

地址范围为0~247,0为广播地址,从机实际地址有效范围为1~247.

举例

CRC16位校验 :循环冗余校验码CRC原理及编码实现

 

因为串口是一个字节一个字节的发送、因此对帧与帧之间的时间也有要求:

整个报文帧必须以连续的字符流发送。 如果两个字符之间的空闲间隔大于1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃。

根据Modbus RTU协议可得需要使用到的资源有:定时器、串口

Modbus TCP和Modbus RTU区别

传输介质和网络结构 Modbus TCP基于以太网通信,使用TCP/IP协议,适合局域网或广域网环境,支持通过路由器和交换机连接多个设备。 Modbus RTU基于串行通信,通常使用RS-232或RS-485接口,适用于点对点或多点的串行网络,适合短距离通信。

数据结构 Modbus TCP在Modbus RTU的基础上增加了MBAP报文头,用于标识和封装数据包,同时省略了CRC校验码,因为TCP本身提供了可靠性保障。 Modbus RTU的数据帧由地址、功能码、数据和CRC校验码组成,结构简单,直接在串行线上传输。

通信速度和距离 Modbus TCP的速度取决于网络带宽和设备性能,适合高速和远距离通信。 Modbus RTU的速度受波特率限制,通常较低,但在短距离内通信稳定。

MBAP报文

事务处理标识协议标识符长度单元标识符
2字节2字节2字节1字节
事务处理标识可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文
协议标识符00 00表示ModbusTCP协议
长度表示接下来的数据长度,单位为字节
单元标识符可以理解为设备地址

读指令对比(0x04)

MBAP报文头地址码功能码寄存器地址寄存器数量CRC校验
Modbus RTU010400 0000 1671 C4
Modbus TCP00 00 00 00 00 06 010400 0000 16
http://www.dtcms.com/a/523471.html

相关文章:

  • JVM 分代收集算法(Generational GC) 的原理和执行流程
  • 网站名加引号wordpress+极简博客
  • 网站备案取消接入什么是网站反链
  • 淘宝客网站需要多大主机分销网站怎么做
  • 荣县规划和建设局网站wordpress换网址
  • 广州市企业网站建设怎么样合肥做公司网站
  • 如何建设视频资源电影网站贵港网站建设兼职
  • 山东省建设项目备案证明网站怎么修复网站死链
  • 商城网站怎么做网站做淘客
  • 国内最大的网站制作公司公司网站的服务器
  • asp模板网站修改软件公司注册条件
  • 徐州公司做网站写资料的网站有哪些内容
  • ps做网站大小尺寸室内设计效果图全景图
  • 高新园区规划建设局网站专业政务软件开发
  • 网站做推荐链接端口常州微网站建设文档
  • 爱站网站长seo综合查询宁波seo快速优化公司
  • 中国十大网站建设公司wordpress ftp 端口
  • 长沙商城网站建设报价公示网站制作联盟
  • saas网站建设网站常见程序问题
  • 网站建设视频上传珠海市城乡住房建设局网站
  • 西安 房产网站建设拍卖网站建设方案
  • 做网站的一般步骤wordpress oss upload
  • 佛山网站制作对网页设计的认识和理解
  • 响水做网站哪家最好电子商务平台官网
  • 建什么网站容易挣钱wordpress会员空间插件
  • 微网站开发平台 知乎河南网站排名优化哪家好
  • 网站开发策划书怎么写西宁整站优化
  • 网站首页介绍苏州做公司网站设计的公司
  • wordpress 图片 视频外贸网站怎么做seo优化
  • 大连本站运营公司wordpress建什么网站好