匪夷所思,Modbus关于ASCII模式和RTU模式两种传输方式的区别     DATE: 2022-09-22 08:15

  常用的MODBUS通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。每个设备必须都有相同的传输模式。所有设备都支持RTU模式,ASCII传输模式是选项。除此之外ASCII模式和RTU模式还有什么区别呢?


MODBUS ASCII


1.ASCII模式

当控制器设置为在Modbus网络上以ASCII(美国信息交换标准代码)模式通信时,消息中的每8位

字节作为两个ASCII字符发送。这种方法的主要优点是字符传输的时间间隔可以达到1秒而不出错。

代码系统

十六进制,ASCII字符0...9,A...F

消息中的每个ASCII字符都由一个十六进制字符组成。

每字节位数

1个起始位

7个数据位,首先发送最低有效位。

1个奇偶校验位,无校验,无校验。

1个停止位(带校验)和2个停止位(不带校验)

错误检测域

LRC(纵向冗余检测)

2.RTU模式

当控制器设置为在Modbus网络上以RTU(远程终端设备)模式通信时,消息中的每个8-8位字节包含两个

4-4位十六进制字符。这种方法的主要优点是在相同的波特率下,可以比ASCII传输更多的数据。

代码系统

8位二进制,十六进制数0...9,A...F

消息中的每个8位字段由一个或两个十六进制字符组成。

每字节位数

1个起始位

8个数据位,首先发送最低有效位。

1个奇偶校验位,无校验,无校验。

1个停止位(带校验)和2个停止位(不带校验)

错误检测域

循环冗余检测


\


  MODBUS的ASCII协议和RTU协议相比,MODBUS ASCII协议拥有开始和结束标记,而MODBUS RTU却没有,所以ASCII协议的程序中对数据包的处理能更加方便。

MODBUS ASCII协议的数据字段传输所有可见的ASCII字符,所以在调试阶段更直观。此外,它的LRC验证程序更容易编写。这些都是MODBUS ASCII的优点。

Modbus的主要缺点是传输效率低,因为它传输的是所有可见的ASCII字符。对于RTU最初传输的每一个字节的数据,这个字节必须在ASCII中被分成两个字节。比如RTU传输一个十六进制数0xF9,ASCII需要传输字符F和9,以及对应的ASCII码0x46和0x39,所以它的传输效率肯定比RTU低。

所以一般来说,如果要传输的数据量很小,可以考虑ASCII协议。如果要传输的数据量很大,RTU协议是最好的。

此外,由于ASCII协议有起始标志和结束标志,所以一个数据包的每个字节之间的传输间隔可以大于1秒,而在MODBUS RTU模式下,由于没有指定起始标志和结束标志,协议规定每两个字节之间的发送或接收间隔不能超过字符传输时间的3.5倍。如果两个字符之间的时间间隔超过字符传输时间的3.5倍,则认为已经接收到一帧数据,开始新一帧的数据传输,所以RTU模式下两个字节之间的传输间隔有时间要求。


  下一篇:没有了