2023-10-18 11:48:44
Modbus是一种请求-应答协议,基于主/从或客户端/服务器架构。在主从关系中,通讯是成对出现。一个设备必须发起请求,然后等待响应。发起的设备(称为主设备)负责启动每次交互。通常,主设备是一个HMI或SCADA系统,从设备是传感器、可编程逻辑控制器(PLC)或可编程自动控制器(PAC)。在标准的Modbus网络中,有一个主设备和多达247个从设备。每个从设备都有一个从1到247的唯一从设备地址。
目前,modbus协议主要用于串口和以太网。对于串口连接,又分为modbus RTU和mobus ASCII,它们在数据和协议细节上略有不同。对于以太网连接,使用modbus TCP。
1) Modbus RTU
用于串口通信,使用二进制数据来进行协议通信。RTU格式使用循环冗余校验和作为错误检查机制,以确保数据的可靠性。Modbus RTU是Modbus最常用的实现方式。一个Modbus RTU消息必须一次连续传输,不能有字符间的停顿。Modbus消息通过空闲(沉默)期分隔。、
2) Modbus ASCII
也用于串口通信,使用ASCII字符进行协议通信。ASCII格式使用纵向冗余校验校验和。Modbus ASCII消息由冒号(":")和尾部换行符(CR/LF)来作为一首尾标识。
3) Modbus TCP
用于TCP/IP网络通信的Modbus,连接端口为502。它不需要计算校验和,因为TCP/IP底层已经提供了校验和保护。
2.2 Modbus ASCII,RTU,TCP的差异
Modbus TCP基本上可以理解为通过以太网TCP/IP传输的的Modbus RTU协议。Modbus数据结构是使用TCP/IP协议中的应用层定义的。TCP协议用于确保正确接收和发送数据,而IP协议包含地址和路由信息。Modbus TCP命令通过TCP/IP协议打包传输的Modbus RTU命令。Modbus TCP的优势在于可以使用通用的以太网设备。
3. 德传设备中的ModBus应用