关于Modbus协议的数据结构和寄存器地址模型以及典型应用

modbus 从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。 阅读详情

1、Modbus协议的应用举例

        Modbus读写SQL数据库的数据、通过Modbus协议采集数据到数据库

         AB罗克韦尔PLC跟Modbus协议的设备通讯、西门子PLC跟Modbus协议的设备通讯

        AB罗克韦尔PLC转Modbus协议主站、西门子PLC转Modbus协议主站

2、Modbus协议的数据模型

        数据模型是对可访问数据的一种抽象,Modbus协议的数据模型定义了四种可访问的数据,分别是:

        离散量输入 (DI:Discrete Input);

        离散量输出 / 线圈 (DQ:Discrete Output / Coils);

        输入寄存器 (IR:Input Registers);

        保持寄存器 (HR:Holding Registers);

        其中,离散量输入和离散量输出/线圈只支持以位(bit)的方式进行访问,输入寄存器和保持寄存器只支持以字(WORD)的方式进行访问;离散量输入和输入寄存器只支持以只读的方式进行访问,而线圈和保持寄存器既可以读也可以写;

        数据模型中成员的特点如下面的表格所示:

        既然数据模型是一种抽象,在实际使用时必须将其映射到真实的物理存储区才能被访问。

        Modbus协议允许设备将四种数据分别映射到不同的存储区块中,各个区块之间相互独立,使用不同的功能码可读取到不同的数值,如下图所示:

        Modbus协议也允许设备将四种数据映射到同一存储区块中,这样通过不同的功能码读取数据可能会得到相同的数据(比如:输入寄存器和保持寄存器为同一物理区块),如下图所示:

        数据模型中的每一种数据都最多允许有65536个元素(编号1~65536),元素的地址编号从0开始,因此地址的范围为:0~65535;

        需要说明的是:65536只是协议允许的最大元素范围,但并不要求全部实现。Modbus协议允许设备根据自己的实际情况实现部分元素,甚至不要求实现模型中全部四种数据;

3、Modbus协议的地址模型

        为了简化数据模型与设备存储区的对应关系,引入了一种地址模型。该模型通过编号的方式对不同类型数据进行区分,各数据的地址编号请看下面的表格:

        Modbus地址模型的编号从1开始。由于每一种数据都最大支持65536个元素,具体如下:

        线圈型数据,地址范围(从1开始):000001~065536;

        离散量输入,地址范围(从1开始):100001~165536;

        输入寄存器,地址范围(从1开始):300001~365536;

        保持寄存器,地址范围(从1开始):400001~465536;

        有些设备如仪表、变频器等寄存器地址很少不超过4位数,会在中间省去一个0,这样400001就写成40001了。

        由于上述地址都是比较大的数值,实际应用一般采用区域代码+地址的方式,或者直接采用16进制表示地址,具体如下:

        线圈型数据,区域代码+地址(从0开始):DQ 0~65535,16进制:0000H~FFFFH / 0x0000~0xFFFF;

        离散量输入,区域代码+地址(从0开始):DI 0~65535,16进制:0000H~FFFFH / 0x0000~0xFFFF;

        输入寄存器,区域代码+地址(从0开始):IR 0~65535,16进制:0000H~FFFFH / 0x0000~0xFFFF;

        保持寄存器,区域代码+地址(从0开始):HR 0~65535,16进制:0000H~FFFFH / 0x0000~0xFFFF;

        Modbus地址模型对于Modbus-RTU/ASCII和Modbus-TCP协议都是适用的。

寄存器PLC地址与寄存器modbus协议地址 寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是文本显示器。PLC地址一般采用10进制描述,共有5位,其中第一位代码寄存器类型。第一位数字和寄存器类型的对应关系如表1所示。PLC地址例如40001、30002等。 寄存器modbus协议地址指通信时使用的寄存器地址,在实际编程中,由于寄存器PLC地址前缀的区分作用,所以只需说明后4位数... 阅读详情

相关推荐

modbus协议及modbus TCP协议

运行在串口上的协议,采用ASCII码进行传输,并且每个字节的开始和结束都有特殊字符作为标志,传输效率远远低于Modbus RTU,一般只有通讯量比较少时才会考虑它。,类比为开关量,每一个bit都对应一个信号的开关状态。在读数据和写单个的时候,字节长度都是0x06( 一个字节的单元标识符,一个字节的功能码,两个字节的地址,两个字节的数据),他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。报文头----功能码----起始地址----数量----字节计数----数据。

m0_74937538的博客 4671

Modbus协议讲解及实现

课程背景Modbus 协议是工业自动化控制系统中常见的通信协议,协议的全面理解是个痛点。本课程主讲老师集10多年在Modbus协议学习、使用中的经验心得,结合当前物联网浪潮下Modbus协议开发的痛点,推出这套面向Modbus 协议初学者的课程。本课程不同于以往市面课程只是协议讲解无实现代码,而是采用讲解与实践并重的方式,结合STM32F103ZET6开发板进行手把手编程实践,十分有利于初学者学习。涵盖了学习者在Modbus协议方面会遇到的方方面面的问题,是目前全网首个对Modbus协议进行全面总结的课程。课程名称   协议讲解及实现>>课程内容1、Modbus 协议的基础。2、Modbus协议栈函数编程实现。3、Modbus协议在串行链路编程实现。4、Modbus协议在以太网链路编程实现。5、常见问题的解决方法。带给您的价值通过学习本课程,您可以做到如下:1、全面彻底的理解Modbus协议。2、理解在串行链路,以太网链路的实现。3、掌握Modbus协议解析的函数编程方法,调试工具的使用。4、掌握多个串口,网口同时运行同一个Modbus协议栈的方法。5、掌握Modbus协议下,负数,浮点数等处理方法。讲师简介许孝刚,山东大学工程硕士,副高职称,技术总监。10多年丰富嵌入式系统开发经验,国家软考“嵌入式系统设计师”。2017年获得“华为开发者社区杰出贡献者”奖励。

Modbus在Android上的应用之Modbus RTU Master

Android端做主站,RS485/RS232接口连接,支持一对一和一对多读取从站数据。

Steven Jon 1万+

Modbus寄存器分类及地址分配

Modbus协议中一个重要的概念是寄存器,所有的数据均存放于寄存器中。最初Modbus协议借鉴了PLC中寄存器的含义,但是随着Modbus协议的广泛应用,寄存器的概念进一步泛化,不再是指具体的物理寄存器,也可能是一块内存区域。Modbus寄存器根据存放的数据类型以及各自读写特性,将寄存器分为4个部分,这4个部分可以连续也可以不连续,由开发者决定。 Modbus寄存器分类及说明 Modbus寄存器地址分配 ...

专注嵌入式开发与 Linux 系统应用实战,分享芯片驱动、设备调试、系统工具开发干货。 2万+

Modbus RTU/TCP协议解析

Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,Modbus通信协议采用的是主从通信模式(即Master/Slave通信模式),其在分散控制方面应用极其广泛,从而使得Modbus协议在全球得到了广泛的应用。 Modbus通信协议具有多个变种,其具有支持

zj20781的博客 4万+

ModbusTcp和ModbusRtu

ModbusTcp和ModbusRtu 1、何为Modbus通信协议 1.1 Modbus基本介绍 Modbus协议介绍:Modbus是 OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。包括了ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,定义了控制器能够认识和使用的消息结构,不管它们是经过何种网络进行通信的。Modbus协议使用串口传输时可以选择RTU或者ASCII模式,并规定了消息、数据结构、命令和应答方式,且需要对数据进行校

weixin_42077793的博客 1万+

Modbus RTU 使用教程(modbus教程、modbus协议)(寄存器类型、功能码)

Modbus RTU是一种基于串行通信的协议,用于连接电子设备。最初由Modicon公司在1979年为其PLC(可编程逻辑控制器)开发,现已成为工业领域的一个事实标准。这些功能码是实现Modbus RTU或TCP协议数据交换的基础,了解每个功能码的具体作用对于理解和使用Modbus协议至关重要。在应用程序或设备固件中实现Modbus时,通常会根据实际需要选择支持哪些功能码。通过遵循这些指导原则,可以有效地分配和管理Modbus RTU网络中的设备地址,确保通信的可靠性和系统的稳定性。

Dontla的博客 4万+

Modbus寄存器地址规则

Modbus协议定义的寄存器地址是5位十进制地址,即: 线圈(DO)地址:00000~09999 触点(DI)地址:10000~19999 输入寄存器(AI)地址:30000~39999 输出寄存器(AO)地址:40000~49999 由于上述各类地址是唯一对应的,因此有些资料就以其第一个数字区分各类地址,即:0x代表线圈(DO)类地址,1x代表触点(DI)类地址、 3x代表输入寄...

lushoumin的博客 6万+

Modbus TCP协议

Modbus介绍及Modbus TCP编程 三方库:modbus库

m0_74762280的博客 2万+

安卓直链APK安装拦截全解析:从Play Protect到厂商管控的应对指南

在移动应用分发领域,APK(Android Package)安装是开发者与用户交互的关键环节。其核心原理涉及安卓系统的安全沙箱机制与权限管理体系,旨在保护用户设备免受恶意软件侵害。这一机制的技术价值在于平衡了应用生态的开放性与安全性,但也在应用推广、企业内部分发等场景中带来了挑战。尤其在通过官网、广告等直链渠道分发APK时,常会遇到安装转化率骤降的问题。这背后主要受到Google Play Protect云端扫描、安卓系统安装权限模型演进(如Android 8.0+的安装源授权)以及设备制造商附加安全层(如

weixin_33894640的博客 467

2025最新OSM中国矢量数据保姆级下载指南(附百度网盘链接)

本文提供2025年OSM中国矢量数据的保姆级下载与使用指南。详细介绍了通过Geofabrik镜像站、QGIS插件及第三方平台获取数据的多种途径,重点解析了Shapefile格式数据的结构、WGS84坐标系特性,并指导进行格式转换与基础GIS应用,帮助用户高效合规地获取并利用这份开放地理数据资源。

weixin_29228781的博客 876

一文看懂Modbus协议

Modbus协议允许在各种网络体系结构内进行简单通信,每种设备(PLC、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用 Modbus协议来启动远程操作。在基于串行链路和以太 TCP/IP 网络的 Modbus上可以进行相同通信,一些网关允许在几种使用 Modbus协议的总线或网络之间进行通信。

不脱发的程序猿 5万+

从碰撞电离到雪崩击穿:Sentaurus仿真中的模型选择与验证艺术

本文深入探讨了Sentaurus TCAD中雪崩击穿模型的选取与验证方法,特别关注平行平面结的仿真实践。通过对比Chynoweth、van Overstraeten等主流模型的适用场景与精度差异,结合具体案例展示了从几何建模到边界条件设定的完整验证流程,并针对非理想因素提供了有效的补偿技术,助力工程师提升器件仿真的准确性与可靠性。

weixin_29074295的博客 592

Modbus Tcp协议

注:在ASCII模式下,每个8位的字节被拆分成两个ASCII字符进行发送,比如十六进制0xAF(1010 1111),会被分解成ASCII字符“A”(0100 0001)和”F”(0100 0110)进行发送,其发送量显然比RTU增加一倍。保持寄存器,这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。离散输入寄存器,离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。

m0_65222138的博客 9360

SimMechanics二连杆仿真避坑指南:Solid模块坐标系设置与Rigid Transform常见错误

本文详细解析了SimMechanics中二连杆平面臂仿真的常见问题,重点探讨Solid模块坐标系设置与Rigid Transform模块的配置陷阱。通过实战案例和MATLAB代码示例,揭示多体系统仿真中的关键错误点,包括坐标系方向定义、参数匹配、端口连接规则等,帮助工程师有效规避仿真风险,提升建模效率。

weixin_29309213的博客 411

告别理论纠结!用ADS和Sigrity玩转电源完整性:从PDN阻抗优化到芯片供电仿真全流程

本文详细介绍了如何利用ADS和Sigrity工具进行电源完整性(PI)分析,从PDN阻抗优化到芯片供电仿真的全流程。通过频域、直流和时域分析,工程师可以精确评估电源网络性能,优化设计以避免电压波动和系统失效。文章还提供了ADS和Sigrity PowerDC的实战操作指南,帮助读者掌握现代PI设计的核心技术。

weixin_33749242的博客 310

RS485协议是什么?它和Modbus协议的区分以及C语言实现

例如,在智能家居中,RS485协议可以用于家庭内部的各种设备之间的通信,包括智能电视、智能音响、智能照明、智能安防等,实现设备的互联互通和集中控制。协议性质:RS485是一种物理层通信标准,主要定义了电气特性、信号传输方式和连接方式等,而Modbus是一种通信协议,定义了一种常用的通信格式和规则,用于在主设备和从设备之间进行数据交换。Modbus是主从方式通信,也就是说,不能同步进行通信,总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信.,本文主要讲解RTU协议。

qq_40326539的博客 1万+

7段数码管驱动电路设计

7段数码管驱动电路设计

好好学习,天天向上 9753

Modbus TCP和Modbus RTU以及Modbus库的介绍

本文系统介绍了Modbus协议及其两种主要实现方式。Modbus由Modicon公司于1979年开发,包含RTU、ASCII和TCP三种变种,具有简单、免费、易用的特点。文章详细解析了ModbusTCP协议的结构、寄存器类型(线圈、离散输入、输入和保持寄存器)、功能码及其应用方法,包括报文格式和数据读写流程。同时对比了ModbusRTU与TCP的区别,指出RTU采用串口通信并增加CRC校验。最后提供了libmodbus库的安装配置方法和常用API接口,并给出通过库函数实现03功能码的编程示例。

fzc2022的博客 2376

Unity-RetargetPro3-动画插件试用

一个名气大于实战的插件。

大话程序员 711

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

modbus tcp报文解析_Modbus协议详解

Modbus概述Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,Modbus通信协议采用的是主从通信模式(即Master/Slave通信模式),其在分散控制方面应用极其广泛,从而使得Modbus协议在全球得到了广泛的应用。Modbus通信协议具有多个变种...

weixin_39608394的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Modbus 通讯协议 (RTU传输模式)

注:( 2020.05.22 ) GB/T 19582.2-2008 《基于Modbus协议的工业自动化网络规范 第1部分:Modbus协议在串行链路上的实现指南》   1、对于modbus ASCII 模式,使用的是高位字节在前,低位字节在后。使用LRC校验。   2、对于modbus rtu 模式,使用的是低位字节在前,高位字节在后。使用CRC校验。 &nbs...

#elseif 19万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Modbus协议

Modbus的介绍

西西弗的博客 1105

网络高级day01(Modbus 通信协议:Modbus TCP)

Modbus 通信协议

dghbs的博客 2250

Modbus RTU、ACSII和TCP协议的数据结构

在可靠性较差的网络上(比如串行网络),数据包可能会丢失,其影响是即使应用程序读取的数据流包含有效的事务处理和协议信息,长度信息的损坏也会使报文头无效。: 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途,比如0是广播地址(广播地址就是应答所有地址,正常的需要两个设备的地址一样才能进行查询和回复)。:占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,所以不同功能码对应不同功能。:根据功能码不同,有不同结构,在下面的实例中有说明。

专注于硬件开发,嵌入式研发,前后端数据技术,3D打印技术剖析。 824
上一篇: 智能网关IGT-DSER不用编程不用联网,快速实现西门子PLC跟艾默生(EMERSON)、GE PAC/PLC相互通讯
下一篇: 不用编程不用组态,快速实现三菱FX5、R系列PLC跟西门子PLC之间通讯的案例
埃和智能
博客等级 码龄19年 561粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值