0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MODBUS通讯之数据帧格式解读

撞上电子 2024-01-20 08:00 次阅读

一.背景

Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。标准的Modbus协议物理层接口RS232RS422RS485以太网接口,采用master/slave方式通信。本文主要介绍的MODBUS-RTU。


二.MODBUS数据帧组成

首先我们要知道一帧正常的MODBUS数据帧包含的内容有:地址域 + 功能码 + 数据 + 差错校验。

fc0e6cce-b726-11ee-aa22-92fbcf53809c.png


三.下面逐一解释MODBUS数据帧各部分的具体含义:

(1)地址域:即主站要访问的从站地址,其范围0~247

(2)功能码:即主站想要对从站进行何种操作。从大的方面看分为读(主站读取从站数据),写(主站向从站读取数据)再往细分就是具体读取从站哪块区域的数据,以及具体将数据写到从站的哪块区域。操作从站不同的数据区对应有不同的功能码,在文末《MODBUS协议规范》文档中有详细介绍

(3)数据:如果主站的请求是读数据,那么该“数据”要包含的信息有:从哪里开始读数据 + 读多少数据。如果主站的请求是向从站写数据,那么该“数据”要包含的信息有:从哪里开始写数据 + 写多少个字节数据 + 要写的具体数据

(4)差错校验:为了保证数据传输的正确性,Modbus协议会在数据帧最后面加上两个字节的差错校验


四.举实例详细说明主站和从站之间的数据帧交互过程

(1) 主站 请求读 从站数据:

fc14feae-b726-11ee-aa22-92fbcf53809c.png

主站向从站发送的实际请求数据帧:03 04 00 08 00 01 B0 3B (假设从站地址为03),其中:

03:为主站要访问的域名(即从站地址,范围0~247)。04:表示功能码。00 08:从从站08这个地址开始读取数据。00 01:即将读取数据的长度。b0 3b:两个字节的校验数据。

从站接收到主站的请求数据帧之后实际的响应数据帧为:03 04 02 00 0A 40 F7,其中:

03:为从站地址即域名(即从站地址,范围0~247)。04:表示功能码。02:被读取数据长度(包含一个字节高8位数据,一个字节低8八位数据)00 0A:被读取的具体数据40 F7两个字节的校验数据

(2) 主站请求写 从站数据:

fc252900-b726-11ee-aa22-92fbcf53809c.png

主站向从站发送的实际请求数据帧:03 10 00 01 00 02 04 00 0A 01 02 99 88 (假设从站地址为03),其中:

03:为主站要访问的域名(即从站地址,范围0~247)。10:功能码。00 01:往从站01这个地址开始写数据。00 02:寄存器数量。04:一共写4个字节数据。04 00 01 02:具体数据。99 88:两个字节的校验数据。

从站接收到主站的请求数据帧之后实际的响应数据帧为:03 10 00 01 00 02 11 EA,其中:

03:为从站地址即域名(即从站地址,范围0~247)。10:功能码。00 01:往从站01这个地址开始写数据。(原样返回/响应)0002:寄存器数量。(原样返回/响应)11 EA两个字节的校验数据

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87601
  • MODBUS
    +关注

    关注

    27

    文章

    1440

    浏览量

    75692
  • 物理层
    +关注

    关注

    1

    文章

    142

    浏览量

    34213
收藏 人收藏

    评论

    相关推荐

    什么是Modbus通讯协议?Modbus通讯协议有什么特点?

    以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。  从设备回应消息也由Modbus协议构成,包括
    发表于 11-11 10:35

    基于MODBUS的串口通讯软件(LV实现)

    命令发送子函数(将消息MODBUS协议格式化为计算机可识别的字符串形式再发送给VISA Write.vi,模式选择)B2 串口命令接收子函数 (将写入串口缓冲的MODBUS消息命
    发表于 10-26 16:58

    SPI总线的数据格式定义

    有谁写过SPI总线,我定义8位格式可以发送,我想定义的是16位格式,手册上是可以的,但是16位一直没实现。我想发送一个数据包,
    发表于 03-18 10:10

    Modbus库开发笔记之二:Modbus消息的生成

    前面我们已经对Modbus的基本事务作了说明,也据此设计了我们将要实现的主从站的操作流程。这其中与Modbus直接相关的就是Modbus消息的生成。
    发表于 07-10 22:46

    modbus三种通讯方式的字符介绍

    的协议,上层为Modbus 协议,下层为TCP协议,它规定了网络互联节点间的请求/应答的通信方式。格式必须严格遵守协议所规定的ADU ( ApplicaTIon Data Unit)格式
    发表于 04-27 06:00

    ModBus通讯协议简介

    ModBus通讯协议通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方
    发表于 08-23 09:19

    Modbus协议的理解

    就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。   MODBUS通信ASCII通信方式的每个字符的
    发表于 05-05 16:47

    HLP_SV_Modbus标准通讯协议格式

    HLP_SV_Modbus标准通讯协议格式,工业通信的标准格式
    发表于 03-10 11:47 18次下载

    MODBUS通讯协议及编程

    MODBUS通讯协议及编程标准通讯协议格式,工业通信的标准格式
    发表于 03-10 11:45 64次下载

    MODBUS通讯协议详细介绍

    MODBUS通讯协议详细介绍标准通讯协议格式,工业通信的标准格式
    发表于 03-10 11:42 37次下载

    HLPA+_Modbus标准通讯协议格式

    HLPA+ Modbus标准通讯协议格式.pdf
    发表于 07-12 10:36 10次下载

    modbus rtu通讯协议格式详细说明

    常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。一般来说,通讯
    发表于 02-07 14:53 6.9w次阅读
    <b class='flag-5'>modbus</b> rtu<b class='flag-5'>通讯</b>协议<b class='flag-5'>格式</b>详细说明

    解读Modbus通讯协议

    作为工控人,Modbus 通讯协议想必都不陌生,Modbus 通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性、可扩充性
    的头像 发表于 11-09 16:39 828次阅读

    一文详解Modbus RTU数据格式

    在介绍Modbus RTU数据格式之前,首先让我们先了解一下Modbus通讯模式。
    发表于 04-07 09:40 2.3w次阅读
    一文详解<b class='flag-5'>Modbus</b> RTU<b class='flag-5'>数据</b>帧<b class='flag-5'>格式</b>

    使用MODBUS协议的时候可以不用设置数据格式了吗?

    在使用MODBUS协议进行串口通讯时,通常需要设置数据格式
    的头像 发表于 01-30 09:32 354次阅读