首页 > 其他分享 >RS485与ModbusRTU

RS485与ModbusRTU

时间:2024-09-10 17:25:06浏览次数:11  
标签:Modbus 一主多 RS485 通信协议 通信 ModbusRTU

前言

大家好!我是付工。

每次听到别人说RS485通信协议,就很想去纠正他。

今天跟大家聊聊关于RS485的那些事。

接口标准

首先明确一点,RS485不是通信协议,而是一种接口标准,它还有2个兄弟:RS232和RS422。

RS是Recommend Standard的缩写,对于串口通信,目前工业领域主要使用RS232和RS485,RS422使用较少。RS485因为抗干扰、传输距离远、支持多节点等优点使用更为广泛。

下面是RS232、RS422及RS485的对比图。

接线方法

RS485可以一对多,因此针对多台RS485设备,我们应该如何接线?

首先,在电缆选择上,推荐使用屏蔽双绞线,型号为RVSP2*0.5(二芯屏蔽双绞线,每芯由16 股的0.2mm的导线组成),线材特性阻抗为120Ω。

其次,正确的接线方法是手拉手菊花链式接法,如果通信距离较远(比如超过100米),应该在网络的起始端和末尾端各并接一个120Ω的电阻,以减少信号在两端的反射。

挂接设备

一条RS485总线上可以挂载多少个RS485设备,这个问题会经常被问到。

具体的数量由RS485转换器的负载能力决定,正常来说,RS485芯片的负载能力有三个级别,这三个级别依次可以挂载32台、128台和256台。

通常,我们使用的RS485转换器负载能力是32台,而且也不建议在一条RS485总线上挂载太多,挂载越多,出现问题处理越麻烦。

如果设备确实很多,可以通过扩展RS485总线的数量来分担负载压力,比如100台RS485设备,分4个RS485总线,每个总线挂载25台。

传输距离

从理论的角度来说,RS485在无中继的情况下,通信距离是1200米,但是这个是在理想情况下,理想情况是指通信电缆优质、波特率9600bps、只有一个RS485设备并且允许偶尔通信中断。

实际情况,伴随着负载设备增多、通信电缆不达标、RS485转换器品质等外界因素影响,通信距离都会有所降低。

正常来说,超过100米,就要考虑增加终端电阻,超过1000米,就要考虑增加RS485总线中继器。

通信协议

ModbusRTU与RS485是什么关系?

准确来说,两者应该是不同层级的关系,ModbusRTU是应用层一种通信协议,RS485是物理层的一种接口标准。

我们常说的ModbusRTU通信,通常是指基于RS485,但是ModbusRTU协议也可以基于RS232/RS422,甚至可以基于以太网TCP/UDP。

同时,RS485也不是ModbusRTU的专属,任何协议都可以基于RS485传输,至于能不能实现一主多从,要看协议层面有没有设计设备地址。

一主多从的实现有两个条件,第一是物理层支持,第二是应用层支持,两者缺一不可。比如,我们物理层使用RS232,即使应用层使用ModbusRTU协议,也无法实现一主多从。

通信速度

很多人提到Modbus协议,第一反应就是慢,这个是长期以来,口口相传的结果。究竟是否如此,我们来具体分析一下。

通信速度主要受到两个因素的影响:数据量大小和硬件层的速度。数据量大小指的是需要传输的数据多少,而硬件层的速度则跟通信设备和网络基础息息相关,这两者共同决定了通信速度的快慢。

举个例子,大家都经常取快递,整个耗时时间,跟快递数量多少、距离有多远以及我们使用的交通工具都是有关的。

首先,Modbus是一种通信协议,是没有速度的说法的。如果真的要论速度,Modbus报文帧简单紧凑,表达同样一个意思,在不考虑安全性的前提下,Modbus可以用更少的报文来表达,而其他协议,可能报文要更复杂,数据量也更大。

其次,硬件层的速度,这个与波特率及通信距离都有关系,因此如果真的说慢,你只能说串口通信慢,但不能说Modbus慢。

下面这张图,是使用ModbusTCP与各种PLC及板卡通信结果,实测结果,没有好坏贬低。

很多人一味地追求快,但是对于上位机来说,根本不需要太快,人眼能识别的动画是25帧/秒,即40ms,超过这个频率,你眼睛都识别不过来。

一主多从

另外一种情况,可能很多人是因为一主多从轮询,认为ModbusRTU通信速度慢。

Modbus协议在报文层设计了设备地址,这样就可以配合RS485实现一主多从,一主多从可以简化布线、易于管理、节点成本。

因此,在通信要求不高的情况,使用一主多从是一个非常好的方案,一主多从轮询机制必然会带来通信效率的降低。

既然选择了这种方案,就需要接受它的缺点,如果接受不了这个缺点,就不要选择它。

总之,我认为存在即合理,一个优秀的工程师,应该学会在正确的场景下选择正确的方案,最终达到自己的目的。

标签:Modbus,一主多,RS485,通信协议,通信,ModbusRTU
From: https://www.cnblogs.com/xiketangedu/p/18406808

相关文章

  • 隔离型RS485中继器:为工业自动化提供可靠的通信选项
    在工业自动化领域,通信的可靠性和稳定性是至关重要的。隔离型RS485中继器作为一种特殊的通信设备,为工业自动化提供了一种可靠的通信选项。本文将探讨隔离型RS485中继器的重要性、工作原理以及其在工业自动化中的应用。隔离型RS485中继器的重要性在工业环境中,设备之间的通信往往需要......
  • QY-SW 浮子水位计 RS485 LCD显示屏
    产品概述浮子水位计由水位传感器、显示器、传感器支架、浮子、悬索、平衡锤、RS485通信接口等部分组成,是观测水位变化的监测设备,利用浮子跟踪水位升降,以机械方式直接传动记录。使用浮子式水位计需有测井设备(包括进水管),适合岸坡稳定、河床冲淤不大的低含沙河段。功能特点◆......
  • RS485差分信号不对称
    在RS485总线通信中,差分信号不对称的问题时常出现,尤其是在总线未接从机设备的情况下。这一问题不仅影响通信质量,还可能导致信号传输错误。通过对实际波形、芯片手册及电路的深入分析,可以找出引发差分信号不对称的根本原因,并采取相应的解决措施。问题描述在RS485通信测试中......
  • RS485多主多从缓存隔离型集线器
    MS-M2101系列多主多从缓存隔离型RS485集线器是一款支持一路或多路RS485主站设备,一路RS485从站设备的通信设备,用于解决两个或多个主站同时与从站通信时造成通信冲突的问题,主站1查询从站数据只会回到主站1而不会回到主站2,同样主站2查询从站数据只会回到主站2......
  • RK3588添加支持RS485收发
    RS485是在串口基础上利用电平转换芯片,将TTL电平转换成485的差分信号,电路图如下:RO: 接收器输出----接RXRE: 接收器输出使能(低电平-接收使能)DE: 驱动器输出使能(高电平-发送使能)DI: 驱动器输入----接TX在传输数据时候需要将RS485RE置高,发送使能,接收禁止;发送完数据以后需要将RS......
  • 【漫谈C语言和嵌入式004】深入理解RS232、RS422和RS485:嵌入式系统中的串行通信协议
            在嵌入式系统设计中,串行通信协议是设备间数据传输的重要方式。其中,RS232、RS422和RS485是三种常用的标准。这些协议不仅在工业控制、仪器仪表、网络通信等领域得到广泛应用,也在许多嵌入式系统项目中扮演着重要角色。在本文中,我们将深入探讨这三种串行通信标准......
  • 电压电流高速采集RS485数字信号输出方案
    宽电压供电DC9-30V/0.1A支持USBType-C接口供电和通讯交流款支持三路交流400v,电流互感器,支持波形,半波全波等分析功能。其余可定制功能(±100V,±10V,4-20mA,75mV分流器,K热偶,PT100等)可提供一路5V供电输出给传感器(默认不带,可供电或报警输出)支持离线数据采集,T......
  • ModbusRtuOverTcp读写操作
     .NET免费开源工业物联网网关-小码编匠-博客园(cnblogs.com)IoTClient:IoTClient是一个物联网设备通讯协议实现客户端,将包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件终身开源免费,采用最宽松MIT协议,您也可以随意修改和商业使用(商业使用请做......
  • RS485问题记录
    RS485正确调用方式 HAL_UART_Receive_IT(&huart3,RxBuffer,MAX_RX_BUFFER_SIZE); HAL_UARTEx_ReceiveToIdle_IT(&huart3,RxBuffer,MAX_RX_BUFFER_SIZE);//两次激活while(1){ HAL_UARTEx_ReceiveToIdle_IT(&huart3,RxBuffer,MAX_RX_BUFFER_SIZE);//重复激活 i......
  • ModbusRTU数据返回格式(成功返回格式、错误返回格式、成功响应格式、错误响应格式)
    文章目录常见的响应示例读保持寄存器(功能码03)写单个寄存器(功能码06)写多个寄存器(功能码10)错误响应Modbus协议的返回格式取决于所使用的功能码。在ModbusRTU(通过串行通信实现的Modbus)中,响应格式通常包括以下部分:设备地址(SlaveAddress):通信中的设备地址,用来标识......