首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >RS-485和Modbus-RTU入门

RS-485和Modbus-RTU入门

作者头像
科控物联
发布2026-03-19 14:48:55
发布2026-03-19 14:48:55
720
举报
  • 什么是RS-485?
  • 什么是Modbus-RTU?

1. 什么是RS-485:

RS-485,也称为TIA-485EIA-485,是1983年推出的一种标准。它定义了用于串行通信系统的驱动程序和接收器的电气特性。以下是关于RS-485的一些关键要点:

  1. 平衡信令:RS-485采用双绞线电缆的平衡电信。这使得它对噪声和干扰具有强劲性,适合工业环境。
  2. 多点通信:RS-485支持多点系统,允许多设备通过单一双绞线进行长距离通信。它常用于工业控制系统。
  3. 数据速率与距离:RS-485 可支持最高 10 Mbit/s(或更低速度)的数据速率和最远 1,200 米(4,000 英尺)的距离。
  4. 三态逻辑:与RS-422不同,RS-485驱动程序采用三态逻辑,允许单个发射器被停用。这使得仅用两根线实现线性总线拓扑成为可能。

请记住,RS-485是连接嘈杂环境或长距离设备的理想选择。

RS485 被广泛应用于许多计算机和自动化系统中。其中一些例子包括机器人、基站、电机驱动、视频监控以及家用电器。在计算机系统中,RS485用于控制器与磁盘驱动器之间的数据传输。商用飞机客舱也使用 RS485 进行低速数据通信。这是由于RS485的布线配置要求,所需的布线需求极少。

然而,RS485 最常用于可编程逻辑控制器和工厂车间,这些地方存在大量电气噪声。RS485 被用作许多标准和专有自动化协议的物理层,用于实现控制系统,最常见的是 Modbus。

Modbus是全球市场上最受欢迎的自动化协议。Modbus由Modicon开发,使不同厂商的不同设备能够集成到主系统中。大多数Modbus实现使用RS485,是因为允许更长距离、更高速度和单一网络上多设备。

Modbus设备采用主从技术进行通信,只有一个设备(主控)可以发起事务(即查询)。其他设备(从设备)通过将请求的数据提供给主控设备,或执行查询中请求的作来响应。整个系统使制造工厂能够远程控制设备并实现自动化安装。

RS485是如何工作的?

裁判:lammertbies

在RS485标准中,数据通过两根绞合在一起的线传输,这也称为“双绞线电缆”。RS485中的双绞线具有抗电噪声的特性,使RS485在电气噪声环境中具有实用性。

RS485核心采用两线,支持半双工数据传输。这意味着数据可以单向地向设备传输。通过增加另外两根线,使其成为四线系统,它允许设备同时向双向传输数据,也称为全双工。然而,在全双工设置中,它们仅限于主从通信,从机之间无法通信。

2. 什么是Modbus-RTU:

Modbus RTU 是一种源自主从架构(现为客户端/服务器)的开放串行协议,最初由 Modicon(现为施耐德电气)开发。由于其易用性和可靠性,它被广泛接受为串行级协议。Modbus RTU广泛应用于建筑管理系统(BMS)和工业自动化系统(IAS)。

Modbus RTU 消息是一个简单的 16 位结构,带有循环冗余校验和。这些消息的简洁性确保了可靠性。由于这种简单性,基本的16位Modbus RTU寄存器结构可用于打包浮点、表、ASCII文本、队列及其他无关数据。

该协议主要使用 RS-232 或 RS-485 串行接口进行通信,并且被市场上所有商业 SCADA、HMI、OPC 服务器和数据采集软件程序支持。这使得将兼容Modbus的设备集成到新建或现有的监控与控制应用中变得非常容易。

Modbus 通信

RTU版本采用客户端/服务器技术在设备间通信。也就是说,任何使用 RTU 协议的应用程序都会有一个客户端和至少一个服务器。客户端通常是运行软件的主机管理计算机,用于与一个或多个服务器设备通信。

Modbus 支持通过总线或网络连接的设备之间的客户端/服务器通信。在OSI模型中,Modbus位于7级。它旨在作为请求/回复协议,提供由函数代码指定的服务。协议的功能代码是其请求/响应协议数据单元的元素。

为了构建Modbus应用数据单元,客户端必须发起Modbus事务。它是通知服务器应执行哪种类型的动作的函数。客户端发起的请求格式由应用协议确定。函数代码字段随后被编码为一个字节。只有1到255之间的代码被视为有效,128-255则保留给异常响应。当客户端向服务器发送消息时,正是函数代码字段告知服务器应执行哪种类型的动作。

为了定义多个动作,某些函数会添加子函数代码。例如,客户端可以读取一组离散输出或输入的开/关状态。它还可以读写一组寄存器的数据内容。当客户端收到服务器响应时,服务器会使用函数代码字段表示无错误响应或异常响应。在正常响应时,服务器会回响初始函数代码的请求。

Modbus RTU 数据表示

和Modbus的其他所有方面一样,数据表示很简单。事实上,Modbus 中的数据表示比你在任何工业协议中都更简单。最不重要的部分先发送和接收。网络中的所有设备都必须以类似方式解释每个传输的字节。

目前没有自动识别波特率的方法。连接到总线的服务器和客户端必须使用相同的波特率。协议中没有具体的波特率:典型的波特率为9600或19200。

Modbus 中只有两种数据类型:线圈和寄存器。线圈其实就是单个钻头。这些位可以是开(1)或关闭(0)。有些线圈代表输入,意味着它们包含某个物理离散输入的状态。或者它们代表输出,意味着它们保持某个物理离散输出信号的状态。寄存器只是16位无符号寄存器数据。寄存器的值可以从0到65535(0到FFFF十六进制)。负值没有表示,大于65535的值没有表示,也没有像200.125这样的真实数据表示。

寄存器分为输入寄存器和保持寄存器。与输入线圈类似,输入寄存器将某个外部输入的状态报告为0到65535之间的值。输入寄存器的最初意图是反映某个模拟输入的值。它是模拟信号的数字表示,如电压或电流。如今大多数Modbus设备并非I/O设备,输入寄存器的工作方式与保持寄存器相同。

保持寄存器最初设计为控制器等设备的临时程序存储。如今,保留寄存器作为设备的数据存储。

Modbus RTU数据包仅用于发送数据;它们不具备发送点名、分辨率、单位等参数的能力。如果需要发送这些参数的能力,应考虑BACnet、以太网/IP或其他现代协议。

FUXA PRO 1.2.9专业版

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 什么是RS-485:
    • RS485是如何工作的?
  • 2. 什么是Modbus-RTU:
    • Modbus 通信
    • Modbus RTU 数据表示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档