modbus协议解析
- 格式:doc
- 大小:324.00 KB
- 文档页数:23
Modbus通讯协议详解一、引言Modbus通讯协议是一种常用的串行通信协议,广泛应用于工业自动化领域。
本文将详细解析Modbus通讯协议的基本原理、数据格式、通信流程以及常见问题。
二、基本原理1. Modbus通讯协议采用主从结构,主要包括一个主站和多个从站。
主站负责发起通信请求,从站负责响应请求并返回数据。
2. Modbus通讯协议基于传统的串行通信方式,支持RS-232、RS-485等物理层接口。
3. Modbus通讯协议采用简单的请求/响应模式,主站发送请求帧,从站响应并返回数据帧。
三、数据格式1. Modbus通讯协议的数据单元被称为“寄存器”,分为输入寄存器(Input Register)、保持寄存器(Holding Register)、线圈(Coil)和离散输入(Discrete Input)四种类型。
2. 输入寄存器用于从站向主站传输只读数据,保持寄存器用于双向传输读写数据,线圈用于从站向主站传输开关量数据,离散输入用于主站向从站传输只读开关量数据。
3. Modbus通讯协议采用16位的数据单元标识符,用于标识寄存器的类型和地址。
4. 数据帧包括起始符、设备地址、功能码、数据区、错误校验等字段。
四、通信流程1. 主站向从站发送请求帧,请求帧包括设备地址、功能码、数据区等字段。
2. 从站接收到请求帧后,根据功能码执行相应的操作,并将结果存储在数据区中。
3. 从站发送响应帧,响应帧包括设备地址、功能码、数据区等字段。
4. 主站接收到响应帧后,解析数据区中的结果,并进行相应的处理。
五、常见问题1. Modbus通讯协议的数据传输是基于字节的,因此在不同字节序的系统中需要进行字节序转换。
2. Modbus通讯协议的速率、数据位、停止位和校验位等参数需要保持一致,否则通信将无法建立。
3. Modbus通讯协议的设备地址是唯一的,主站通过设备地址来区分不同的从站。
4. Modbus通讯协议的功能码定义了不同的操作类型,主站通过功能码来指定所需的操作。
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协议1. 简介Modbus协议是一种通信协议,用于在自动化领域中的设备之间进行数据交换。
它是一种开放的协议,广泛应用于工业自动化、能源管理、建筑自动化等领域。
本文将详细介绍Modbus协议的结构、功能和应用。
2. 协议结构Modbus协议采用主从结构,其中主设备负责发起通信请求,从设备负责响应请求并提供数据。
协议基于传统的串行通信和现代以太网通信两种物理层。
2.1 串行通信在串行通信中,Modbus协议使用RS-232、RS-422或RS-485等物理层标准。
通信帧由起始位、数据位、校验位和停止位组成。
主设备通过发送请求帧,从设备接收并响应。
2.2 以太网通信在以太网通信中,Modbus协议使用TCP/IP协议栈。
主设备和从设备通过以太网连接,并使用IP地址进行通信。
通信帧以TCP报文的形式传输,包括源IP地址、目标IP地址、源端口号、目标端口号和Modbus数据。
3. 功能Modbus协议定义了一系列功能码,用于实现不同的数据交换操作。
以下是常用的功能码及其功能:3.1 读取线圈状态(功能码0x01)主设备向从设备发送请求,读取从设备的线圈状态。
从设备将线圈状态以位的形式返回给主设备。
3.2 读取输入状态(功能码0x02)主设备向从设备发送请求,读取从设备的输入状态。
从设备将输入状态以位的形式返回给主设备。
3.3 读取保持寄存器(功能码0x03)主设备向从设备发送请求,读取从设备的保持寄存器。
从设备将保持寄存器的值以字的形式返回给主设备。
3.4 读取输入寄存器(功能码0x04)主设备向从设备发送请求,读取从设备的输入寄存器。
从设备将输入寄存器的值以字的形式返回给主设备。
3.5 写单个线圈(功能码0x05)主设备向从设备发送请求,写入从设备的单个线圈。
从设备将操作结果返回给主设备。
3.6 写单个寄存器(功能码0x06)主设备向从设备发送请求,写入从设备的单个保持寄存器。
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 是一种通信协议,用于在工业自动化系统中实现设备之间的通信。
它最初是由 Modicon 公司于1979年开发的,现已成为工业领域中最常用的通信协议之一。
Modbus 协议简单、易于实现和维护,适用于各种设备和通信介质。
1. Modbus 协议结构:Modbus 协议基于主从架构,其中主机负责发起通信请求,而从机负责响应请求并提供数据。
协议包括以下几个重要的组成部分:1.1 帧结构:Modbus 帧由起始位、地址字段、功能码、数据字段和校验字段组成。
起始位是一个长时间低电平信号,用于同步传输。
地址字段指定从机的地址。
功能码用于指示所需的操作类型,如读取数据或写入数据。
数据字段包含要传输的数据。
校验字段用于检测数据传输的完整性。
1.2 功能码:Modbus 定义了一系列功能码,用于不同类型的操作。
常见的功能码包括读取线圈状态、读取输入状态、读取保持寄存器、读取输入寄存器、写单个线圈、写单个寄存器等。
1.3 数据模型:Modbus 定义了一种简单的数据模型,包括线圈、输入状态、保持寄存器和输入寄存器。
线圈和输入状态是布尔类型的数据,保持寄存器和输入寄存器是16位的二进制数据。
2. Modbus RTU 协议:Modbus RTU 是 Modbus 协议的一种常用实现方式,它使用二进制编码进行数据传输。
Modbus RTU 帧结构包括起始位、从机地址、功能码、数据字段、校验字段和结束位。
起始位和结束位都是逻辑高电平信号。
3. Modbus TCP 协议:Modbus TCP 是 Modbus 协议的另一种常用实现方式,它使用 TCP/IP 网络进行数据传输。
Modbus TCP 帧结构与 Modbus RTU 相比有所不同,它将起始位、从机地址和功能码替换为 TCP/IP 头部信息,数据字段和校验字段保持不变。
4. Modbus 功能码详解:4.1 读取线圈状态(功能码 01):该功能码用于读取线圈的状态,返回的数据是布尔类型。
Modbus通讯协议详解一、概述Modbus通讯协议是一种用于工业自动化领域的通讯协议,它允许不同的设备之间进行数据交换。
本文将详细介绍Modbus通讯协议的基本原理、通讯方式、数据帧格式以及常用功能码等内容。
二、基本原理Modbus通讯协议采用主从结构,其中主机负责发起通讯请求,从机负责响应请求并返回数据。
通讯过程中,主机通过发送请求帧来读取或写入从机的数据。
从机收到请求后进行相应的处理,并将结果返回给主机。
三、通讯方式Modbus通讯协议支持串行通讯和以太网通讯两种方式。
1. 串行通讯串行通讯采用RS-232或RS-485等物理层接口,通讯速率可根据实际需求进行设置。
在串行通讯中,主机通过发送特定的数据帧来与从机进行通讯。
2. 以太网通讯以太网通讯采用TCP/IP协议栈,通讯速率较高。
主机通过发送TCP报文与从机进行通讯,其中Modbus协议位于应用层。
四、数据帧格式Modbus通讯协议中的数据帧由起始符、地址、功能码、数据、校验等字段组成。
1. 起始符起始符用于标识数据帧的开始,通常为一个字节的0xFF。
2. 地址地址字段用于指定从机的地址,主机通过地址来选择与哪个从机进行通讯。
地址长度为一个字节,取值范围为1-247。
3. 功能码功能码用于指定通讯请求的类型,不同的功能码对应不同的操作。
常用的功能码包括读取线圈状态、读取输入状态、读取保持寄存器、写单个寄存器等。
4. 数据数据字段用于存储通讯请求或响应的数据。
数据的长度和格式取决于具体的功能码和操作类型。
5. 校验校验字段用于检测数据的完整性,常用的校验算法包括CRC校验和LRC校验。
五、常用功能码Modbus通讯协议定义了一系列功能码,用于实现不同的通讯操作。
1. 读取线圈状态(功能码:0x01)该功能码用于读取从机中的线圈状态,线圈状态为开(1)或闭(0)。
2. 读取输入状态(功能码:0x02)该功能码用于读取从机中的输入状态,输入状态为开(1)或闭(0)。
Modbus 协议详解一、引言Modbus协议是一种通信协议,用于在自动化系统中实现设备之间的通信。
它是一种开放的协议,广泛应用于工业控制领域。
本文将详细解释Modbus协议的工作原理、通信方式和数据传输格式。
二、工作原理Modbus协议采用主从结构,其中一个设备作为主站,其他设备作为从站。
主站负责发起通信请求,从站则响应请求并提供所需的数据。
通信可以通过串行或以太网进行。
三、通信方式1. 串行通信Modbus协议支持RS-232、RS-485和RS-422等串行通信方式。
在串行通信中,使用二进制传输数据。
主站通过发送请求帧来向从站请求数据,从站则通过发送响应帧来回复请求。
2. 以太网通信Modbus协议还支持基于以太网的通信方式,使用TCP/IP协议进行数据传输。
在以太网通信中,主站通过建立TCP连接向从站发送请求,从站则通过TCP连接回复响应。
四、数据传输格式Modbus协议定义了几种常用的数据传输格式,包括寄存器读写、线圈读写和离散输入读取。
1. 寄存器读写寄存器读写是最常用的数据传输方式之一。
主站可以通过读取和写入寄存器来获取或修改从站的数据。
读取寄存器时,主站发送读取请求帧,从站则回复包含所需数据的响应帧。
写入寄存器时,主站发送写入请求帧,从站则回复确认帧。
2. 线圈读写线圈读写用于读取和写入从站的开关状态。
主站可以通过读取和写入线圈来获取或修改从站的开关状态。
读取线圈时,主站发送读取请求帧,从站则回复包含开关状态的响应帧。
写入线圈时,主站发送写入请求帧,从站则回复确认帧。
3. 离散输入读取离散输入读取用于读取从站的离散输入状态。
主站可以通过读取离散输入来获取从站的输入状态。
读取离散输入时,主站发送读取请求帧,从站则回复包含输入状态的响应帧。
五、通信协议Modbus协议定义了一套通信规则,包括帧格式、地址解析和错误处理。
1. 帧格式Modbus协议的帧格式包括起始符、地址、功能码、数据和校验等字段。
MODBUS协议详细讲解MODBUS协议是一种用于工业自动化领域的通信协议,它被广泛应用于各种设备间的数据交换和通信。
本文将详细介绍MODBUS协议的原理、结构和工作方式,以及其常见的应用场景和优势。
一、协议概述MODBUS协议是一种基于主从结构的通信协议,它定义了一系列规范和命令格式,用于实现不同设备之间的数据传输和通信。
该协议最早由Schneider Electric公司于1979年提出,目前已成为工业自动化领域最常用的通信协议之一。
MODBUS协议主要分为MODBUS ASCII和MODBUS RTU两种传输模式,其中MODBUS RTU是应用最广泛的一种模式,采用二进制编码来进行数据传输,具有较高的效率和可靠性。
二、协议结构MODBUS协议主要由两个部分组成:应用层和传输层。
1. 应用层:应用层定义了MODBUS协议中的命令格式和数据格式。
它主要包含了读取和写入数据的命令,如读取线圈状态、读取输入状态、读取保持寄存器和读取输入寄存器等。
这些命令可以通过主设备向从设备发送,并获取相应的响应。
2. 传输层:传输层定义了MODBUS协议中数据的传输方式和物理层面的连接。
MODBUS RTU采用串行通信方式,使用RS-485或RS-232接口进行连接,而MODBUS ASCII则采用ASCII字符进行传输。
三、工作方式MODBUS协议的工作方式通常涉及一个主设备和多个从设备之间的通信。
1. 主设备:主设备负责发送命令并接收从设备的响应。
它可以是一个计算机、PLC或其他支持MODBUS协议的设备。
2. 从设备:从设备接收主设备发送的命令,并做出相应的响应。
从设备通常是传感器、执行器、数据采集设备等。
在通信过程中,主设备通过MODBUS协议中定义的命令向从设备发送读取或写入数据的请求,从设备接收到命令后进行处理,并将结果通过响应报文返回给主设备。
四、应用场景MODBUS协议在工业自动化领域有广泛的应用,特别适用于以下场景:1. 监控系统:MODBUS协议可用于实时监控和控制工业设备,如温度监测、湿度监测、电流监测等。
Modbus通讯协议详解一、引言Modbus通讯协议是一种常用于工业控制系统中的通信协议,它基于主从结构,用于实现不同设备之间的数据交换。
本文将详细介绍Modbus通讯协议的基本原理、通信方式、数据格式以及常见应用场景。
二、协议原理Modbus通讯协议是基于串行通信的协议,它使用简单的请求/响应模式进行数据交换。
协议包括两种通信方式:Modbus ASCII和Modbus RTU。
Modbus ASCII使用ASCII码表示数据,而Modbus RTU使用二进制码表示数据。
协议规定了数据的传输格式、通信命令、错误检测等。
三、通信方式1. Modbus ASCII通信方式Modbus ASCII通信方式使用ASCII码表示数据,每个字节使用两个ASCII字符表示,其中包括一个校验和。
通信过程中,主站发送请求命令,从站接收并处理请求,然后从站发送响应。
请求和响应之间使用回车换行符进行分隔。
2. Modbus RTU通信方式Modbus RTU通信方式使用二进制码表示数据,每个字节使用8位二进制表示。
通信过程中,主站发送请求命令,从站接收并处理请求,然后从站发送响应。
请求和响应之间使用帧间隔进行分隔。
四、数据格式1. Modbus ASCII数据格式Modbus ASCII数据格式由起始字符、从站地址、功能码、数据区、校验和和结束字符组成。
起始字符是冒号,结束字符是回车换行符。
校验和是通过对除起始字符和校验和本身外的所有字符进行异或运算得到的。
2. Modbus RTU数据格式Modbus RTU数据格式由从站地址、功能码、数据区、CRC校验和组成。
CRC校验和是通过对从站地址、功能码和数据区的所有字节进行CRC校验运算得到的。
五、常见应用场景Modbus通讯协议广泛应用于工业自动化领域,常见的应用场景包括:1. 监控系统:通过Modbus通讯协议,可以实现对各种传感器、仪表的数据采集和监控。
2. 控制系统: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. 写入单个线圈:主机发送写入单个线圈的请求,从机响应并执行写入操作。
目录1、Modbus简介 (2)1.1MODBUS功能码简述 (3)1.2功能码说明 (4)1.3寄存器种类说明 (5)1.4 PLC地址和协议地址区别 (6)1.4.1 寄存器PLC地址 (6)1.4.2 寄存器协议地址 (6)2.MODBUS指令说明 (6)2.1 读线圈寄存器01H (6)2.2 读离散输入寄存器02H (9)2.3 读保持寄存器03H (11)2.4 读输入寄存器04H (13)2.5 写单个线圈寄存器05H (15)2.6 写单个保持寄存器06H (17)2.7 写多个线圈寄存器0FH (18)2.8 写多个保持寄存器10H (21)1、Modbus简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
ModBus网络只有一个主机,所有通信都由他发出。
网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定.Modbus比其他通信协议使用的更广泛的主要原因有:(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
目前,支持Modbus的厂家超过400家,支持Modbus 的产品超过600种。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus的帧格式简单、紧凑,通俗易懂。
用户使用容易,厂商开发简单。
其传输模式有:RTU、ASSCII 、TCP图1 modbus结构示意图1.1MODBUS功能码简述下表列出MODBUS支持的部分功能代码:以十进制表示。
表1.1 MODBUS部分功能码代码中文名称寄存器PLC地址位操作/字操作操作数量01 读线圈状态00001-09999 位操作单个或多个02 读离散输入状态10001-19999 位操作单个或多个03 读保持寄存器40001-49999 字操作单个或多个04 读输入寄存器30001-39999 字操作单个或多个05 写单个线圈00001-09999 位操作单个06 写单个保持寄存器40001-49999 字操作单个15 写多个线圈00001-09999 位操作多个1.2功能码说明功能码可以分为位操作和字操作两类。
位操作的最小单位为BIT,字操作的最小单位为两个字节。
【位操作指令】读线圈状态01H,读(离散)输入状态02H,写单个线圈06H和写多个线圈0FH。
【字操作指令】读保持寄存器03H,写单个寄存器06H,写多个保持寄存器10H。
1.2寄存器地址分配表1.2 MODBUS寄存器地址分配1.3寄存器种类说明表1.3 MODBUS寄存器种类说明1.4 PLC地址和协议地址区别PLC地址可以理解为协议地址的变种,在触摸屏和PLC编程中应用较为广泛。
1.4.1 寄存器PLC地址寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是文本显示器。
PLC地址一般采用10进制描述,共有5位,其中第一位代码寄存器类型。
第一位数字和寄存器类型的对应关系如表1所示。
PLC 地址例如40001、30002等。
1.4.2 寄存器协议地址寄存器协议地址指指通信时使用的寄存器地址,例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址一般使用16进制描述。
再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002,虽然两个PLC寄存器寄存器通信时使用相同的地址,但是需要使用不同的命令访问,所以访问时不存在冲突。
2.MODBUS指令说明2.1 读线圈寄存器01H1) 描述:读MODBUS从机线圈寄存器当前状态。
2) 查询:例如从机地址为11H,线圈寄存器的起始地址为0013H,结束地址为0037H。
该次查询总共访问37个线圈寄存器。
表2.1.1 读线圈寄存器-查询3) 响应响应负载中的各线圈状态与数据容每位相对应。
1代表ON,0代表OFF。
若返回的线圈数不为8的倍数,则在最后数据字节未尾使用0代替。
表2.1.2 读线圈寄存器-响应线圈0013H到线圈001AH的状态为CDH,二进制值为11001101,该字节的最高字节为线圈001AH,最低字节为线圈0013H。
线圈001AH到线圈0013H的状态分别为ON-ON-OFF-OFF-ON-ON-OFF-ON。
表2.1.3 线圈0013H到001A状态最后一个数据字节中,线圈0033H到线圈0037状态为1BH(二进制00011011),线圈0037H是左数第4位,线圈0033H为该字节的最低字节,线圈0037H至线圈0033H的状态分别为ON-ON-OFF-ON-ON,剩余3位使用0填充。
表2.1.4 线圈0033H到线圈0037状态2.2 读离散输入寄存器02H1) 说明读离散输入寄存器状态。
2) 查询从机地址为11H。
离散输入寄存器的起始地址为00C4H,结束寄存器地址为00D9H。
总共访问32个离散输入寄存器。
表2.2.1 读离散输入寄存器——查询3) 响应响应各离散输入寄存器状态,分别对应数据区中的每位值,1 代表ON;0 代表OFF。
第一个数据字节的LSB(最低字节)为查询的寻址地址,其他输入口按顺序在该字节中由低字节向高字节排列,直到填充满8位。
下一个字节中的8个输入位也是从低字节到高字节排列。
若返回的输入位数不是8的倍数,则在最后的数据字节中的剩余位至该字节的最高位使用0填充。
表2.2.1 读输入寄存器-响应离散输入寄存器00D4H到00D9H的状态为35H (二进制00110101)。
输入寄存器00D9H为左数第3位,输入寄存器00D4为最低位,输入寄存器00D9H到00D4H的状态分别为ON-ON-OFF-ON-OFF-ON。
00DBH寄存器和00DAH寄存器被0填充。
表2.2.2 离散输入寄存器00C4H到00DBH状态2.3 读保持寄存器03H1) 说明读保持寄存器。
可读取单个或多个保持寄存器。
2) 查询从机地址为11H。
保持寄存器的起始地址为006BH,结束地址为006DH。
该次查询总共访问3个保持寄存器。
表2.3.1 读保持寄存器-查询3) 响应保持寄存器的长度为2个字节。
对于单个保持寄存器而言,寄存器高字节数据先被传输,低字节数据后被传输。
保持寄存器之间,低地址寄存器先被传输,高地址寄存器后被传输。
表2.3.2 读保持寄存器-响应表2.3.3 保持寄存器006BH到006DH结果2.4 读输入寄存器04H1) 说明读输入寄存器命令。
该命令支持单个寄存器访问也支持多个寄存器访问。
2) 查询从机地址为11H。
输入寄存器的起始地址为0008H,寄存器的结束地址为0009H。
本次访问访问2个输入寄存器。
表2.4.1 读输入寄存器-查询3) 响应输入寄存器长度为2个字节。
对于单个输入寄存器而言,寄存器高字节数据先被传输,低字节数据后被传输。
输入寄存器之间,低地址寄存器先被传输,高地址寄存器后被传输。
表2.4.2 读寄存器-响应表2.4.3 输入寄存器0008H到0009H结果2.5 写单个线圈寄存器05H1) 说明写单个线圈寄存器。
FF00H值请求线圈处于ON状态,0000H值请求线圈处于OFF状态。
05H指令设置单个线圈的状态,15H指令可以设置多个线圈的状态,两个指令虽然都设定线圈的ON/OFF状态,但是ON/OFF的表达方式却不同。
2) 查询从机地址为11H,线圈寄存器的地址为00ACH。
使00ACH线圈处于ON状态,即数据容为FF00H。
表2.5.1 写单个线圈-查询3) 响应2.5.1强制单个线圈——响应2.6 写单个保持寄存器06H1) 说明写保持寄存器。
注意06指令只能操作单个保持寄存器,16指令可以设置单个或多个保持寄存器。
2) 查询从机地址为11H。
保持寄存器地址为0001H。
寄存器容为0003H。
表2.6.1 写单个保持寄存器——查询3) 响应表2.6.2 写单个保持寄存器——响应2.7 写多个线圈寄存器0FH1) 说明写多个线圈寄存器。
若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。
2) 查询从机地址为11H,线圈寄存器的起始地址为0013H,线圈寄存器的结束地址为001CH。
总共访问10个寄存器。
寄存器容如下表所示。
表2.7.1 线圈寄存器0013H到001CH传输的第一个字节CDH 对应线圈为0013H到001AH,LSB(最低位)对应线圈0013H,传输第二个字节为01H,对应的线圈为001BH到001CH,LSB 对应线圈001CH,其余未使用位使用0 填充。
表2.7.1 写多个线圈寄存器——查询3) 响应表2.7.1 写多个线圈寄存器——响应2.8 写多个保持寄存器10H1) 说明写多个保持寄存器。
2) 查询从机地址为11H。
保持寄存器的其实地址为0001H,寄存器的结束地址为0002H。
总共访问2个寄存器。
保持寄存器0001H的容为000AH,保持寄存器0002H的容为0102H。
表2.8.1 写多个保持寄存器——请求表2.8.2 保持寄存器0001H到0002H容3) 响应表2.8.3 写多个保持寄存器——响应注意:本文只是引用别人的资料,稍加整理而成,本着开源的精神,若有侵权,还请见谅。