Modbus-RTU数据帧

简介: Modbus-RTU数据帧

介绍

Modbus-RTU数据帧,帧长度最大为256字节,由以下4部分构成:

  • 子节点地址: 1字节,范围0-247
  • 功能代码: 1字节
  • 数据块: 0-252字节
  • CRC校验值: 2字节,低8位在前


帧描述

Modbus-RTU帧间隔,Modbus-RTU要求两个RTU报文帧间隔要大于3.5个字节时间:

且每个报文帧内字节间隔小于1.5个字节时间,否则会认为接收不完整。


Modbus-RTU采用循环几余校验(CRC - Cyclical Redundancy Checking) 算法对报文顺全部数据进行计算,得到的校验值附加在报文末尾,低位在前。CRC-16_Modbus计算方法可以参考: CRC-16_Modbus校验算法。


实际请求/应答交互示例

示例1: 写单个寄存器。向01地址设备0x0105保持寄存器写入1个数据: 0x0190

主机发送: 01 06 01 05 01 90 99 CB从机回复: 01 06 01 85 01 90 99 CB


01表示从机地址,06功能码表示写单个保持寄存器,0105表示寄存器地址,0190表示写入寄存器的数值,99CB为CRC校验值。可以看出,当写1个寄存器数据时,从机响应的数据帧和主机发送的数据帧完成一致。


示例2: 写多个寄存器。向01地址设备0x0105、0x0106、0x0107地址保持寄存器,写入3个寄存器数据: 0x1102,0x0304,0x0566


主机发送: 01 10 01 05 00 03 06 11 02 03 04 05 66 4a 12从机回复: 01 10 01 05 00 03 91 f5

同理,01从机地址,10功能码表示写多个保持寄存器,0105表示起始地址0003表示写3个寄存器,06表示数据量为6个字节1102/0304/0566分别表示写入3个寄存器的数值,4a12表示CRC校验数值.

可以看出,写多个寄存器时使用10功能码,从机回复数据也比较精简。

示例3: 读单个寄存器。读01地址设备0x0105保持寄存器数据

主机发送: 01 03 01 05 00 01 95 f7从机回复: 01 03 02 56 78 87 c6


03表示读多个寄存器,0105表示起始地址,0001表示读1个寄存器

02表示2个字节,56 78表示寄存器的数据

示例4: 读多个寄存器。读01地址设备0x0105、0x0106、0x0107地址保持寄存器,共3个寄存器数据:

主机发送: 01 03 01 05 00 03 14 36从机回复: 81 03 06 11 22 33 44 55 66 2a 18


03表示读多个寄存器,0105表示起始地址,0003表示读3个寄存聚

06表示6个字节,11 22 33 44 55 66表示寄存器的数据

目录
相关文章
EMQ
|
传感器 监控 网络协议
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
作为一款支持数十种工业协议转换的物联网边缘工业协议网关软件,Neuron也已经实现了基于Modbus RTU协议TCP传输的功能。本文将在Ubuntu 20.04.3、X86_64的环境下,介绍如何使用Neuron接入Modbus TCP及Modbus RTU协议设备。
EMQ
678 0
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
|
1月前
|
网络协议 算法
【MODBUS】Modbus的3种传输方式
【MODBUS】Modbus的3种传输方式
45 1
|
1月前
|
传感器 数据采集 网络协议
【MODBUS】Modbus是什么?
【MODBUS】Modbus是什么?
47 1
|
1月前
|
算法
Modbus-ASCII数据帧
Modbus-ASCII数据帧
37 1
|
1月前
|
传感器 监控
【MODBUS】Modbus协议和PLC协议的区别和联系
【MODBUS】Modbus协议和PLC协议的区别和联系
82 0
|
1月前
Modbus-TCP数据帧
Modbus-TCP数据帧
59 0
|
10月前
|
数据安全/隐私保护
以太网 (数据链路层协议)
以太网 (数据链路层协议)
98 0
详解CAN总线:CAN总线报文格式—数据帧
CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。
详解CAN总线:CAN总线报文格式—数据帧
|
网络协议
LabVIEW实现Modbus-TCP通信
Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议,按其格式可分为Modbus-RTU、Modbus-ASCII和Modbus-TCP。其中,前两者适用于串行通信控制网络中,例如RS485、RS232等,而Modbus-TCP主要应用于基于以太网TCP/IP通信的控制网络中。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。
LabVIEW实现Modbus-TCP通信
|
12月前
Modbus 协议解析
Modbus 协议解析
84 0