新闻中心
PRESS CENTER在上个世纪70年代,工业自动化领域处于快速发展时期,不同设备商之间百舸争流,但是他们的快速发展也带来了一些问题。当时不同厂商的设备使用的是不同的协议,这让他们的设备之间无法进行通信。为了解决这个问题,Modbus协议应运而生。它是一种开放、标准化的协议,可以支持多种数据类型和功能码,能够满足不同的通信需求。Modbus协议,包括ASCII、RTU和TCP三种类型。当Modbus协议使用串口传输时,可以选择前两种类型,但是需要对数据进行校验。当使用以太网传输时,就用到了TCP类型,这种类型是不需要进行校验的。由于Modbus ASCII的数据主要使用ASCII码来传输的,传输效率较低,目前已经较少被人使用。相比之下,Modbus RTU和Modbus TCP更适合对传输效率要求更高的现代工业环境使用。本文将浅析这两个协议,介绍它们的工作原理和应用场景,希望对你有所帮助。
Modbus通信是这样的,它采用主从通信模式,就是指有主设备和从设备,主设备能对传输进行初始化,然后发送请求给从设备,从设备不能主动应答,只能根据主设备的请求进行应答。然后从设备执行请求的操作,再向主设备发送响应。主设备接收到响应后,对它进行解析响应,这样就完成了一次通信过程。 一个主设备,可以同时连接一个或多个从设备,但是一次通信只能有1个主设备和1个从设备。主设备如果连接1个从设备,它们之间采用单播模式进行通信;如果连接的是多个从设备,则选择广播模式进行通信。
Modbus RTU支持多种电气接口,如RS 232、RS 485和RS 422等。它的数据传输采用二进制形式传输,每个字节包含两个4位十六进制数。RTU协议指令由地址码、功能码、起始地址、数据、校验码5个部分组成。例如发送指令: 01 03 76 83 00 0C AE 6F,其中,01是地址码,代表从机地址;03是功能码,表示“读”;76 83是寄存器的地址;00 0C是读取寄存器的个数;AE 6F代表CRC校验。
应用场景
由于Modbus RTU是以二进制形式进行数据传输,简单而稳定,所以它非常适用于长距离通信、难以布线的场景或者设备分布较广的场景,例如工业自动化场景、小型控制系统等。
Modbus TCP是为Modbus数据能在以太网上传输而产生的,使用了TCP502端口。Modbus TCP在Modbus RTU的基础上,加上了MBAP报文头,由于TCP基于可靠连接的服务,所以不再使用CRC校验,而是依赖于TCP本身的错误检测和纠正机制。例如发送指令:68 68 00 00 00 06 01 03 33 65 00 04,其中,68 68是报文序列号;00 00表示是用的Modbus TCP协议;00 06表示后续字节数;01是从机地址;03为功能码;33 65表示寄存器地址;00 04是寄存器的个数。
应用场景
因为Modbus TCP具有传输速度快、可靠性高的特点,所以它常常被用在更复杂的场景中,例如大型控制系统、楼宇控制系统等。
实际工作中,我们在选择到底使用Modbus RTU还是Modbus TCP协议时,需要进行综合考虑,如果是已有网络基础设施、需要大量数据交换、快速响应,TCP是不错的选择;如果需要简单、低成本、长距离通信,那么使用RTU是明智的选择。
Modbus RTU和Modbus TCP像是一对好朋友,它们各有优势,一起帮助设备之间进行有效的数据交换。随着工业4.0的发展,它们将融入更多的新技术,让我们一起期待未来它们为工业自动化发展创造更多的价值!