Modbus RTU

本文详细介绍了ModbusRTU协议的基本概念,包括其作为主从式串行通信协议的特点,以及基于RS485/RS422/RS232的物理层实现。内容涵盖了数据帧格式,包括起始符、地址码、功能码、数据区、校验码和结束符的具体结构。此外,还深入解析了CRC校验的计算过程,强调了其在确保数据完整性的关键作用。同时,提到了03功能码的报文格式,为理解ModbusRTU协议的实际应用提供了实例。
摘要由CSDN通过智能技术生成

一、Modbus RTU协议介绍

1.协议概述

  1. Modbus RTU协议是Modicon公司首先推出的通信协议;2、Modbus RTU协议是一种主从式串行异步半双工通信协议;

  2. Modbus RTU协议是一种基于RS485\RS422,RS232物理层的通信协议;

    1. RS485

  3. Modbus RTu 协议通信中每个字符通信格式规定为1个起始位、8个数据位、1个校验位、1/2个停止位;

  4. Modbus RTU协议传输过程中每1个字节都以16进制方式直接进行传输;

  5. Modbus RTu协议使用CRC校验作为错误检查。

2.协议数据格式

起始符地址码功能码数据区校验码结束符
>=3.5字符时间8位8位N*8位16位>=3.5字符时间
  1. 起始符:以大于等于3.5个字符时间作为一帧数据的开始;

        这个时间是通过通信波特率来计算的。波特率表示单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,波特率即指一个单位时间内传输符号的个数。
        当波特率为9600 bit/s,其为在1000毫秒中可以传输9600个位,那么传输以为的时间为9.6毫秒。再一个字节由起始位(1)、数据位(8)、校验为(1)、停止位(1),一共为11位。3.5个字符一共为38.5位,再38.5/9.6=4毫秒
  2. 地址码:从站的地址,其理论范围为1~254,实际为1~27;

  3. 功能码:主站发送,告诉从站执行的功能,其范围为1~255,常用功能码后续详解;

  4. 数据区:具体数据内容,不同功能码内容不同,具体内容后续详解﹔

  5. 校验码:CRC校验码,校验码的范围为由地址码开始到数据区结束,具体算法后续详解;

  6. 结束符:以大于等于3.5个字符时间作为一帧数据的结束。

3.协议寄存器种类说明

 

4.协议功能码说明

 

5.协议CRC校验

生成CRC校验值的过程如下:

  1. 预置一个值为FFFFH的16位寄存器,此寄存器为CRC寄存器;

  2. 把通信数据帧的第1个8位二进制数据与CRC寄存器的低8位进行异或运算,异或的结果仍存放于该CRC寄存器中;

  3. 把CRC寄存器的内容右移1位,用o填补最高位,并检测移出的位是0还是1;

  4. 如果移出的位为o,则重复步骤3,如果移出的位为1,则cRc寄存器与AOO1H进行异或运算;

  5. 重复步骤3和4,直到右移8次,这样通信数据帧的第1个8位二进制数据就全部进行了处理;

  6. 重复步骤2、3、4、5,依次进行通信数据帧中的剩余字节;

  7. 将该通信数据帧中所有字节数据按上述步骤计算完成后,得到的16位CRC寄存器的高、低8位进行交换;

  8. 最后得到的CRC寄存器内容即为CRC校验码。

二、Modbus RTU 通信协议03功能码报文格式

Modbus RTU主站发送:

 

Modbus RTU从站正确返回:

 

Modbus RTU从站异常返回:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值