news 2026/10/21 2:13:24

阐述 Modbus 四种寄存器(通信对象)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阐述 Modbus 四种寄存器(通信对象)

阐述 Modbus 四种寄存器(通信对象)

不是芯片物理硬件寄存器,是固件软件内存,是逻辑寄存器。
很多人会混淆:芯片CPU内部的物理寄存器 和 Modbus逻辑寄存器,二者完全两码事。

1 关键点

Modbus的线圈、离散输入、保持寄存器、输入寄存器,叫Modbus逻辑寄存器。

  • 单片机/PLC芯片本身,有CPU物理寄存器(用于CPU运算,和Modbus无关)。
  • Modbus的4组,是固件在RAM内存里开辟出来的四块内存区域,软件层面模拟出来的逻辑存储区,不是硬件芯片自带的物理寄存器。

固件工作流程:

  1. 固件在内存划分四块内存:线圈区(bit位)、离散输入区(bit)、保持寄存器区(16bit字)、输入寄存器区(16bit字)
  2. 硬件采集传感器 → 固件把温度、压力写到【输入寄存器】内存块里
  3. 外部4‑20mA端子、开关量输入,固件刷新到【离散输入/线圈】内存
  4. 上位机Modbus报文过来,固件读取/修改这四块内存,把内存数据返回给主站
  5. 如果上位机写保持寄存器,固件读到内存变化,再去控制继电器、输出模拟量。

真实硬件:Modbus寄存器 = RAM内存的一块逻辑分区。
Java模拟Modbus从站:数组/Map = 模拟这块RAM内存分区,二者原理一模一样。

2 Modbus四种逻辑寄存器

类型存储单位读写权限通俗说明
线圈 Coils1 bit(0/1)可读、可写开关输出,控制继电器通断。比如0=断开,1=闭合
离散输入 Discrete Inputs1 bit(0/1)只读外部开关输入,硬件检测到按钮按下,固件置1,上位机只能读不能改
保持寄存器 Holding Register16 bit(1个字,0‑65535)可读、可写最重要。存参数、设定值、温度压力,上位机可以读写。设备参数、配置大多放这里
输入寄存器 Input Register16 bit(1个字)只读传感器原始采集值。比如AD采样出来的电压、温度,硬件更新,上位机只能读取,不能修改

2.1 地址小知识

  • 线圈、离散输入:按位访问,一个地址代表1个开关位
  • 保持、输入寄存器:按字访问,一个地址代表1个16位的字

注意:这些地址只是固件给这四块内存编的编号,不是CPU物理内存地址,是Modbus协议层面的逻辑地址。

3 举例

一个温控仪表:

  1. 测温探头采集温度,固件把温度值写入输入寄存器地址0(只读,上位机只能看,不能改温度原始采集值)
  2. 温度设定目标值,存放在保持寄存器地址0(上位机可以读写,写这个寄存器就修改设备设定温度)
  3. 继电器输出触点状态放在线圈地址0,写1就开启加热继电器
  4. 外部报警按钮信号,映射到离散输入地址0,上位机读取看按钮有没有按下

所有数据都放在固件RAM四块逻辑内存,Modbus通信只是读写这四块内存。

4 容易踩坑区分

  1. CPU物理寄存器:芯片内部,CPU运算用,和Modbus无关。
  2. Modbus逻辑寄存器:固件在RAM中开辟的4块内存,给Modbus协议使用。
  3. Java模拟从站:用数组模拟这四块RAM,没有真实硬件,纯软件内存。

5 总结

Modbus的四类寄存器,不是芯片硬件寄存器,是固件在内存划分出来的四块逻辑存储区,Modbus协议就是读写这四块内存。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 2:13:13

AI硬件周报:边缘推理功耗、HBM3互连与嵌入式NPU时序实测解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 2:12:21

Windows Qt开发工具链详解:MSVC+CDB+WinSDK配置指南

Windows上的Qt开发,绕不开一个很现实的工具链问题。很多初次接触Qt Creator的人都会在安装器的组件列表里看到MinGW、MSVC 2019 64-bit这样的条目,然后陷入纠结:到底选哪个?如果你做的是企业级Windows桌面程序,或者要对…

作者头像 李华
网站建设 2026/10/21 2:11:34

Qt桌面端地图开发:QWebEngineView加载百度/谷歌地图与双向通信实战

简介:这份资源面向需要在Qt桌面应用中嵌入在线地图的C开发者,重点解决百度地图与谷歌地图的加载与交互问题。包内共25个文件,以cpp源码、h头文件、html页面、ui界面文件及pro工程文件为主,另含编译生成的obj、exe、pdb等中间产物&…

作者头像 李华
网站建设 2026/10/21 2:10:54

社区老年人健康管理系统:开题报告、需求分析与架构设计要点

1. 开题报告到底在写什么:先看清这个项目的地基写"社区老年人健康管理系统"这个开题报告,很多人第一反应是赶紧把系统功能列出来,画几个用例图,再贴一张技术框架图,就算完事。但我接触过不少这类项目——包括…

作者头像 李华
网站建设 2026/10/21 2:09:52

机器人高薪嵌入式岗位真相:ROS2之外的四类稀缺能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华