MODBUS_RTU通讯协议

合集下载

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议协议名称:ModBusRTU通讯协议1. 引言ModBusRTU通讯协议是一种常用于工业自动化领域的通信协议,用于在不同设备之间进行数据交换和通信。

本协议旨在确保设备之间的稳定通信,并规定了数据帧的格式、通信规范和错误处理机制,以实现可靠的数据传输。

2. 协议范围本协议适用于使用ModBusRTU通信协议的设备之间的数据交换和通信。

3. 术语和定义3.1. 主站:指发送请求的设备。

3.2. 从站:指接收请求并响应的设备。

3.3. 数据帧:指在ModBusRTU通信协议中传输的数据单元。

4. 数据帧格式4.1. 传输模式ModBusRTU通信协议使用串行通信模式,每个数据帧由一系列连续的位组成。

4.2. 起始位每个数据帧以一个起始位(逻辑“0”)开始。

4.3. 设备地址设备地址用于标识从站设备,占用8位,取值范围为1-247。

功能码用于指示请求的类型,占用8位,取值范围为1-255。

4.5. 数据数据字段用于传输具体的数据信息,占用8位或16位,具体长度由功能码决定。

4.6. 校验位校验位用于验证数据的完整性和准确性,采用CRC校验算法。

4.7. 结束位每个数据帧以一个结束位(逻辑“1”)结束。

5. 通信规范5.1. 请求帧主站发送请求帧给从站,请求帧包括设备地址、功能码、数据和校验位。

5.2. 响应帧从站接收到请求帧后,根据功能码进行相应的处理,并返回响应帧给主站,响应帧包括设备地址、功能码、数据和校验位。

5.3. 帧间间隔每个数据帧之间应有适当的时间间隔,以确保设备能够正确接收和处理数据。

5.4. 重试机制如果主站未收到从站的响应帧或者接收到的响应帧出现错误,主站可以根据需要进行重试。

6.1. 异常响应如果从站无法正确处理主站的请求,从站应发送一个异常响应帧给主站,异常响应帧包括设备地址、功能码和错误码。

6.2. 错误码错误码用于指示出现的错误类型,常见的错误码包括非法功能码、非法数据地址、非法数据值等。

ModBusRTU通讯协议

ModBusRTU通讯协议

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 通讯协议(双路控制仪)

MODBUS_RTU 通讯协议(双路控制仪)

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]补。

MODBUS-RTU 协议

MODBUS-RTU 协议

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.命令说明2.1 本仪表使用了MODBUS协议中3条指令:2.2 数据格式协议中的数据包括:16进制数、整数、BCD码、浮点数寄存器地址下列表中的属性指数据的读写属性,R-只读;W-写;R/W-既可读,也可写入。

30-23位,一共8位是阶码;22-0位,一共23位是尾数。

●BCD码格式有两种:格式1:4字节BCD编码,数据低→高,如数据20100617,表示为4字节格式2: (内部应用)6字节BCD编码,表示固定小数点的数据,数据低→高,如12345.678表示为6字节●无符号整数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字节m3/h累积流量: xxxxxxxxxxx 11字节m3读流量数据举例(以下数据均为十六进制):指令包: 5a 包头32 34 流量计485地址返回包: 3d 包头32 34 流量计485地址31 32 33 2e 34 35 36 瞬时流量=123.456 m3/h20 20 20 20 20 31 32 33 34 2e 35 累积流量=1234.5 m33d 3h 累加和高位、累加和低位ff 结束符二、设置参数(一)指令包:1.补偿系数单位注:补偿系数单位可设置为1/2/3,对应指令第4字节分别是31/32/33。

MODBUS_RTU 通讯协议(计数器)

MODBUS_RTU 通讯协议(计数器)

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计数器)以实际通讯数据内容为准
发送:\01\03\00\00\00\10\44\06
回收:01 03 20 01 00 08 00 8F 02 00 00 00 00 00 00 00 00 00 00 E8 00 00 00 03 55
00 00 00 00 00 00 00 00 00 00 5C 55
仪表动态数据格式
编号参数名称数据格式地址备注
1 E2PROM参数修改标志单字节定点数 0000
2 仪表类型单字节定点数 0001
3 实时测量值三字节定点数 0002
4 第一报警状态(AL1)单字节定点数 0004
5 第二报警状态(AL2)单字节定点数 0005。

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议协议名称:ModBus RTU通讯协议一、引言ModBus RTU通讯协议是一种用于串行通信的协议,广泛应用于工业自动化领域。

本协议旨在规范ModBus RTU通讯协议的格式和规则,以确保设备之间能够正常、高效地进行通信。

二、协议结构ModBus RTU通讯协议采用了简单、轻量级的结构,由三个主要部分组成:帧头、数据区和帧尾。

1. 帧头帧头由两个字节组成,分别为设备地址(1字节)和功能码(1字节)。

设备地址用于标识通信的目标设备,功能码用于指示通信的具体操作类型。

2. 数据区数据区包含了具体的通信数据,其长度根据不同的功能码而不同。

数据区的内容可以是读取的寄存器值、写入的寄存器值等。

3. 帧尾帧尾由两个字节组成,分别为CRC校验码(2字节)。

CRC校验码用于验证数据的完整性和准确性。

三、通信规则ModBus RTU通讯协议遵循以下通信规则:1. 设备地址通信的目标设备由设备地址进行标识,设备地址范围为0-247。

其中,0为广播地址,用于向所有设备发送命令。

2. 功能码功能码用于指示通信的具体操作类型,范围为1-255。

常用的功能码包括读取保持寄存器(03H)、写入单个保持寄存器(06H)等。

3. 数据格式ModBus RTU通讯协议使用二进制格式进行数据传输。

数据区的内容根据不同的功能码而不同,可以是16位的寄存器值、8位的开关状态等。

4. 帧格式帧格式包括帧头、数据区和帧尾。

帧头由设备地址和功能码组成,数据区包含具体的通信数据,帧尾包含CRC校验码。

5. CRC校验CRC校验码用于验证数据的完整性和准确性。

接收方在接收到数据后,通过计算CRC校验码与接收到的校验码进行比较,以判断数据是否正确。

四、通信流程ModBus RTU通讯协议的通信流程如下:1. 主设备发送请求主设备向从设备发送请求,请求包括设备地址、功能码和相关参数。

2. 从设备响应请求从设备接收到请求后,根据功能码执行相应的操作,并将执行结果返回给主设备。

ModBusRTU通讯协议

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校验。

ModBusRTU通讯协议

ModBusRTU通讯协议

ModBusRTU通讯协议协议名称:ModBus RTU通讯协议1. 引言ModBus RTU通讯协议是一种常用的串行通讯协议,用于在工业自动化领域中实现设备之间的数据通信。

本协议旨在定义ModBus RTU通讯协议的标准格式和规范,以确保各设备之间的互操作性和数据传输的可靠性。

2. 术语和定义在本协议中,以下术语和定义适用:- 主站:指发起通信请求的设备。

- 从站:指响应通信请求的设备。

- 寄存器:指用于存储和传输数据的内存单元。

- 线圈:指用于控制设备状态的开关。

3. 协议结构ModBus RTU通讯协议采用二进制格式进行数据传输,每个通信帧包含以下几个字段:- 地址:指定从站的地址,用于识别通信的目标设备。

- 功能码:指定通信的功能类型,如读取寄存器、写入线圈等。

- 数据:包含具体的通信数据,如读取的寄存器值或写入的线圈状态。

- CRC校验:用于检测通信数据的完整性。

4. 通信过程ModBus RTU通讯协议的通信过程如下:4.1 主站发送请求主站向从站发送请求,请求包含地址、功能码和相关数据。

4.2 从站响应请求从站接收到请求后,根据功能码进行相应的处理,并生成响应数据。

4.3 主站接收响应主站接收从站的响应数据,并进行解析和处理。

5. 功能码ModBus RTU通讯协议定义了一系列功能码,用于实现不同的通信功能。

以下是常用的功能码及其描述:- 读取线圈状态(功能码01):主站向从站请求读取线圈的状态,从站响应包含线圈的当前状态。

- 读取输入状态(功能码02):主站向从站请求读取输入的状态,从站响应包含输入的当前状态。

- 读取保持寄存器(功能码03):主站向从站请求读取保持寄存器的值,从站响应包含寄存器的当前值。

- 读取输入寄存器(功能码04):主站向从站请求读取输入寄存器的值,从站响应包含寄存器的当前值。

- 写入单个线圈(功能码05):主站向从站请求写入单个线圈的状态,从站响应确认写入结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

百特工控
福州福光百特自动化设备有限公司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为尾数的小数点部分。

2. 寄存器定义表中,读写属性有打√的寄存器为只读寄存器。

没有打√的为读写寄存器。

1.9 信息码表:
1.10 仪表表型字
00:XMZ5000 01:XMT/XMB5000 02:XMDI5000
03:XMS5000 04:XML6000 05:XMD5XX16 (16)
06:XMA5000 07:XMH5000 08:XML5000 (3)
09:XMJ5000 10:XMD5XX08 (8) 11:XMPHT/XMPHB5000
12:XMD5XX32(32) 13:XME5000 (3) 14:XMDO5000
15:XMLH5000 (4+1) 16:XMD5XX24 (24) 17:XMAF5000 (2)
18:XMC5000(24)
30:XMG5000 31:XMGI5000 32:XMG7000 (2)
33:XMG8000 (3) 34:XMHG5000 35:XMGA5000/6000 (4)
36:XMGAF5/6/7000 (4) 37:XMRA5000/6000 (5) 38:XMRAF5000/6000 (5)
39:XMPA7000 (5) 40:XMPAF7000 (5) 41:XMRA7000 (6)
42:XMRAF7000 (6) 43:XMPHGA5000/6000 44:XXS
45:XMRH5000 46:DFD/DFQ/DFDA/DFDQ5000/DFQA7000
50:XMPA8000 (7) 51:XMPAF8000 (7) 52:XMRA8000 (8)
53:XMRAF8000 (8) 54:55:
60:XMLY5000 61:XMLY6000
1.11 仪表分度号
00:0~10mA线性01:4~20mA线性02:0~5V线性
03:1~5V线性04:0~100线性05:0~10mA开方
06:4~20mA开方07:0~5V开方08:1~5V开方
09:0~100开方10:Pt100 11:Pt100.0
12:Pt10 13:Cu100 14:Cu50
15:30~350Ω16:G53 17:BA1
18:BA2 19:F1 20:F2
21:B 22:R 23:S
24:N 25:K 26:E
27:J 28:T 29:NiCr-AuFe0.07
30:钨铼3-钨铼26 31:EA2 32:EU2
33:0~60mV
注:
1.6. 通讯板跳线端子说明: 拨码开关拨向ON表示零(1)值
端子(1) 端子(2)
端子1为仪表的地址的八进制编码(如有FCC仪表则表示为FCC仪表下挂仪表的地址) 例如 25=0001 1001
端子2的 8 7 6 5 为4位上位机波特率编码
8 7 6 5
1 0 1 0为9600 波特率
0 1 1 0为19200 波特率
1 1 1 0为38400波特率
端子2的 4 3 2 1 位为FCC仪表地址选择,当4 3 2 1位= 0 0 0 0,表示不挂FCC仪表;例如4 3 2 1=0 0 1 0 表示FCC仪表地址为2
(注:对于xml型号的仪表通道1表示XML的瞬时值;通道2表示XML的温度值 ;通道3表示XML的压力值;xml的瞬时值,温度值,压力值,支持批读; XML的累积流量的寄存器地址从0150h到
0153h;XMD,XMC多路采集器支持批读。

)
特别说明:
设置完波特率或地址,在进行通讯前,请重新给仪表上电
上电初始化6秒后,方可通讯
MODBUS_RTU通讯例子:
读寄存器值:
主机发送: 寄存器值为16进制数
设读地址0010(通道1)的瞬时值; 瞬时值=130
从机回送:
写寄存器值:
主机发送: 寄存器值为16进制数
设写地址作0110(PID P)的参数=13h
从机回送:。

相关文档
最新文档