配置 RS485 设备可能具有挑战性。Modbus 与 RS-485 协议之间的兼容性往往是个问题。由于这两种协议在通信栈的不同层上运行,你可能会面临一场漫长的调试过程。
RS485 协议是一种在栈的物理层运行的电气标准。它定义了诸如电缆长度、可接受的电压水平以及可在单条总线上共享的设备数量等事项。
Modbus 协议在应用层运行,重点在于消息如何被结构化、寻址以及由接收方解释。你需要知道是哪一层导致了问题,才能有效地解决它。
Modbus 与 RS485 之间的区别
下表比较了这两种关键协议中影响其兼容性的最重要参数。
| RS485 | Modbus | |
| 层 | 物理层(OSI 第 1 层) | 应用层(OSI 第 7 层) |
| 定义者 | EIA/TIA-485 | 1979 年由 Modicon 制定;现已开放 |
| 类型 | 电气标准 | 通信协议 |
| 拓扑 | 多点总线,无中继器时最多支持 32 个节点 | 主/从模式,1 个主站,最多 247 个从站 |
| 功能 | 定义布线、信号电平及其他电气特性 | 定义消息、数据成帧和功能码 |
| 数据格式 | 差分电压信号 | RTU(二进制)或 ASCII 帧 |
| 错误检测 | 未规定 | CRC(RTU)或 LRC(ASCII) |
| 最大速度 | 短距离下最高可达 10 Mbps | 在 RS485 上使用 RTU/ASCII 时通常为 9,600 – 115,200 bps |
| 最大距离 | 100 kbps 时为 1,200 m | 取决于物理层 |
| 变体 | RS422(点对点)RS232(短距离) | Modbus RTU、Modbus ASCII、Modbus TCP/IP |
什么是 Modbus?
Modbus 是由 Modicon 于 1979 年开发的应用层通信协议。它是一种开放、免费的协议,定义了主设备与一个或多个从设备之间发送消息时消息的结构。Modbus 可运行在多种传输方案之上,包括 RS485、RS232、RS422 或以太网(TCP/IP)
关键特征
• 架构:一个主站可与最多 247 个可寻址从站通信,从站编号 1–247,ID 0 保留用于广播。
• 通信模型:主站通过向从站发送请求来发起所有通信,从站只能响应。
• 寻址:所有请求都包含目标从站 ID,每个响应都会回显该 ID。
• 数据类型:1 位线圈和离散输入,16 位输入寄存器和保持寄存器。
• 错误检测:ASCII 模式使用 LRC,RTU 模式使用 CRC-16。
数据模型
• 线圈(1 位,读/写)提供离散输出状态。
• 离散输入(1 位,只读)用于离散输入状态。
• 输入寄存器(16 位,只读)存储测量的输入值。
• 保持寄存器(16 位,读/写)保存配置和输出值。
变体:RTU、ASCII、TCP/IP
• Modbus RTU 是用于 RS485 的标准,因为其速度快且尺寸紧凑。它采用二进制编码和 CRC-16 错误校验。
• Modbus TCP/IP 通过以太网使用,不需要 CRC/LRC,因为 TCP 负责通信完整性。
• Modbus ASCII 使用十六进制字符编码和 LRC 错误校验。该变体通常用于 RS232,并且可供人类读取。
什么是 RS485?
RS485 (EIA-485) 是一种在物理层运行的电气标准,用于定义信号如何通过导线传输。该协议规定了电缆阻抗、电压电平、最大电缆长度和总线拓扑等方面。RS485 不了解更高层协议、消息格式或数据内容。
关键特征
• 信号传输:差分信号,即 A 线与 B 线之间的电压差,对电气噪声具有很强的抗干扰能力。
• 拓扑:支持多点总线,在无需中继器的情况下,单对导线上最多可连接 32 个单位负载。
• 最大距离:在 100 kbps 下约为 1,200 m,数据传输速度越高,距离越短。
• 最大数据速率:在小于 15 m 的短距离内最高可达 10 Mbps。
• 双工:默认使用一对双绞线的半双工。使用两对线可实现全双工。
相关标准:RS232 和 RS422
• RS232 是一种单端、点对点协议,最大传输距离约为 15 m。信号与 RS485 不兼容。通常使用直接适配器来实现 RS485 转 USB 或 RS-485 转以太网。
• RS422 提供与 RS485 类似的差分信号,但每条线仅限一个驱动器用于点对点通信,不支持多点连接。
用于监控和分析 Modbus 数据的工具
对通信问题进行故障排除需要了解 RS485 与 Modbus 之间的差异,并洞察总线上传输的内容。实现这种可视性最有效的方法是分析原始串口流量。通过验证寄存器值并发现寻址错误,这种分析可让你高效地调试问题。串口监视器(SPM)是一种提供这些信息的软件解决方案。
Modbus 测试软件是一款协议分析器,可提供通过 RS232/RS422/RS485 接口进行 Modbus 通信的相关信息。该软件使用户能够在测试和调试 Modbus 通信时轻松检测并解决问题。其最有价值的功能之一是能够显示并记录通过系统串口传输的数据。
Modbus 测试软件
Modbus Analyzer 让用户能够在 Modbus RTU 和 ASCII 串行数据通过系统的 RS485 端口传输时,对其进行显示、记录和调试。
这款专业的 Modbus 测试软件让用户能够:
• 连接并监控已被其他程序占用的串行端口。可实时显示该端口接收到的所有数据,以便立即进行监控和调试。
• 同时监控多个串行端口。您可以在单次会话中同步分析多个串行端口的活动。双向流动的数据会按先进先出的方式在单个日志中呈现,便于查看。
• 以多种格式查看您的数据,包括表格、终端、折线和转储视图。可同时查看多个视图,并且您可以使用过滤器对监控进行精细调整。
• 对传输到串行设备的数据进行仿真,以在接收到特定命令时监控其活动。
常见问题
不,它们不同,是互补的协议。Modbus 是一种消息传输协议,而 RS485 定义了物理电气接口。RS485 是 Modbus 传输消息的通道。
RS485 标准在没有中继器的情况下支持总线上最多 32 个单位负载,而 Modbus 允许最多 247 个从站。通常,32 个节点的物理限制是标准配置,并通过部署中继器来扩展支持的设备数量。
Modbus RTU 是一种紧凑且高效的协议,以二进制形式传输数据并通过 CRC 进行错误校验。它是与 RS485 配合使用的首选协议。Modbus ASCII 以人类可读的十六进制字符传输数据,并采用 LRC 错误校验。这是一种效率较低的解决方案,但它便于在 RS232 链路上进行更简化的调试。
是的。Modbus 也可以通过 RS232、RS422 或以太网(Modbus TCP/IP)连接运行。RS485 是工业环境中 Modbus 首选的物理层,因为它具备多点连接能力并且抗噪声能力强。