工业无线

邦纳丨浅谈Modbus协议中RTU、ASCII、TCP的区别

2025China.cn   2021年05月11日

  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)。邦纳公司大部分产品支持Modbus通讯,以下为支持Modbus RTU的产品:

▲测量光栅支持Modbus RTU 通讯

▲拾取指示灯支持Modbus RTU通讯

▲邦纳所有无线产品支持Modbus RTU通讯

  什么是Modbus TCP?

  Modbus TCP和Modbus RTU基本相同,但是也存在一些区别:

  从机地址变得不再重要,多数情况下忽略。从某种意义上说从机地址被IP地址取代

  CRC校验变得不再重要,甚至可以忽略。由于TCP数据包中已经存在校验,为了不重复造轮子,Modbus TCP干脆取消了CRC校验。

  TCP 模式是为了让Modbus数据顺利在以太网上传输产生的,使用TCP502 端口。该协议物理层,数据链路层,网络层,传输层都是基于TCP 协议,只在应用层,将Modbus 协议修改后封装进去; 接收端将该TCP 数据包拆封后,重新获得原始Modbus帧,然后按照Modbus协议规范进行解析,并将返回的数据包重新封装进TCP 协议中,返回到发送端。与串行链路传输的数据格式不同,TCP 模式去除了附加地址和校验,增加了报文头。邦纳公司大部分产品支持Modbus通讯,以下为支持Modbus TCP的产品:

▲安全控制器支持Modbus TCP通讯

▲邦纳所有视觉产品支持Modbus TCP通讯

▲邦纳二维码读取器都支持Modbus TCP通讯

▲邦纳部分无线产品支持Modbus TCP通讯

(转载)

标签:邦纳 Modbus协议 RTU ASCII TCP 我要反馈 
什么是新一代机器人界面(HMI)?
ABB协作机器人,自动化从未如此简单
优傲机器人下载中心
即刻点击并下载ABB资料,好礼赢不停~
西克
专题报道