干货丨浅谈Modbus协议中RTU、ASCII、TCP的区别

[复制链接]
查看18595 | 回复0 | 2024-5-17 08:40:47 | 显示全部楼层 |阅读模式

点击关注▲ “邦纳”,开启智造之旅


Modicon 公司首次推出了Modbus协议,Modbus RTU和Modbus ASCII诞生于此。后来施耐德电气在1997年推出了ModbusTCP协议。2004年,中国国家标准委员会正式把Modbus作为了国家标准,开启了Modbus为中国工业通信做贡献的时代。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。Modbus协议具有标准、开放,可以支持多种电气接口,数据帧格式简单紧凑,数据传输量大、实时性好等特点,在工业控制系统中得到了广泛的应用,已经成为通用工业标准。深入分析Modbus协议实现原理和其安全性对提高工控系统安全性有着重要的现实意义。Modbus RTU和Modbus ASCII主要用于串行通信领域,而Modbus TCP则常用于以太网通信。现在,Modbus已经成为工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。

Modbus使用一种简单的Master and Slave主从协议(客户机/服务器协议)进行通信。客户机作为主站,向服务器发送请求;服务器(从站)接到请求后,对请求进行分析并作出应答。其中使用的通信帧被称为应用数据单元(Application Data Unit,ADU),它包括通信地址段、功能代码段、数据段和校验段。

Modbus RTU与Modbus ASCII有什么区别?

Modbus是一种应用层协议,它定义了与基础网络无关的数据单元(ADU),可以在以太网(TCP/IP)或串行链路上(RS232、RS485等)进行通信(以太网ADU和串行ADU略有不同)。在串行链路上,Modbus协议有两种传输模式——ASCII模式和RTU模式。其中,ASCII是英文“American Standard Code for Information Interchange”的缩写,中文翻译为“美国国家信息交换标准编码”;RTU是英文“ Remote Terminal Unit”的缩写,中文翻译为“远程终端设备”。

在ASCII模式下,每个8位的字节被拆分成两个ASCII字符进行发送,比如十六进制数0xAF,会被分解成ASCII字符“A”和“F”进行发送,发送的字符量比RTU增加一倍。ASCII模式的好处是允许两个字符之间间隔的时间长达1s而不引发通信故障,该模式采用纵向冗余校验(Longitudinal Redundancy Check ,LRC)) 的方法来检验错误。

在RTU(Remote Terminal Unit)模式下,每个字节可以传输两个十六进制字符,比如十六进制数0xAF,直接以十六进制0xAF(二进制:10101111)进行发送,因此它的发送密度比ASCII模式高一倍;RTU模式采用循环冗余校验(CRC)。
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则