Modbus协议与现场总线解析只是分享
- 格式:ppt
- 大小:1.04 MB
- 文档页数:34
modbus协议解析协议名称:Modbus协议解析一、引言Modbus协议是一种通信协议,用于在不同设备之间进行数据传输。
本协议解析旨在详细描述Modbus协议的结构、功能和使用方法,以便用户能够准确理解和应用该协议。
二、协议概述Modbus协议是一种基于主从架构的通信协议,用于在工业自动化系统中实现设备之间的数据交换。
该协议支持串行通信和以太网通信,并提供了多种数据传输格式。
三、协议结构1. 物理层Modbus协议的物理层可以使用串行通信和以太网通信。
在串行通信中,常用的物理层包括RS-232、RS-485和RS-422。
在以太网通信中,常用的物理层是以太网。
2. 数据链路层Modbus协议的数据链路层定义了数据帧的格式和传输方式。
数据帧包括起始符、地址、功能码、数据和校验等字段。
3. 应用层Modbus协议的应用层定义了数据的功能和格式。
应用层包括读取数据、写入数据、控制设备等功能,并提供了多种数据格式,如位、字节、寄存器等。
四、功能码解析1. 读取线圈状态(功能码01)该功能码用于读取远程设备的线圈状态。
请求帧中包含读取起始地址和读取数量的信息,响应帧中包含相应的线圈状态。
2. 读取输入状态(功能码02)该功能码用于读取远程设备的输入状态。
请求帧中包含读取起始地址和读取数量的信息,响应帧中包含相应的输入状态。
3. 读取保持寄存器(功能码03)该功能码用于读取远程设备的保持寄存器。
请求帧中包含读取起始地址和读取数量的信息,响应帧中包含相应的寄存器值。
4. 读取输入寄存器(功能码04)该功能码用于读取远程设备的输入寄存器。
请求帧中包含读取起始地址和读取数量的信息,响应帧中包含相应的寄存器值。
5. 写入单个线圈(功能码05)该功能码用于写入远程设备的单个线圈状态。
请求帧中包含写入地址和写入状态的信息,响应帧中包含相应的写入结果。
6. 写入单个保持寄存器(功能码06)该功能码用于写入远程设备的单个保持寄存器。
Modbus,Modbus协议详解Modbus技术规范的关系通用Modbus帧结构--协议数据单元(PDU)当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。
对于一个正常响应来说,服务器仅复制原始功能码。
对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回。
异常码指示差错类型。
Modbus协议在串行链路上的实现模型主要是在RS485和RS232等物理接口上实现Modbus协议。
在Modbus链路层上客户机的功能由主站提供而服务器的功能由从站实现。
Modbus主站-从站协议原理Mo dbus串行链路协议是一个主-从协议。
在同一时刻,只有一个主节点连接与总线,一个或多个子节点(最大编号为247)连接于同一串行总线。
Modbus通信由主节点发起,子节点在没有收到来自主节点的请求时,从不会发送数据。
子节点之间互不通信。
主节点在同一时刻只会发起一个Modbus事务处理。
主节点以两种模式对子节点发送Modbus请求:广播、单播。
主站工作状态图从站工作状态图串行链路上的Modbus地址规则Modbus寻址空间有256个不同地址地址0为广播地址Modbus主节点没有地址,子节点必须有一个唯一的地址串行链路上的Modbus帧结构Modbus串行链路协议是一个主/从协议网络上的每个从站必须有唯一的地址(从1到2 47)从站地址用于寻址从站设备,由主站发起地址0用于广播模式,不需要响应RS-485和RS-232定义了标准的物理端口,提高互可操作性两种Modbus串行传输模式ModbusTCP简介ModbusTCP是运行在TCP/IP上的Modbus报文传输协议。
通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信。
ModbusTCP是开放的协议,IANA(InternetAssignedNumbersAuthority,互联网编号分配管理机构)给Modbus协议赋予TCP编口号为502,这是目前在仪表与自动化行业中唯一分配到的端口号。
Modbus协议讲解一、概述Modbus协议是一种通信协议,用于在自动化领域中传输数据。
它是一种简单且广泛应用的协议,被用于连接不同设备和系统,如工业控制系统、仪器仪表和数据采集设备等。
本文将详细讲解Modbus协议的基本原理、通信方式以及数据传输格式等内容。
二、Modbus协议的基本原理Modbus协议基于主从架构,其中主设备负责发起通信请求,而从设备则负责响应请求并提供数据。
通信可以通过串行或以太网等方式进行。
三、Modbus协议的通信方式1. Modbus RTU通信方式Modbus RTU是一种串行通信方式,使用二进制编码进行数据传输。
在Modbus RTU通信中,每个数据帧由起始位、从站地址、功能码、数据和校验位组成。
2. Modbus ASCII通信方式Modbus ASCII也是一种串行通信方式,但使用ASCII编码进行数据传输。
与Modbus RTU相比,Modbus ASCII通信方式更易于调试,但传输速度较慢。
3. Modbus TCP通信方式Modbus TCP是一种基于以太网的通信方式,使用TCP/IP协议进行数据传输。
与串行通信方式相比,Modbus TCP具有更高的传输速度和更大的通信距离。
四、Modbus协议的数据传输格式1. 寄存器地址Modbus协议使用寄存器地址来标识设备中的数据。
寄存器地址可以是输入寄存器(IR)、保持寄存器(HR)、离散输入寄存器(DI)或线圈寄存器(CO)。
2. 功能码功能码用于指定通信请求的类型。
常见的功能码包括读取单个寄存器(03H)、写入单个寄存器(06H)和读取多个寄存器(10H)等。
3. 数据格式Modbus协议支持多种数据格式,如16位整数、32位整数、浮点数等。
数据格式的选择取决于具体的应用需求。
五、Modbus协议的应用场景1. 工业控制系统Modbus协议广泛应用于工业控制系统中,用于实现设备之间的数据交换和控制命令传输。
Modbus协议讲解一、背景介绍Modbus协议是一种通信协议,用于在工业自动化领域中的设备之间进行数据传输和通信。
它是一种开放的协议,广泛应用于监控系统、工控设备和传感器等领域。
本文将对Modbus协议进行详细讲解,包括协议的基本原理、通信方式、数据格式以及常见应用场景等。
二、Modbus协议基本原理Modbus协议基于主从结构,其中主设备(也称为主站)负责发送请求,而从设备(也称为从站)则负责响应请求。
主站和从站之间通过物理介质(如串口、以太网等)进行通信。
Modbus协议支持多种通信方式,包括串行通信和以太网通信。
三、Modbus协议通信方式1. 串行通信:Modbus协议支持RS-232、RS-485等串行通信方式。
在串行通信中,主站通过发送请求帧给从站,从站接收请求帧并返回响应帧给主站。
请求帧和响应帧的格式由协议规定,包括起始符、地址、功能码、数据等字段。
2. 以太网通信:Modbus协议也支持以太网通信方式,其中主站和从站通过以太网进行数据传输。
以太网通信可以通过TCP/IP协议或者UDP协议进行。
四、Modbus协议数据格式Modbus协议定义了多种数据格式,包括寄存器、线圈、输入寄存器和输入线圈等。
其中,寄存器用于存储16位的数据,线圈用于存储布尔类型的数据,输入寄存器用于存储只读的16位数据,输入线圈用于存储只读的布尔类型数据。
五、Modbus协议应用场景Modbus协议在工业自动化领域有广泛的应用场景,以下是几个常见的应用场景:1. 监控系统:Modbus协议可用于监控系统中的数据采集和控制,主站通过读取从站的寄存器或线圈数据来获取实时状态信息,并可以通过写入数据到从站来控制设备。
2. 工控设备:Modbus协议可用于工控设备之间的数据交换,例如PLC(可编程逻辑控制器)之间的通信。
主站可以通过读取从站的寄存器数据来获取传感器的测量值,并可以通过写入数据到从站来控制执行器。
3. 传感器:Modbus协议可用于传感器和主控设备之间的通信。
Modbus协议讲解协议名称:Modbus协议一、引言Modbus协议是一种通信协议,用于在自动化领域中的设备之间进行通信。
该协议由Modicon公司于1979年首次引入,现已成为工业领域中最常用的通信协议之一。
本文将详细介绍Modbus协议的基本原理、通信方式和数据传输格式。
二、Modbus协议基本原理1. Modbus协议采用主从结构,其中主机负责发起通信请求,从机负责响应请求。
主机可以是计算机、PLC或其他设备,而从机通常是传感器、执行器或其他外部设备。
2. Modbus协议使用简单的请求-响应模型,主机发送请求给从机,从机接收并响应请求。
请求和响应之间通过Modbus协议定义的数据帧进行传输。
3. Modbus协议支持多种物理层和传输层,包括串行通信和以太网通信。
常用的物理层包括RS-232、RS-485和以太网,传输层则使用Modbus协议定义的应用层协议。
三、Modbus协议通信方式1. 串行通信:Modbus协议支持串行通信,其中包括RS-232和RS-485两种常用的物理层标准。
RS-232适用于短距离通信,而RS-485适用于长距离通信和多节点通信。
2. 以太网通信:Modbus协议也支持以太网通信,其中使用TCP/IP协议栈进行数据传输。
以太网通信适用于长距离通信和大规模网络通信。
四、Modbus协议数据传输格式1. Modbus协议定义了多种数据传输格式,包括读取线圈状态、读取输入状态、读取保持寄存器和读取输入寄存器等。
2. 读取线圈状态:主机发送读取线圈状态的请求,从机响应并返回线圈的状态(开/关)。
3. 读取输入状态:主机发送读取输入状态的请求,从机响应并返回输入的状态(开/关)。
4. 读取保持寄存器:主机发送读取保持寄存器的请求,从机响应并返回保持寄存器的值。
5. 读取输入寄存器:主机发送读取输入寄存器的请求,从机响应并返回输入寄存器的值。
6. 写入单个线圈:主机发送写入单个线圈的请求,从机响应并执行写入操作。
Modbus与第三方系统通讯 - 现场总线背景:我们现在做锅炉节能控制,都是在原有的控制系统上加上西门子的控制器,把我们的算法写在西门子控制器中,通过通讯的方式读取第三方系统的数据运算后把控制指令再发回去。
因为第三方系统使用的系统不同,目前比较多的如ABB,施耐德,GE,上海新华,和利时,浙大中控等,为了实现和这些系统做的控制系统,就要有一个比较合理的通讯方式,目前采用的是opc方式通讯。
目前采用的通讯方式:目前采用opc方式,锅炉也是采用母管制的,所以要同时把整个母管中链接的锅炉的数据都采集过来才好,这样数据两比较大,在大量数据交换的情况下,速度比较好。
我们现在在向大型锅炉控制上转型,大型锅炉都是一炉一机的,针对我们的现在的要求不太合适,我们的特点是需要交换的数据量小最多两三百点,但是要求速度快。
我们目前的通讯方式是用pc和第三方系统通讯然后pc和plc通讯,pc中用wincc把读取到的数据转写到plc的变量中,wincc中如果脚本执行的速度过快,则影响到wincc的其他的功能,所以目前最快也就是1s的周期。
目前的技术需求:而针对一炉一机这种数据量小,要求速度快的通讯特点,modbus通讯方式更合适,modbus是比较早的通讯协议,大多数的智能仪表都支持,控制系统也都支持,所以不存在无法通讯的难点。
为了实现这个通讯,我于2021年的年底在江苏阜宁澳洋热电厂做了测试。
项目硬件需求:江苏阜宁澳洋热电厂采用的是和利时的dcs控制系统,因为我们的控制思路是在原有控制系统基础上做的程序,所以硬件中不包含io模块采用西门子ps407,400控制器以及cp441通讯模块。
网上采购232通讯接头,自制232通讯线。
硬件组态:硬件组态很简单,只要按照说明资料一步步操作就可以了,这里没有什么好说的。
遇到的问题:1、接线。
网上搜索到的232接线图:按照这个接线图连接后无法通讯,后来我考虑到modbus的通讯需要告诉对方是否准备还收发数据以及是否收发结束,所以应该状态也发给对方才行,所以把上面的接线图改成:实现了硬件连接,可以通讯了。
Modbus协议详解Modbus协议是一种工业通信协议,广泛应用于自动化控制系统中。
本文将详细解析Modbus协议的基本原理、数据格式以及常见应用场景。
一、Modbus协议概述Modbus协议是由Modicon公司(现在的施耐德电气公司)于1979年提出的,用于工业自动化领域的通信。
它是一种基于主从架构的串行通信协议,可以在不同设备之间实现数据的传输和交换。
Modbus协议主要包含三个核心要素:Modbus主机、Modbus从机和Modbus报文。
Modbus主机负责发送指令和接收响应,而Modbus从机则执行主机指令并返回响应。
Modbus报文是主机和从机之间通信的载体,包含了指令、数据以及校验等信息。
二、Modbus数据格式Modbus报文采用了简洁的数据格式,具体分为两种:ModbusASCII格式和Modbus RTU格式。
下面分别介绍这两种格式的特点。
1. Modbus ASCII格式Modbus ASCII格式使用ASCII码表示数据,每个字节用2个ASCII 字符表示。
具体的数据格式如下:- 起始符:冒号“:”,表示报文的开始。
- 从机地址:2个十六进制字符,表示从机的地址。
- 功能码:2个十六进制字符,表示主机指令的功能码。
- 数据:可变长度的十六进制字符,表示主机指令携带的数据。
- 校验:2个十六进制字符,用于校验数据的正确性。
- 结束符:回车和换行符,表示报文的结束。
2. Modbus RTU格式Modbus RTU格式使用二进制表示数据,每个字节用8个比特位表示。
具体的数据格式如下:- 起始符:连续静默时间,表示报文的开始。
- 从机地址:1个字节,表示从机的地址。
- 功能码:1个字节,表示主机指令的功能码。
- 数据:可变长度的字节,表示主机指令携带的数据。
- 校验:2个字节,用于校验数据的正确性。
- 结束符:连续静默时间,表示报文的结束。
三、Modbus常见应用场景Modbus协议广泛应用于工业自动化控制系统,具有以下几个常见的应用场景。
Modbus介绍与协议解析一、Modbus介绍Modbus是一种通讯协议,主要应用于电子控制器上的一种通用语言。
Modbus支持多种电气接口,如RS232、RS485、TCP/IP等。
多数Modbus设备通信是通过串口或TCP/IP进行连接。
通常情况下Modbus是主从架构,即通信节点是Master,其它使用Modbus协议参与通信的是slave节点(最多247个,地址范围为1-247,0节点是广播地址)。
每个slave设备都具有一个唯一的地址。
总线上只能有一个Master节点。
请求流程Modbus传输模式可分为 ASCII和RTU两种模式,同一网络中所有设备必须保持统一,要么是ASCII,要么统一为RTU模式,两者不可共存。
相对来说RTU模式传输效率较高,ASCII模式下,消息以冒号字符开始,以回车换行字符结束。
RTU模式下,消息发送和接收至少间隔3.5字符时间的停顿间隔作为标志。
Modbus寄存器介绍所有数据都存在寄存器中,寄存器可指物理寄存器,也可是一块内存区域。
Modbus根据数据类型及各自读写特性,将寄存器分为了4个部分,分别如下。
寄存器介绍Modbus地址、功能码、数据域介绍Modbus消息帧的地址,在ASCII模式下包含2个字符,在RTU 模式下包含1个字符。
单个设备地址实际范围是在1-247值之间。
0为广播地址、248-255为保留地址。
功能码由1个字节构成,因此取值范围1-255。
常用功能码如下:01:读线圈状态02:读输入状态03:读保持寄存器04:读输入寄存器05:强制单线圈06:预制单寄存器15:强制多线圈17:报告从设备ID22:屏蔽写寄存器23:读/写寄存器数据内容与功能码紧密相关,存放功能码需要操作的具体数据,数据域以字节为单位,长度可变,对于有些功能码此域可为空。
二、Modbus协议解析ModbusTCP通常使用端口502作为接收报文端口。
ModbusTCP包含一个应用报文头,该头占用7个字节。
Modbus协议讲解协议名称:Modbus协议1. 引言Modbus协议是一种通信协议,用于在工业自动化领域中实现设备之间的通信。
本文将详细讲解Modbus协议的基本原理、通信方式、数据传输格式以及常见的应用场景。
2. 基本原理Modbus协议采用主从结构,其中主机负责发起通信请求,从机负责响应请求。
通信过程中,主机通过读取或写入寄存器的方式与从机进行数据交换。
3. 通信方式Modbus协议支持两种常见的通信方式:串行通信和以太网通信。
3.1 串行通信串行通信使用RS-232、RS-485等物理层接口,通过串行通信线缆连接主机和从机。
串行通信速率通常为9600、19200、38400等波特率。
3.2 以太网通信以太网通信使用TCP/IP协议栈,通过以太网连接主机和从机。
以太网通信速率通常为10Mbps、100Mbps、1000Mbps等。
4. 数据传输格式Modbus协议定义了一种简单的数据传输格式,包括请求帧和响应帧。
4.1 请求帧请求帧由以下几个字段组成:- 从机地址:标识被请求的从机设备。
- 功能码:指定请求的操作类型,如读取寄存器或写入寄存器。
- 数据字段:包含具体的请求数据,如读取的寄存器地址和数量。
4.2 响应帧响应帧由以下几个字段组成:- 从机地址:与请求帧中的从机地址一致。
- 功能码:与请求帧中的功能码一致。
- 数据字段:包含具体的响应数据,如读取的寄存器值。
5. Modbus功能码Modbus协议定义了一系列功能码,用于指定不同的操作类型。
常见的功能码包括:- 读取线圈状态:读取从机设备的开关量输入状态。
- 读取输入状态:读取从机设备的开关量输出状态。
- 读取保持寄存器:读取从机设备的模拟量输入状态。
- 读取输入寄存器:读取从机设备的模拟量输出状态。
- 写入单个线圈:向从机设备写入一个开关量输出状态。
- 写入单个保持寄存器:向从机设备写入一个模拟量输出状态。
6. 应用场景Modbus协议广泛应用于工业自动化领域,常见的应用场景包括:- 监控系统:通过读取从机设备的状态,实时监控生产过程中的各项参数。
modbus协议解析协议名称:Modbus协议解析1. 引言Modbus协议是一种通信协议,用于在工业自动化领域中实现设备之间的数据传输和通信。
本协议解析旨在详细介绍Modbus协议的结构、功能和应用,并提供相关技术细节和示例。
2. 协议概述Modbus协议是一种基于主从架构的协议,主要用于连接PLC(可编程逻辑控制器)和其他设备,例如传感器、执行器等。
它采用简单而高效的通信方式,使用基于串行通信和以太网的物理层。
3. 协议结构Modbus协议包含两个主要部分:应用层和传输层。
应用层定义了数据的格式和传输规则,而传输层则负责数据的传输和错误检测。
3.1 应用层Modbus应用层定义了一系列功能码,用于读取和写入数据。
常用的功能码包括读取线圈状态、读取输入状态、读取保持寄存器和读取输入寄存器等。
3.2 传输层Modbus传输层定义了不同的物理层和传输方式,包括串行通信和以太网。
对于串行通信,常用的传输方式有Modbus RTU和Modbus ASCII。
对于以太网通信,常用的传输方式有Modbus TCP/IP。
4. 协议功能Modbus协议提供了以下主要功能:4.1 数据读取Modbus协议支持读取不同类型的数据,包括线圈状态、输入状态、保持寄存器和输入寄存器。
通过读取这些数据,用户可以获取设备的实时状态和参数。
4.2 数据写入Modbus协议支持写入不同类型的数据,包括线圈状态、保持寄存器和输入寄存器。
通过写入这些数据,用户可以控制设备的状态和参数。
4.3 异常处理Modbus协议定义了一系列异常码,用于处理通信过程中可能发生的错误和异常情况。
例如,当设备无法响应请求或请求的数据超出范围时,将返回相应的异常码。
5. 协议应用Modbus协议广泛应用于工业自动化领域,包括但不限于以下应用场景:5.1 监控和控制系统Modbus协议可用于监控和控制系统,实现对设备状态和参数的实时监测和控制。
例如,通过读取传感器数据和控制执行器,实现对工业过程的监控和控制。
modbus协议解析协议名称:Modbus协议解析一、引言Modbus协议是一种通信协议,用于在工业自动化领域中实现设备之间的数据交换。
本协议解析旨在详细介绍Modbus协议的结构、功能和通信流程,以帮助用户更好地理解和应用该协议。
二、协议概述Modbus协议是一种开放的通信协议,最初由Modicon公司于1979年开发,用于PLC(可编程逻辑控制器)和其他自动化设备之间的通信。
该协议基于主从架构,其中主站负责发送请求,而从站负责响应请求并提供所需的数据。
三、协议结构Modbus协议采用简单的二进制格式进行通信。
以下是协议的基本结构:1. 帧结构Modbus帧由以下几个部分组成:- 起始符:用于标识帧的开始,通常为一个字节。
- 地址字段:用于标识从站的地址,通常为一个字节。
- 功能码:用于指示主站请求的操作类型,通常为一个字节。
- 数据字段:用于携带请求或响应的数据,长度可变。
- 校验字段:用于校验帧的完整性,通常为一个或两个字节。
- 结束符:用于标识帧的结束,通常为一个字节。
2. 功能码Modbus协议定义了一系列功能码,用于指示主站请求的操作类型。
常见的功能码包括读取线圈状态、读取输入状态、读取保持寄存器、读取输入寄存器、写单个线圈、写单个寄存器等。
3. 数据字段数据字段用于携带请求或响应的数据。
具体的数据格式取决于功能码和操作类型。
例如,读取线圈状态功能码的数据字段包含了线圈的状态信息。
四、通信流程Modbus协议的通信流程如下:1. 主站发送请求主站向从站发送请求,请求中包含了从站的地址、功能码和相关参数。
2. 从站响应请求从站接收到请求后,根据功能码执行相应的操作,并将结果封装成响应帧发送给主站。
3. 主站处理响应主站接收到从站的响应后,解析响应帧,并根据需要提取所需的数据。
4. 通信完成主站和从站之间的通信完成后,可以进行下一轮的通信或关闭连接。
五、应用场景Modbus协议广泛应用于工业自动化领域,常见的应用场景包括:- 监控和控制系统:通过Modbus协议可以实现对设备状态的监测和控制,如温度传感器、压力传感器等。
modbus协议解析协议名称:Modbus协议解析一、背景介绍Modbus协议是一种通信协议,用于在自动化系统中传输数据。
它广泛应用于工业控制领域,特殊是在监控和控制设备之间进行通信。
本协议解析旨在详细介绍Modbus协议的结构和功能,以匡助用户更好地理解和应用该协议。
二、协议结构Modbus协议由应用层、传输层和物理层组成。
下面将详细介绍每一个层的功能和结构。
1. 应用层应用层定义了Modbus协议的数据结构和功能。
它包括了读取和写入数据的命令,以及错误处理和异常情况的处理。
应用层使用了一种基于请求/响应模式的通信方式,其中主站发送请求,从站响应请求并返回数据。
2. 传输层传输层定义了Modbus协议的数据传输方式。
它包括了传输数据的格式、帧结构和错误检测机制。
Modbus协议支持串行通信和以太网通信两种传输方式。
在串行通信中,传输层使用了RS-232、RS-485或者RS-422等物理接口;在以太网通信中,传输层使用了TCP/IP协议。
3. 物理层物理层定义了Modbus协议的电气和机械特性。
它规定了使用的物理接口、电平和线缆要求。
根据通信距离和速率的不同,物理层可以选择不同的接口和线缆类型。
三、协议功能Modbus协议提供了以下功能,以满足自动化系统中的数据通信需求。
1. 数据读取和写入Modbus协议支持主站向从站发送读取和写入数据的命令。
主站可以通过读取命令获取从站的数据,也可以通过写入命令向从站发送数据。
这样可以实现数据的采集和控制。
2. 数据类型支持Modbus协议支持多种数据类型,包括位(Coil)、离散输入(Discrete Input)、保持寄存器(Holding Register)和输入寄存器(Input Register)等。
用户可以根据实际需求选择合适的数据类型。
3. 多从站支持Modbus协议支持多个从站连接到同一个主站。
主站可以通过从站地址来选择特定的从站进行通信。
Modbus协议使用常见问题分析 - 现场总线 Modbus协议最初由Modicon公司开发出来,是针对plc设备设计的基于串行总线的主从模式的应用层总线设备协议。
ModbusTCP是封装在TCP包内的Modbus协议,虽然有一些变化,但是根本上还是主从模式。
随着嵌入式技术的发展,国内很多系统的控制和采集单元部分为公司自主研发,一般建议这些公司的串行通讯协议采用Modbus协议,很多用户在modbus协议存在着理解错误,现在分析如下:一、modbus的保持和输入寄存器是以word(16bit)为单位的。
比如4****(保持寄存器/输出寄存器)和3****(输入寄存器)是以字为单位的。
所以,如果读40001寄存器开始的一个16位的无符号数,那么返回2个Byte,并可以从40002开始读下一个16位的无符号数。
但是,如果读40001寄存器开始的一个32位浮点数,那么,返回4个Byte,而且,下一个32位浮点数必须从40003开始。
常见问题:1)、将40001定义为一个Byte的数据;2)、将40001定义为32位浮点数,40002为下一个32位浮点数。
二、寄存器最小地址为1,而报文起始地址为0。
在数据报文中,所有的modbus地址都是从0开始的。
也就是首次出现的数据项在报文中的地址为0。
比如:1.在控制器中,“线圈1”在Modbus报文的地址域中的地址为0000。
2.线圈127的十六进制报文地址为007E hex(十进制的126)3.保持寄存器40001的报文地址为00 00。
因为报文功能码明确要操作“保持寄存器”,所以,协议就以“4XXXX”代表这个寄存器。
4.保持寄存器40108的报文地址为006B hex (十进制107)总之,Modbus地址一般指4****(保持寄存器/输出寄存器)和3****(输入寄存器),这时应用层面的:比如设备说明书可以简要说明设备支持Modbus RTU标准协议,并详细描述其地址对应关系为:40001 -- 模拟量采集通道1,16位有符号数,.....。