ModbusRTU协议文档(中文)
- 格式:pdf
- 大小:105.31 KB
- 文档页数:12
®MODBUS通讯协议使用手册1. RTU 方式通讯协议1.1. 硬件采用RS -485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 38400 1.3. 功能码03H : 读寄存器值主机发送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 读寄存器值功能码 第3、4字节 : 要读的寄存器开始地址 要读FCC 下挂仪表,第5、6字节 : 要读的寄存器数量 第7、8字节 : 从字节1到6的CRC16校验和 从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 03H : 返回读功能码第3字节 :从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送:第1字节 ADR : 从机地址码(=001~254)第2字节 83H : 读寄存器值出错第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值主机发送:当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR:从机地址码(=001~254)第2字节 86H :写寄存器值出错功能码 第3字节 错误数息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.5. 功能码10H : 连续写多个寄存器值当从机接收正确时,从机回送:当从机接收错误时,从机回送:第1字节 ADR: 从机地址码(=001~254)第2字节 90H : 写寄存器值出错 第3字节 错误信息码 : 见信息码表第4、5字节: 从字节1到3的CRC16校验和1.8 寄存器定义表:(注:寄存器地址编码为16进制)备注:E为阶码。
M为尾数的小数点部分。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、协议概述ModBusRTU通讯协议是一种串行通信协议,用于在工业自动化领域中实现设备之间的数据交换。
本协议规定了通信的物理层、数据帧格式、功能码及其对应的数据格式,以及通信过程中的错误处理等。
二、物理层1. 通信接口:本协议使用RS485接口进行通信,支持多主机和多从机的通信方式。
2. 通信波特率:支持的通信波特率范围为9600bps至115200bps,可根据实际需求进行设置。
3. 数据位:通信数据位为8位。
4. 停止位:通信停止位为1位。
5. 校验位:通信校验位可选择为无校验、奇校验或偶校验。
三、数据帧格式1. 帧起始符:每个数据帧以一个起始符开始,起始符为一个字节,固定为0xFF。
2. 从机地址:紧随起始符之后的一个字节为从机地址,用于标识通信中的从机设备。
3. 功能码:从机地址之后的一个字节为功能码,用于指示从机设备执行的操作类型。
4. 数据域:功能码之后的数据域长度可变,根据功能码的不同而不同。
5. CRC校验码:数据域之后为两个字节的CRC校验码,用于检测数据传输过程中是否出现错误。
6. 帧结束符:每个数据帧以一个结束符结束,结束符为一个字节,固定为0x00。
四、功能码及数据格式1. 读取线圈状态(功能码:0x01)请求帧格式:[起始符][从机地址][功能码][起始地址高字节][起始地址低字节][读取数量高字节][读取数量低字节][CRC校验码][结束符]响应帧格式:[起始符][从机地址][功能码][字节数][线圈状态][CRC校验码][结束符]数据格式:线圈状态为一个字节,每个位表示一个线圈的状态(0表示OFF,1表示ON)。
2. 读取离散输入状态(功能码:0x02)请求帧格式:[起始符][从机地址][功能码][起始地址高字节][起始地址低字节][读取数量高字节][读取数量低字节][CRC校验码][结束符]响应帧格式:[起始符][从机地址][功能码][字节数][离散输入状态][CRC校验码][结束符]数据格式:离散输入状态为一个字节,每个位表示一个输入的状态(0表示OFF,1表示ON)。
MODBUS_RTU 通讯协议1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。
2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数3、仪表通讯帧格式:读寄存器命令格式:1 2 3 4 5 6 7~8 DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 应答:1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC DE: 设备地址 (1~200)单字节CRC: 校验字节 采用CRC-16循环冗余错误校验举例说明:(以LED双路控制仪为例)MODBUS_RTU 通讯协议(十进制格式)以实际通讯数据内容为准发送:1, 3, 0, 0, 0, 16, 68, 6,回收:1, 3, 32, 1, 0, 8, 0, 128, 12, 0, 0, 128, 12, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 255, 0, 255, 1, 85, 0, 0, 15, 0, 0, 15, 220, 139,仪表动态数据格式编号参数名称地址备注1 保留 00002 内部修改标志 00013 仪表类型 00024 第一通道实时值 00035 第二通道实时值 0005第一报警(AL1) 00076第二报警(AL2) 00087第三报警(AL3) 00098第四报警(AL4) 000A9该表的负数使用的是补码方式解析举例:-117的解析表示如下+117可表示为 0000 0000 0111 0101按位求反后为 1111 1111 1000 1010末位加1后为 1111 1111 1000 1011用十六进制数表示为 F F 8 B=FF8BH即 [-117]补。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种用于串行通信的协议,主要用于工业自动化领域中的设备间通信。
本协议旨在规范ModBusRTU通讯协议的格式、数据结构和通信流程,以确保设备间的稳定、可靠的通信。
二、协议概述ModBusRTU通讯协议基于串行通信,使用二进制编码,采用主从结构进行通信。
主设备负责发起通信请求,从设备负责响应请求并返回数据。
通信数据以字节为单位进行传输,具有较高的传输效率和可靠性。
三、通信格式1. 物理层ModBusRTU通讯协议使用RS-485标准进行物理层通信,支持多主设备和多从设备的连接。
通信速率可根据实际需求设置,常见的速率包括9600bps、19200bps、38400bps等。
2. 帧格式ModBusRTU通讯协议的帧由起始符、地址字段、功能码、数据字段、校验码和结束符组成。
具体格式如下:- 起始符:占据一个字节,固定为0x3A。
- 地址字段:占据一个字节,表示从设备的地址。
- 功能码:占据一个字节,表示通信请求的功能类型。
- 数据字段:占据n个字节,根据功能码的不同而不同。
- 校验码:占据两个字节,用于校验帧的完整性。
- 结束符:占据一个字节,固定为0x0D。
四、功能码ModBusRTU通讯协议定义了一系列功能码,用于区分不同的通信请求。
以下列举了部分常用的功能码及其功能描述:1. 读取线圈状态(功能码:0x01):用于读取从设备的线圈状态,返回线圈的开关状态。
2. 读取输入状态(功能码:0x02):用于读取从设备的输入状态,返回输入信号的状态。
3. 读取保持寄存器(功能码:0x03):用于读取从设备的保持寄存器的值。
4. 读取输入寄存器(功能码:0x04):用于读取从设备的输入寄存器的值。
5. 写单个线圈(功能码:0x05):用于控制从设备的单个线圈的开关状态。
6. 写单个寄存器(功能码:0x06):用于向从设备的单个寄存器写入数据。
MODBUS-RTU协议1.数据格式说明1、1通讯模式本仪表采用MODBUS RTU格式。
协议用于主从查询模式,进行数据通讯。
通讯流程如下图。
在RTU模式下,数据格式说明如下。
1、2数据格式数据格式为n,8,1(1个起始位、8个数据位、无校验、1个停止位)波特率可选五种,1200、2400、4800、9600、19200其中:T1、T2、T3、T4为每帧之间的时间间隔,两帧之间的传输必须大于间隔时间。
1、3地址协议中规定仪表的地址为“01-99”,“0”地址用于广播,本协议不支持广播,其余地址保留。
2.命令说明命令03(HEX)读单个或多个寄存器命令06(HEX)写单个寄存器此命令包含在“命令10”中命令10(HEX)写多个寄存器此命令包含“命令6”2.2 数据格式协议中的数据包括:16进制数、整数、BCD码、浮点数寄存器地址下列表中的属性指数据的读写属性,R-只读;W-写;R/W-既可读,也可写入。
单精度浮点数SINGLE格式为IEEE754,数据由低到高。
32位浮点数共计32位,折合4字节。
由最高到最低位分别是第31、30、29、……、0位。
31 30-23 22-0S 阶码尾数31位是符号位(S),1表示该数为负,0反之;30-23位,一共8位是阶码;22-0位,一共23位是尾数。
●BCD码格式有两种:格式2: (内部应用)6字节BCD编码,表示固定小数点的数据,数据低→高,如小数点默认为第9位数的后面。
●无符号整数Uint为0-65536。
各指令的格式及示例见下面的说明。
错误响应举例3.数据项定义记录信息表4.版本5.参考Modicon-Modbus Protocol Reference Guide (PI-MBUS-300);REV J;June,1996 6.自定义RS485通讯协议通讯线路:采用RS485数据通讯线路,半双工通讯通讯协议:(1200 2400 4800 9600 19200),NONE/0DD/EVEN,8位数据,1停止位读瞬时流量、累积流量1.主机命令格式2.设备回应格式注:流量计返回数据格式定义:瞬时流量: xxxxxxx 7字节累积流量: xxxxxxxxxxx 11字节读流量数据举例(以下数据均为十六进制):指令包: 5a 包头32 34 流量计485地址返回包: 3d 包头32 34 流量计485地址31 32 33 2e 34 35 36 瞬时流量=123.456 m3/h 20 20 20 20 20 31 32 33 34 2e 35 累积流量=1234.5 m303 d3 累加和高位、累加和低位ff 结束符。
ModBusRTU通讯协议协议名称:ModBus RTU通讯协议1. 引言ModBus RTU通讯协议是一种用于串行通信的通讯协议,广泛应用于工业自动化领域。
本协议旨在规范ModBus RTU通讯协议的格式和规则,确保通讯的稳定性和可靠性。
2. 协议结构ModBus RTU通讯协议采用了简单而高效的二进制格式,包含以下几个部分:2.1 帧头帧头由一个地址字节和一个功能码字节组成,用于标识通讯的设备地址和功能。
2.2 数据数据部分包含了读取或写入的寄存器地址、寄存器数量以及相应的数据。
数据的长度根据具体功能码而定。
2.3 CRC校验为了保证数据的完整性和准确性,ModBus RTU通讯协议使用了循环冗余校验(CRC)进行校验。
CRC校验码位于数据帧的最后两个字节。
3. 设备地址ModBus RTU通讯协议中,每个设备都有一个唯一的地址,用于标识设备。
设备地址的范围为1到247,其中地址0为广播地址。
4. 功能码功能码用于定义通讯的具体操作类型,包括读取寄存器、写入寄存器等。
常用的功能码包括:4.1 读取寄存器(功能码03)读取寄存器功能码用于读取设备的寄存器数据。
它包含一个起始地址和一个寄存器数量,用于指定读取的寄存器范围。
4.2 写入寄存器(功能码06)写入寄存器功能码用于向设备的寄存器中写入数据。
它包含一个寄存器地址和一个写入的数据值。
4.3 强制单线圈(功能码05)强制单线圈功能码用于控制设备的输出线圈状态。
它包含一个线圈地址和一个状态值,用于指定线圈的状态。
5. 数据格式ModBus RTU通讯协议中的数据格式如下:5.1 通讯帧格式通讯帧由起始位、数据位、停止位和奇偶校验位组成。
通讯帧的总长度为11位。
5.2 数据位格式数据位采用8位无奇偶校验格式,用于传输设备地址、功能码、数据等信息。
5.3 停止位格式停止位为1位,用于表示一个数据帧的结束。
5.4 奇偶校验位奇偶校验位用于检测数据传输过程中的错误。
modbusrtu协议1. 简介modbusrtu协议是一种串行通信协议,广泛应用于工业自动化领域。
它定义了一种主从设备之间进行通信的规则和数据帧格式,能够实现可靠的数据交换。
本文将介绍modbusrtu协议的基本原理、数据帧结构、功能码以及在实际应用中的常见用途。
2. 基本原理modbusrtu协议采用了简单的主从架构,其中一个设备作为主站,控制多个从站进行数据交换。
主站负责发起请求并解析从站的响应数据。
通信采用全双工的方式进行,主站和从站通过共享的数据线交换信息。
3. 数据帧结构modbusrtu协议的数据帧由起始符、从站地址、功能码、数据、校验码和结束符组成。
具体结构如下:起始符 | 地址 | 功能码 | 数据 | 校验码 | 结束符•起始符:用于同步通信的起始标识符,通常为一个字节。
•地址:标识从站的地址,通常为一个字节。
地址0为广播地址,用于向多个从站发送指令。
•功能码:指定从站执行的操作,可以是读取数据、写入数据或其他特定功能。
•数据:用于传输的数据,长度可变。
•校验码:用于检测数据传输过程中的错误,通常采用循环冗余校验(CRC)算法计算得出。
•结束符:标志数据帧的结束,通常为一个或多个字节。
4. 功能码modbusrtu协议定义了一套常用的功能码,用于指示从站执行不同的操作。
常见的功能码及其功能如下:•读取线圈状态(01H):用于读取从站的开关量输出状态。
•读取输入状态(02H):用于读取从站的开关量输入状态。
•读取保持寄存器(03H):用于读取从站的模拟量输入状态。
•读取输入寄存器(04H):用于读取从站的模拟量输出状态。
•强制单线圈(05H):用于强制从站的开关量输出状态。
•预置多个寄存器(06H):用于设置从站的模拟量输出状态。
•执行多个操作(0FH):用于执行多个操作,如同时读取多个寄存器或写入多个寄存器的值。
5. 实际应用modbusrtu协议在实际应用中广泛用于工业自动化和远程监控系统。
ModBusRTU通讯协议协议名称:ModBusRTU通讯协议一、引言ModBusRTU通讯协议是一种常用的串行通信协议,用于在工业自动化领域中实现设备之间的数据交换。
该协议基于RTU(Remote Terminal Unit)模式,通过串行通信接口传输数据。
本协议旨在规范ModBusRTU通讯协议的格式、数据类型、通信方式等方面的内容,以确保设备之间的数据交换的准确性和可靠性。
二、协议格式1. 物理层ModBusRTU通讯协议使用RS485串行通信接口,支持全双工通信。
通信速率可根据实际需求设置,常见的速率有9600、19200、38400、57600和115200等。
2. 数据帧格式ModBusRTU通讯协议使用二进制方式传输数据,每个数据帧包含以下几个部分:- 起始位:由一个高电平信号表示,用于同步通信双方的时钟。
- 地址位:一个字节,用于标识通信的从站地址。
范围为1-247,其中1为广播地址。
- 功能码:一个字节,用于标识通信的功能类型。
常见的功能码有读取线圈状态、读取输入状态、读取保持寄存器、读取输入寄存器、写单个线圈、写单个寄存器等。
- 数据域:根据功能码的不同,数据域的长度也不同。
数据域包含要读取或写入的数据。
- CRC校验:用于校验数据的完整性。
3. 数据类型ModBusRTU通讯协议支持多种数据类型,包括线圈状态(Coil Status)、输入状态(Input Status)、保持寄存器(Holding Register)和输入寄存器(Input Register)等。
每种数据类型都有对应的读取和写入功能码。
4. 通信方式ModBusRTU通讯协议支持主从模式的通信方式。
主站负责发起通信请求,从站负责响应请求并返回数据。
主站可以向多个从站发送请求,每个从站根据地址进行识别并响应相应的请求。
三、通信流程1. 主站发送请求主站发送请求的数据帧包含从站地址、功能码、数据域和CRC校验。