admin管理员组

文章数量:1530842

2024年7月17日发(作者:)

modbusrtu报文格式详细介绍

Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控

制器(PLC)而发表的。事实上,它已经成为工业领域通信协议标准,并且现在是工业电

子设备之间相当常用的连接方式。

Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。

大多数Modbus设备通信通过串口EIA-485物理层进行。 对于串行连接,存在两个变种,

它们在数值数据表示不同和协议细节上略有不同。Modbus RTU是一种紧凑的,采用二进

制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都

使用串行通讯(serial communicaTIon)方式。RTU格式后续的命令/数据带有循环冗余校

验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会

和设置为ASCII变种的节点通信,反之亦然。

modbusrtu的一个报文分析先声明下我们的目的,我们是要两个设备通讯,用的是

MODBUS协议。上面简单介绍了:报文CRC校验功能号。

在单片机中拿出一部分内存(RAM)进行两个设备通讯,例如:

数组后面的注释,说明

OX[20] 代表是输出线圈,用功能码 0x01,0x05,0x0F 访问, 开头地址是 0 (这个

后续说明)

IX[20] 代表是输入线圈,用功能码 0x02 访问, 开头地址是 1 (这个后续说明)

另外两个一样的道理。

注意:所谓的线圈寄存器就是位变量16位变量,不要被迷惑。之所以称线圈我觉得应该

是对于应用的设备,MODBUS协议是专门针对485总线设备(例PLC)开发的。

1、主机对从机写数据操作如果单片机接收到一个报文那么就对报文进行解析执行相应的

处理,如上面报文:

01 06 00 01 00 17 98 04

从机地址 功能号 数据地址 数据 CRC校验

本文标签: 报文数据线圈协议变种