Modbus RTU 报文格式及注意事项

news/2025/3/27 14:50:13/文章来源:https://www.cnblogs.com/meirenli/p/18790409
线圈寄存器 开关量 位操作 可读可写 0x01 0x05 0x0f
离散输入寄存器 开关量 位操作 只读 0x02
保持寄存器 具体值 字操作 可读可写 0x03 0x06 0x10
输入寄存器 具体值 字操作 只读 0x04

读操作

命令 从机地址 功能码 寄存器起始地址 寄存器数量 CRC
字节数 1 1 2 2 2
响应 从机地址 功能码 数据字节长度 数据字节 CRC
字节数 1 1 1 分为读字和读位两种情况 2

读位:

命令:02 01 00 00 00 03 7C 38
告诉从机02,要读取从0开始的连续三个位寄存器,校验码是7C 38
响应:02 01 01 05 91 CF
02为从机地址,01为功能码,第二个01表示接下来的数据有1个字节(8个位)。05是十六进制表示,转换为二进制0000 0101,即所读的寄存器1是0,寄存器2是0,寄存器3是1.

写操作

写单个寄存器

命令 从机地址 功能码 寄存器起始地址 写入值 CRC
字节数 1 1 2 2 2
响应 原帧发送给主机

写多个寄存器

命令 从机地址 功能码 寄存器起始地址 寄存器数量 写入数据字节长度 数据 CRC
字节数 1 1 2 2 1 分写字/写位两种情况 2
响应 从机地址 功能码 寄存器起始地址 寄存器数量 CRC
字节数 1 1 2 2 2

注意;

1. Modbus传输的最小单位是字节,数据部分报文是16进制表示,一个数表示4位。
2.低地址的寄存器数据先进入发送报文。
3.报文中的起始地址、寄存器数量都是高字节在前。
4.读字时,1字=2字节,数据字节长度=所读寄存器数量×2;读位时,需要具体讨论。
5.主机是主动发起请求的,从机是只会响应的。

注:本人刚学习modbus,文章仅供参考,如有错误请谅解

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

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

相关文章

昆明理工大学25冶金工程考研预计调剂169人

--冶金工程考研809冶金物理化学有色冶金学有色金属冶金冶金过程及设备F002钢铁冶金学冶金调剂

平衡树-入门

本文有一只奶龙编写,有借鉴会在其中说明。 平衡树 要了解平衡树是什么,我们需要先了解一个东西:二叉搜索树(也称二叉查找树)。二叉搜索/查找树(BST)如果我们有一颗二叉树可以进行查找,那么就可以说明其中的节点一定又有一个能够区分大小的“键值”。我们有节点来存储这…

安卓工程目录结构

根目录 根目录下有多个重要的文件和文件夹,各自承担着不同的功能。.gradle 和 .idea 这两个文件夹属于 IDE(集成开发环境)生成的文件,其中 .gradle 包含 Gradle 构建系统的配置和缓存信息;.idea 则是 IntelliJ IDEA 或者 Android Studio 所产生的项目配置文件。 app 这是安…

LLM大模型:post-train实战 - 使用GRPO微调LLM

deepseek带火了GRPO,更带火了reinforcement learning,让研究人员发现RL能在pre-train的基础上较大提升LLM的逻辑推理能力!当前,互联网高速发展二十多年产生的优质数据已经使用殆尽,所以更大规模的LLM一直难产(GPT-5现在都还没发布,优质token耗尽是核心原因之一)。市面上…

MQ 消息幂等性保证

MQ 消息幂等性保证 1. 什么是幂等性 在程序开发中,是指同一个业务,执行一次或多次对业务状态的影响是一致的。例如:根据 id 删除数据 查询数据在实际业务中,避免不了出现用户连续点击退款、重复点击删除等情况,这种情况下,就需要对多个消息进行处理,避免短时间内多次执行…

3.24 曲线/曲面积分

1 第一类曲线积分 (理解成求曲线的质量) 要把ds(弧微分)转化成dt(参数方程里面的自变量)(积分里面只留下的变量),也可以转化成dx什么的,注意ds转化成dx的公式 2 第一类曲面积分 还是先求投影,比如投影到xoy平面上,就求z=z(x,y) 2.1 普通对称性奇函数为0,偶函数*2 2.…

SmolVLM2: 让视频理解能力触手可及

一句话总结: SmolVLM 现已具备更强的视觉理解能力📺 SmolVLM2 标志着视频理解技术的根本性转变——从依赖海量计算资源的巨型模型,转向可在任何设备运行的轻量级模型。我们的目标很简单: 让视频理解技术从手机到服务器都能轻松部署。 我们同步发布三种规模的模型 (22 亿/5 亿…

React-Native开发鸿蒙NEXT-video

React-Native开发鸿蒙NEXT-video 前几周的开发,基本把一个”只读型“社区开发的差不多了。帖子列表,详情,搜索都迁移实现了,但还差了一点------视频类型帖子的展示。之前开发RN社区中,对于视频的处理用的是react-native-video,这个三方组件也已经实现了鸿蒙化,部分逻辑可…

React-Native开发鸿蒙NEXT-cookie设置

React-Native开发鸿蒙NEXT-cookie设置 应用有个积分商城,做一些积分兑换的业务,就一个基于react-native-webview开发的页面,在页面加载的时候通过js注入来设置cookie带入用户信息。 早先应甲方要求web网站关闭了,现在又要继续运行。于是就把web服务启动了,然后发现应用里积…

第六天

单词 以下是今天需学习的35个单词复习,同时前几天的单词阅读 理解文章大意,记录不认识的单词。今天这个阅读非常应当下的情景。 How to Teach Yourself Anything in Less than Three Months 如何在3个月内学习任何一件事(一) Self-education can be wonderful and frustrat…

React Native开发鸿蒙Next---富文本浏览

React Native开发鸿蒙Next---富文本浏览 最近在继续开发App剩余的社区功能。地铁的社区相对较为特殊,只有公告/政策规章/操作指南等资讯阅读功能,无法进行交互。对于原先的社区RN,除了移植适配鸿蒙,还需要做大量的功能屏蔽等改造。新的社区后台大量采用富文本进行内容编辑,…

17.指针

正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。 请看下面的实例,它将输出定义的变量地址:#include <stdio.h>int main(){int var_runoob = 10;int *p; //定义指针变量p = &var…