在工业互联网领域,大家一定很熟悉Modbus协议。前段时间”知识普及专家”宇泰科技也曾为大家推送过一篇文章“几分钟带你看完Modbus协议”,主要从工作原理、通信方式
在工业互联网领域,大家一定很熟悉Modbus协议。前段时间”知识普及专家”宇泰科技也曾为大家推送过一篇文章“几分钟带你看完Modbus协议”,主要从工作原理、通信方式、特点简单介绍Modbus协议。今天,边肖将继续与您讨论上次Modbus协议下的两种模式–RTU和ASCII模式。
串行总线通信中的Modbus协议有RTU和ASCII两种模式。RTU是Remote Terminal Unit的缩写,意思是远程终端单元。ASCII是美国信息交换标准码的缩写,意思是美国信息交换标准码。它是一种字符表示,对文本编辑符号、大小写字母、数字和一些不可见的控制字符进行编码。除空字符外,还有
理解其含义后,两者有什么区别?边肖从以下几个方面进行了比较:
1两者功能不同。两种协议的区别在于,RTU直接发送数据,二进制代码,其物理意义需要发送方和接收方达成一致。ASCII发送的数据是用于表示字符的二进制代码。
这两种传播方式是不同的。在ASCII模式下,每个8位字节被拆分成两个ASCII字符发送,比如十六进制数0Xaf,会被拆分成ASCII字符”一”还有”福”发送,发送的字符数比RTU多一倍;在RTU模式下,每个字节可以传输两个十六进制字符,比如十六进制数0XAF,直接用十六进制0XAF(二进制:10101111)发送,所以它的发送密度是ASCII的两倍。
表1: RTU模式传输
表2: ASCII模式传输
3.两者的数据帧检查方法不同。从上面两个表也可以看出,RTU使用CRC校验,即循环冗余校验;ASCII是LRC,即纵向冗余校验。
4两者的数据字段长度不同。
RTU数据字段的长度是252个字符,而ASCII的长度是的两倍。
⑤RTU必选,ASCII可选
在Modbus协议标准中,RTU是必需的,而ASCII是可选的,即作为Modbus通信设备,只能支持RTU或RTU和ASCII都支持,而不能只支持ASCII。
ASCII模式和RTU模式分别有什么优缺点?边肖给大家做了一个表格,方便对比:
从上表对比可以看出,与RTU协议相比,Modbus的ASCII协议有开始和结束标志,而Modbus的RTU协议没有,所以在ASCII协议程序中处理数据包更方便。
Modbus ASCII协议的数据字段传输所有可见的ASCII字符,所以在调试阶段更直观,其LRC验证程序更容易编写,这些都是Modbus ASCII协议的优点。
Modbus ASCII的主要缺点是传输效率低,因为它传输的是所有可见的ASCII字符。对于RTU原来传输的每一个字节的数据,都需要用ASCII码把这个字节拆分成两个字节。比如RTU传输一个十六进制数0xF9,ASCII需要传输字符’福’和字符’9’,对应两个字节的ASCII码0x46和0x39,这样它的传输效率肯定比RTU低。所以一般来说,如果要传输的数据量较小,可以考虑ASCII协议。如果要传输的数据量很大,RTU协议是最好的。
另外,由于ASCII协议有起始标志和结束标志,所以一个数据包的字节之间的传输间隔可以大于1秒,而RTU协议没有规定起始标志和结束标志,所以协议规定每两个字节之间的传输或接收间隔不能超过字符传输时间的3.5倍。如果两个字符之间的时间间隔超过字符传输时间的3.5倍,则认为已经接收到一帧数据,并传输新的一帧数据。所以RTU协议中对两个字节之间的传输间隔有时间要求。这种差异也决定了在某些应用中只能使用其中一种协议。