简介

Modbus RTU协议是一种允许可编程逻辑控制器(PLC)和计算机之间进行数据交换的通信方式。 电子设备可以使用Modbus协议通过串行线路交换信息。

它已被广泛接受并广泛用于 建筑管理系统 的建设 (BMS) 和工业自动化系统(IAS)。 它的易用性,可靠性以及它是开源的,并且可以在任何设备或应用程序中免费使用。

该协议由Modicon®于1979年开发和发布,用于其可编程逻辑控制器。 它使用主/从架构构建,并支持使用RS232 / RS485 / RS422协议的串行设备。 Modbus通常用于多个仪器和控制设备将信号传输到中央控制器或系统以收集和分析数据的情况。 工业自动化和监督控制和数据采集 (SCADA) 系统通常采用Modbus协议。

类别

Modbus通信协议具有多个变种,其具有支持串口(主要是RS-485总线),以太网多个版本,其中最著名的是Modbus RTU ,Modbus ASCIIModbus TCP 三种。其中 Modbus RTUModbus ASCII 均为支持RS-485总线的通信协议。

Modbus RTU 是原始Modbus规范中定义的两种传输模式之一。 这两种模式分别是Modbus RTU和ASCII,它们都设计用于支持RS232,RS485和RS422协议的串行设备。 Modbus RTU的一个显着特点是它使用二进制编码和强大的CRC错误检查。 Modbus RTU是Modbus协议的实现,最常用于工业应用和自动化生产设施。

Modbus ASCII由于采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率要远远低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议,在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。

如何工作?

Modbus协议基本上是一个处理来自电子设备的请求和响应的系统。 主/从体系结构与主设备请求一起使用,这些请求由从设备响应。

什么是Modbus RTU主站?

Modbus RTU主站是从连接的从站设备请求信息的中央设备。 自动化生产系统中的中央控制器可以扮演Modbus RTU主站的角色。 Modbus实现有一个主服务器。 主设备从从设备获取信息,也可以写入从设备的寄存器。

什么是Modbus RTU从站?

Modbus RTU从站是响应主设备请求的设备。 它无法启动信息传输,并且在响应主服务器发出的请求之前处于保持模式。

如上所述,Modbus RTU实现中有一个主设备,最多可以有247个从设备。 每个从设备由从地址1到247标识。

Modbus协议的核心是被称为的组件 协议数据单元 (PDU). PDU由功能代码和数据组成,无论使用何种Modbus传输模式,都可以一致地构建。 功能代码指定主站请求的数据。

在Modbus RTU传输模式中,附加信息包裹在PDU周围以创建完整的应用数据单元(ADU)。 在信号流中和功能代码之前,在Modbus RTU模式下,发送1字节的从ID以识别应满足请求的从设备。 附加到PDU的是2字节CRC,确保发送和接收正确数量的字节。

Modbus设备支持四个数据表,用于促进设备之间的通信。 它们是离散输入,离散输出(线圈),输入寄存器和保持寄存器。 寄存器执行不同的功能,并不是每个设备都包含在内。 在某些情况下,只有保持寄存器用于I / O功能。

领域访问尺寸描述
离散输入只读1位用作输入
线圈输出读/写1位用于控制离散
输入寄存器只读16位用于输入
持有寄存器读/写16位用于各种事物,包括输入,输出,配置数据等。

功能代码指示主设备如何与从设备ID中指定的从设备进行交互。 根据发送的功能代码,主设备可以读取从机的一个寄存器,或写入它们。

当从站接收到包含请求中的错误的数据包时,它们会返回错误代码。 对于诸如非法功能请求,指定从站无法访问的非法寄存器地址以及指示从设备忙或已经发生故障的消息等问题,将返回错误代码。

Modbus RTU要求您在启动通信时知道或定义波特率,字符格式(8位无奇偶校验等)和从站ID等参数。 任何这些参数不匹配都会导致您的通信尝试失败。

Modbus RTU与TCP

Modbus RTU是Modbus协议中定义的原始传输模式之一。 Modbus TCP是最近开发的协议扩展,允许Modbus协议通过TCP / IP网络传输。 通过网络进行通信的固有延迟和其他方面,需要对如何保持请求和响应彼此同步进行一些修改,并确保不从从设备接收错误数据。

与Modbus RTU相比,Modbus TCP在PDU的包装方式上有所不同。 包含PDU的TCP帧以2字节的MODBUS应用协议(MBAP)事务标识符开始,而不是从ID。 当TCP层处理该功能时,也不需要CRC执行错误检查。

Modbus RTU与ASCII

由于它们都是原始Modbus协议规范的一部分,您可能想知道它们之间的区别 Modbus ASCII 和 Modbus RTU. Modbus RTU采用二进制编码和CRC错误检查。 这些选择是为了提高效率而进行的,并且是RTU模式是工业环境中最常用的模式的主要原因。 您可能已经猜到,Modbus ASCII在发送消息时使用ASCII字符。

ASCII字符的使用使消息更易于阅读,但传输效率较低。 另一个主要区别在于执行的错误检查级别。 Modbus ASCII使用效率较低的LRC错误检查方法,而不是RTU模式的较强CRC。

虽然Modbus RTU和Modbus ASCII都设计用于串行设备和协议,但由于上述差异,它们彼此不兼容。 如果使用串行设备,则应准备好使用Modbus协议。

邮箱

cloud@modbus.cn

QQ
QQ
微信
微信
分享本页
返回顶部