Modbus TCP 报文说明

Modbus TCP 报文说明

  • Modbus TCP 报文结构
  • 报文解析
  • 功能码说明
  • Modbus 功能码与 PLC 地址的对应关系

Modbus TCP 报文结构

  1. 事务标识符(Transaction Identifier,2 字节):
    用于匹配请求和响应,通常由客户端生成,服务端在响应中原样返回。
  2. 协议标识符(Protocol Identifier,2 字节):
    始终为 0x0000,表示这是 Modbus 协议。
  3. 长度域(Length Field,2 字节):
    指定后续数据部分的字节长度(含单元标识符)。
  4. 单元标识符(Unit Identifier,1 字节):
    表示目标从站设备地址,通常在网关或多设备场景中使用。
  5. 功能码及数据域(Function Code + Data):
    Modbus 数据内容。

报文解析

Modbus TCP 报文是:

50 D4 00 00 00 06 01 03 00 0A 00 01
  1. 事务标识符(2 字节):
    50 D4
    客户端生成的随机标识符,用于标记请求。它的值为 0x50D4(十进制 20692)。
    在响应报文中会原样返回,帮助客户端识别请求对应的响应。
  2. 协议标识符(2 字节):
    00 00
    始终为 0,表示使用 Modbus 协议。
  3. 长度域(2 字节):
    00 06
    后续数据部分的长度为 6 字节,包括单元标识符和功能码+数据。
  4. 单元标识符(1 字节):
    01
    表示目标从站地址为 1。
  5. 功能码(1 字节):
    03
    读取保持寄存器。
  6. 数据域(N 字节):
    00 0A:起始地址为 10。
    00 01:读取 1 个寄存器。

功能码说明

功能码操作寄存器类型数据类型常见场景
01读取线圈状态(Coils)离散输出(DO)0 或 1(按位)监控输出设备的状态,例如继电器
02读取离散输入状态离散输入(DI)0 或 1(按位)检查输入设备的状态,例如按钮
03读取保持寄存器(Holding Registers)数据寄存器或变量(D 或 R 等)16 位(按字)获取设备配置或测量数据
04读取输入寄存器(Input Registers)模拟量输入寄存器(AI)16 位(按字)获取设备配置或测量数据
05写单个线圈(Write Single Coil)离散输出(DO)将单个线圈的状态写为 0 或 1
06写单个保持寄存器(Write Single Register)数据寄存器或变量(D 或 R 等)16 位(按字)向单个保持寄存器写入16 位数据。
15写多个线圈(Write Multiple Coils)离散输出(DO)一次性写入多个线圈状态。
16写多个保持寄存器(Write Multiple Registers)数据寄存器或变量(D 或 R 等)一次性写入多个保持寄存器的数据。

Modbus 功能码与 PLC 地址的对应关系

功能码Modbus 寄存器类型PLC 地址类型地址范围(标准 Modbus)
01线圈(Coils)离散输出(DO)00001 到 09999
02离散输入(Discrete Inputs)离散输入(DI)10001 到 19999
03保持寄存器(Holding Registers)数据寄存器或变量(D 或 R 等)40001 到 49999
04输入寄存器(Input Registers)模拟量输入寄存器(AI)30001 到 39999

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言项目 天天酷跑(上篇)

前言 这里讲述这个天天酷跑是怎么实现的,我会在天天酷跑的下篇添加源代码,这里会讲述天天酷跑这个项目是如何实现的每一个思路,都是作者自己学习于别人的代码而创作的项目和思路,这个代码和网上有些许不一样,因为掺杂了…

如何完全剔除对Eureka的依赖,报错Cannot execute request on any known server

【现象】 程序运行报错如下: com.netflix.discovery.shared.transport.TransportException报错Cannot execute request on any known server 【解决方案】 (1)在Maven工程中的pom去掉Eureka相关的引用(注释以下部分&#xff0…

华为云国内版与国际版的主要区别解析

华为云作为全球领先的云计算服务提供商,提供了国内版和国际版两种服务。虽然它们都旨在为用户提供高效、可靠的云计算解决方案,但在功能、服务、合规性等方面存在一些显著的区别。我们九河云通过本文将详细分析华为云国内版与国际版的主要区别&#xff0…

基于北斗短报文+4G的森林草原火险因子综合监测方案

近年来,全球气候变暖的趋势日益严重,气温升高导致森林火灾的发生频率和严重程度逐年增加,对人类社会和自然生态环境造成了严重的危害。森林火灾的发生受到植被类型、气象条件、扑救方式和监管方式等多种因素的影响。 因此,林业建…

小程序app封装公用顶部筛选区uv-drop-down

参考ui:DropDown 下拉筛选 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 样式示例&#xff1a; 封装公用文件代码 dropDownTemplete <template><!-- 顶部下拉筛选区封装公用组件 --><view><uv-drop-down ref&…

3 JDK 常见的包和BIO,NIO,AIO

JDK常见的包 java.lang:系统基础类 java.io:文件操作相关类&#xff0c;比如文件操作 java.nio:为了完善io包中的功能&#xff0c;提高io性能而写的一个新包 java.net:网络相关的包 java.util:java辅助类&#xff0c;特别是集合类 java.sql:数据库操作类 IO流 按照流的流向分…

Uniapp 手机基座调试App 打包成Apk文件,并上传到应用商店

1.Uniapp手机基座调试App。 1.1 以下是我另一篇文章 讲解 uniapp连接手机基座调试App、 Hbuildx使用SUB运行到手机基座测试_hbuilder基座-CSDN博客 2.打包本地的uniapp项目为apk文件。 打包的方式有很多种&#xff0c;我们可以选择本地打包和远程云端打包两种方式。 我们在打包…

vue调试工具 Vue.jsDevtools

文件下载 Vue.js Devtools 通过网盘分享的文件&#xff1a;ddebf336f8a44293bd4db9d0f287bc1c.crx 链接: https://pan.baidu.com/s/1uS3a49CwW-B000p5GwUQmQ 提取码: ko89 下载完了 &#xff0c;拖入chrome里&#xff0c;打开详情配置. 打开红框中的开关 重启浏览器&#xff…

数智化时代医院临床试验人才培养的创新路径与实践探索

一、引言 1.1 研究背景与意义 在当今数实化与智能化技术飞速发展的时代&#xff0c;医疗行业正经历着深刻的变革&#xff0c;数智化医院已成为未来发展的重要趋势。临床试验作为药物研发、医疗器械验证以及医疗技术创新的关键环节&#xff0c;对于推动医学进步、提高医疗质量…

产品更新 | 一网联千策:华望M-Cowork平台上的SysML模型协同管理

华望产品更新速递 功能介绍 | 协同平台M-Cowork的强大功能 ◆在线SysML建模与预览 ◆版本控制和基线管理 ◆可追溯的审签流程 ◆全面的系统管理 产品亮点 | 进一步了解协同平台M-Cowork ◆M-Cowork的管理功能 ◆M-Cowork的预览功能 ◆M-Cowork的审签流程 前言 在系统工…

纯相位全息图优化算法综述

◀ 背景引入 ▶ 近年来&#xff0c;得益于光学、电子和计算机等各项技术的进步以及新算法的不断提出&#xff0c;计算全息技术飞速发展。由于现有液晶空间光调制器对于纯相位全息图具有更高的调制能力与衍射效率&#xff0c;纯相位全息图优化算法一直以来都是研究热点。目前&…

Unity复刻胡闹厨房复盘 模块一 新输入系统订阅链与重绑定

本文仅作学习交流&#xff0c;不做任何商业用途 郑重感谢siki老师的汉化教程与代码猴的免费教程以及搬运烤肉的小伙伴 版本&#xff1a;Unity6 模板&#xff1a;3D 核心 渲染管线&#xff1a;URP ------------------------------…

CentOS 7 安装、测试和部署FastDFS

目录 FastDFS环境搭建 安装 libfastcommon 库 安装FastDFS 查看编译后的文件 FastDFS配置 FastDFS启动 启动tracker服务 启动storage服务 查看storage是否已经注册到了tracker下 查看存储文件的目录 FastDFS重启 FastDFS关闭 使用fdfs_test进行测试 修改client.co…

通用导出任何对象列表数据的excel工具类

在工作中经常会遇到列表数据的导出&#xff0c;每次需要的时候都要去开发一次&#xff0c;且数据不断在变化&#xff0c;于是就有了下述的工具类&#xff0c;可传入各种实体对象的List&#xff0c;最终以指定格式导出excel&#xff0c;废话不多说&#xff0c;上代码~ 控制层代…

前端:改变鼠标点击物体的颜色

需求&#xff1a; 需要改变图片中某一物体的颜色&#xff0c;该物体是纯色&#xff1b; 鼠标点击哪个物体&#xff0c;哪个物体的颜色变为指定的颜色&#xff0c;利用canvas实现。 演示案例 代码Demo <!DOCTYPE html> <html lang"en"><head>&l…

AI口播数字人系统快速搭建方法来袭!零经验小白也能学会!

随着AI口播数字人的身影在短视频和直播中的出现频率持续升高&#xff0c;越来越多的创业者都察觉到了AI口播数字人系统所蕴含着的巨大潜在用户规模和广阔收益前景&#xff0c;并打听起了AI口播数字人系统怎么搭建相关的各种消息。 毕竟&#xff0c;根据当前的使用情况来看&…

中小学生心理健康测评系统:精准洞察,助力成长!

随着社会的发展&#xff0c;中小学生的心理健康问题日益受到关注。国家出台了一系列政策&#xff0c;强调要加强学生心理健康教育。然而&#xff0c;在实际的校园环境中&#xff0c;中小学生面临着各种各样的心理挑战&#xff0c;课程增多、难度加大&#xff0c;考试频繁&#…

2024年12月英语六级CET6写作与翻译笔记

目录 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可行的目标 2 翻译 2.1 洋山港(Yangshan Port) 2.2 中国航天事业 2.3 北斗卫星导航系统 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可…

Unity性能优化 --- 减少OverDraw

OverDraw(过度绘制)就是GPU多次重复绘制同一像素点的操作。在Unity 中渲染的图像由数百万个像素组成&#xff0c;如果这些像素被多次绘制&#xff0c;那么会造成GPU极大的性能损耗。例如下图多个物体叠加放在一起 注&#xff1a;棕色越深的地方&#xff0c;过度绘制的次数越多。…

PostgreSQL 的历史

title: PostgreSQL 的历史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能强大且广泛使用的开源关系型数据库管理系统。其历史可以追溯到1986年,当时由加州大学伯克利分校的一个研究团队开发。文章将深入探讨 PostgreSQL 的起源、…