Modbus是一种通信协议,是 Modicon公司(后来被施耐德电气 Schneider Electric收购)于 1979 年为使用可编程逻辑控制器(PLC)通信而发表。目前Modbus已成为工业领域内广泛使用的一种通信协议,特别是对于监控和控制系统。

一、通讯机制

Modbus协议,从字面上理解它包括Mod和Bus两部分,mod是公司的简写(Modicon公司),而bus表示它是一种总线,即总线协议。总线就意味着有主机,有从机,这些设备在同一条总线上。Modbus支持单主机,多个从机,最多支持247个从机设备。总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信。

主机查询其中一个从机,这样你必须得先为这些从机分配地址(这样才能知道跟哪个从机进行通讯),分配好地址后,然后主机要查询,进行数据下发,从机得到主机发送的数据,然后对应地址的从机回复,主机得到从机数据,这样就是一个主机到从机的通信过程。

广播风暴发生的场景
Modbus网络体系结构实例

二、通讯机制

01
Modbus-RTU

Modbus-RTU是基于Modbus协议,采用二进制数据格式进行高效的数据传输。帧结构一般由地址、功能码、数据、校验组成。它具有以下特点:

  • 数据传输效率高:由于采用紧凑的二进制格式,能够以较快的速度进行数据传输。
  • 适用于串口通讯:通常通过RS-485等串行接口进行数据交换,支持多点连接,但一次只能有一个设备发送数据,其他设备在等待响应时保持静默。
  • 报文结构简单:每个报文由地址、功能码、数据和CRC校验码组成,没有起始位和停止位,通过特定的沉默时间和字节间隔来区分不同的报文。
  • 可靠性强:以其简单稳定的数据交换方式确保了极高的可靠性和稳定性。
  • 广泛兼容性:几乎所有PLC、传感器和仪表都支持Modbus-RTU协议。

在实际应用中,Modbus-RTU常用于需要快速响应和稳定通信的场景,如工业控制系统的数据采集和设备控制。Modbus-RTU仍然因其简单可靠的特点,在许多工业现场中被广泛使用。

02
Modbus-ASCII

Modbus-ASCII是建立在Modbus RTU协议上的,是将指令转换为ASCII字符进行传输的。具体来说,Modbus-ASCII协议在消息帧中每8位的数据都转换为两个ASCII字符发送。这种模式的数据传输效率较低,因为每个字节的数据需要转换为两个字符,但其优点在于数据包的处理更加直观,易于调试和故障排查。在选择使用Modbus-ASCII模式时,需要考虑实际应用环境和通信需求,如果数据量较小且对传输效率要求不高,可以考虑使用该模式。

03
Modbus-TCP

Modbus-TCP是指基于以太网的Modbus通信协议,它结合了Modbus协议的核心功能和TCP/IP协议的特点。Modbus-TCP是Modbus协议在以太网上的实现,它保留了Modbus协议的主从通信模式和数据模型,但将数据封装在TCP/IP的数据包中进行传输。与Modbus-RTU和Modbus-ASCII不同,Modbus-TCP在原始Modbus报文前添加了MBAP(Modbus Application Protocol)报文头,用于标识事务处理、协议类型和数据长度等信息。

由于TCP/IP本身具备可靠传输机制,Modbus-TCP不需要像Modbus-RTU那样进行CRC校验,因为TCP协议已经提供了数据校验和错误恢复功能。Modbus-TCP适用于需要在以太网环境中进行数据通信的场景,尤其是在工业自动化系统中,它能够实现PLC、HMI和其他设备之间的高效数据交换为工业通信提供了更加灵活和可靠的解决方案。与Modbus-RTU和Modbus-ASCII相比,Modbus-TCP具有更长的通信距离、更高的数据传输速度和更好的网络兼容性,特别适合于大规模的工业网络和远程监控应用。

广播风暴发生的场景

三种协议在报文格式上有一定的区别。Modbus-RTU 和 Modbus-ASCII 一般用于串口通讯。Modbus-TCP 用于网口通讯。

Modbus协议由于其帧格式简单、紧凑,通俗易懂。同时Modbus协议标准化、对外开放,不需要交纳许可证费,也不会侵犯知识产权,用户可免费使用,大大降低了厂商开发门槛。

支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。 正是由于这些优势,Modbus协议广泛应用在工业控制器、HMI和传感器上,成为工业领域通信协议的业界标准,是工业电子设备之间常用的连接方式。

← 上一篇边缘计算网关 VS 5G工业路由器:工业数字化转型的双引擎