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

    文章

    6842

    浏览量

    88758
  • MODBUS
    +关注

    关注

    28

    文章

    1759

    浏览量

    76774
  • 物理层
    +关注

    关注

    1

    文章

    148

    浏览量

    34272
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    电源格式通讯协议

    详细分析了电源的格式及命令字通讯协议。
    发表于 07-05 15:08 12次下载

    HLP_SV_Modbus标准通讯协议格式

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

    MODBUS通讯协议及编程

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

    HLPA+_Modbus标准通讯协议格式

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

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

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

    解读Modbus通讯协议

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

    一文详解Modbus RTU数据格式

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

    关于Modbus数据的一些基础知识

    在介绍Modbus RTU数据格式之前,首先让我们先了解一下Modbus通讯模式。
    发表于 04-22 09:28 4231次阅读
    关于<b class='flag-5'>Modbus</b><b class='flag-5'>数据</b><b class='flag-5'>帧</b>的一些基础知识

    浅谈CAN错误格式

    数据和遥控有标准格式和扩展格式两种格式。标准格式
    发表于 09-29 12:31 985次阅读

    串口通讯时的数据格式通讯协议有什么区别?

    串口通讯时的数据格式通讯协议是两个不同的概念,它们在串口通讯中起着不同的作用,但都是为了实现
    的头像 发表于 01-30 09:21 1825次阅读

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

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

    EtherCAT 数据格式和寻址方式简介

    EtherCAT是一个高实时性,高速和高效率的工业以太网技术,数据根据自身独有的数据格式进行可靠传输,本文主要针对EtherCAT的数据
    的头像 发表于 04-12 08:25 825次阅读
    EtherCAT <b class='flag-5'>数据</b><b class='flag-5'>帧</b><b class='flag-5'>格式</b>和寻址方式简介