汇川CodeSysPLC教程03-2-4 RS485

前情回顾

在前面介绍串口通讯的视频当中,我们提到了RS232,也顺带提到了RS485,本期将会对RS485做比较全面的比较和盘点。

什么是RS485?

RS485是一种用于串行通信的标准,通常用于工业自动化和远距离数据传输。它在电气工程和计算机科学领域中广泛应用。以下是RS485的一些关键特点:

  1. 双向通信:RS485支持双向通信,即可以在一条线路上同时发送和接收数据,这使其在多点通信系统中非常有效。

  2. 多点连接:RS485允许多达32个设备连接在同一条总线上,这对于需要多个设备互相通信的系统非常有用。

  3. 长距离传输:RS485的通信距离可以达到1200米(4000英尺),这使其在需要远距离数据传输的场景中非常有用。

  4. 差分信号传输:RS485使用差分信号传输,即通过两根线(A和B)传输信号。这种方法可以有效地抑制电磁干扰和噪声,保证数据传输的可靠性。

  5. 数据传输速率:RS485的最大数据传输速率可以达到10 Mbps,具体取决于传输距离。距离越短,传输速率可以越高。

  6. 拓扑结构:RS485通常使用总线拓扑结构,也可以使用星形拓扑结构,但需要使用适当的终端电阻来避免信号反射。

RS485的常见应用包括工业控制系统、楼宇自动化、过程控制、环境监测和各种需要可靠长距离数据传输的系统。相比于RS232等其他串行通信标准,RS485在抗干扰能力和多点通信能力上有显著优势,因此在许多工业和商业应用中被广泛采用。

它的半双工通讯和全双工通讯有什么区别?

RS485可以支持半双工和全双工两种通信模式,它们在通信方式上有所不同:

半双工通信

  • 定义:半双工(Half-Duplex)通信意味着数据可以在两个方向上传输,但不能同时进行。即,在同一时间内,只能有一方发送数据,另一方接收数据。
  • 特点
    • 单信道:半双工通信通常使用一对差分信号线(A和B)来传输数据。
    • 成本较低:由于只需要一对线缆,布线成本相对较低。
    • 控制复杂性:需要某种机制来控制哪个设备在特定时间发送数据,以避免冲突。通常通过协议来实现这种控制。
  • 应用场景:多用于需要多个设备共享同一通信线路的场景,例如工业自动化中的传感器和控制器之间的通信。

全双工通信

  • 定义:全双工(Full-Duplex)通信意味着数据可以同时在两个方向上传输。即,一方可以在发送数据的同时接收数据,双向通信可以并行进行。
  • 特点
    • 双信道:全双工通信通常使用两对差分信号线,一对用于发送数据,另一对用于接收数据。
    • 高效率:由于可以同时发送和接收数据,通信效率更高。
    • 成本较高:需要更多的线缆(两对差分线),布线成本和复杂性较高。
  • 应用场景:适用于需要高效实时双向通信的场景,例如某些工业网络和自动化系统。

总结

  • 半双工:数据传输在同一时间只能单向进行,通常使用一对线缆,适合较低成本、多设备共享线路的应用场景。
  • 全双工:数据传输在同一时间可以双向进行,使用两对线缆,适合需要高效双向通信的应用场景。

在选择RS485通信模式时,应根据具体应用的需求、预算和系统复杂性来决定使用半双工还是全双工通信。一般的我们的PLC都是以半双工通讯的两线制来进行通讯的。

为什么485系统只能有31个从站呢?

RS485总线系统的设计允许最多32个设备(包括一个主站和31个从站)连接在同一条总线上。这一限制源于RS485标准中的电气特性和负载要求。具体原因如下:

1. 驱动器能力

RS485标准规定了每个驱动器必须能够驱动的最大负载。这个负载通常用“单位负载”(Unit Load, UL)来表示。根据标准,每个RS485驱动器需要能够驱动至少32个单位负载。

2. 单位负载

每个连接在总线上的设备(接收器)都会对总线施加一定的电负载。RS485标准定义每个接收器的负载不能超过1个单位负载。传统的RS485接收器设计为1个单位负载。因此,当总线上有32个接收器时,总负载正好是32个单位负载,这也是标准的上限。

3. 负载和信号完整性

随着总线上连接的设备数量增加,总线的负载也增加。如果负载过大,驱动器可能无法可靠地驱动总线电压,导致信号幅度下降和信号质量恶化。这会影响通信的可靠性和距离。

4. 改进方案

随着技术的发展,出现了“低负载”或“分数负载”(Fractional Load)的RS485收发器,这些收发器的负载可以低于1个单位负载(例如,1/2 UL或1/4 UL)。使用这些收发器,可以在不超过总负载限制的情况下连接更多设备。例如,如果每个收发器只有1/4单位负载,那么最多可以连接128个设备。

5. 实际应用中的其他限制

尽管标准允许最多32个单位负载,实际应用中还需考虑其他因素:

  • 总线长度:增加设备数量可能会缩短可用的总线长度,因为更多的负载会增加信号衰减。
  • 终端电阻:在总线两端需要适当的终端电阻以减少信号反射。终端电阻的值和数量也会影响总线性能。
  • 布线质量和环境干扰:实际布线质量、环境电磁干扰等因素也会影响通信的稳定性和设备数量。

总结

RS485标准规定了最多32个单位负载,这个限制主要来自驱动器的驱动能力和每个接收器的负载。使用低负载收发器可以增加连接设备的数量,但在实际应用中还需综合考虑总线长度、终端电阻、布线质量和环境因素,以确保通信的可靠性。

为什么说差分信号传输这种方法可以有效地抑制电磁干扰和噪声,保证数据传输的可靠性

差分信号传输之所以能有效地抑制电磁干扰和噪声,保证数据传输的可靠性,主要归功于其独特的工作原理和电气特性。以下是一些关键因素:

1. 差分信号的工作原理

  • 差分对:差分信号传输使用一对导线,每根导线携带相同信号的相反电压(即一个线上的电压为+V,另一个线上的电压为-V)。
  • 接收器端处理:在接收端,差分信号接收器检测两根线之间的电压差而不是相对于地的电压。这意味着接收器仅关注信号线之间的电压差异。

2. 电磁干扰的抵消

  • 共模噪声抵消:当外部电磁干扰(EMI)影响到差分对时,干扰信号通常会以相同的方式(共模噪声)叠加在两根导线上。由于接收器关注的是两根线之间的电压差,而共模噪声在两根线上是相同的,因此在接收端,它们的影响会相互抵消,从而极大地减小了噪声的影响。
  • 磁场抵消:由于两根导线上的电流方向相反,它们产生的磁场也会相互抵消。这进一步减少了传输线对外界电磁场的辐射,也减少了外界磁场对传输线的影响。

3. 噪声对称性和抗干扰能力

  • 对称性:差分对中的两根导线通常布置得非常接近,几乎以平行的方式运行。这种对称性确保了任何外部电磁干扰对两根导线产生的影响几乎相同,从而进一步增强了共模噪声的抵消效果。
  • 接地噪声抑制:由于差分信号不依赖于地作为参考,它们对接地噪声和接地回路问题不敏感。这对于长距离传输尤其重要,因为不同点的地电位可能不同。

4. 信号完整性

  • 减少反射和失真:在差分信号传输中,信号的一致性和匹配阻抗设计有助于减少信号反射和失真,从而保证了信号的完整性。
  • 高信噪比:由于共模噪声的抵消效果,差分信号传输通常具有更高的信噪比(SNR),这意味着信号更清晰,误码率更低。

5. 实际应用中的优势

  • 工业环境:在工业环境中,电磁干扰源(如电机、电源线和无线电设备)非常普遍。差分信号传输的抗干扰特性使其特别适用于这些环境。
  • 长距离传输:在长距离传输中,信号衰减和噪声累积是主要问题。差分信号的抗干扰能力和高信噪比使其在长距离传输中表现优越。

总结

差分信号传输通过关注两根信号线之间的电压差而非单端信号相对于地的电压,大大减少了电磁干扰和噪声的影响。其对称性和共模噪声抵消特性确保了高信噪比和信号完整性,使其成为工业自动化、数据通信和长距离传输等应用中可靠的数据传输方法。

它和RS232的主要区别在哪里?

RS485和RS232是两种常见的串行通信标准,它们在设计、应用、性能和电气特性上都有显著的区别。以下是它们的主要区别:

1. 信号传输方式

  • RS232:

    • 单端信号传输:RS232使用单端信号传输方式,即每个信号线相对于公共地(GND)传输数据。
    • 电压范围:典型的电压范围为-15V到+15V。信号“1”通常表示为-3V到-15V,信号“0”表示为+3V到+15V。
  • RS485:

    • 差分信号传输:RS485使用差分信号传输方式,即通过两根线(A和B)传输相反的电压信号。接收端检测两根线之间的电压差。
    • 电压范围:RS485的电压范围通常为-7V到+12V,但信号“1”和“0”是通过两根线之间的电压差来表示的。逻辑“1”以两线间的电压差为+(2-6)V表示;逻辑“0”以两线间的电压差为-(2-6)V表示。

2. 通信距离

  • RS232:

    • 通常适用于短距离通信,最大距离约为15米(50英尺)。
    • 由于单端信号传输和较高的信号衰减,RS232在长距离传输中容易受到噪声和信号失真。
  • RS485:

    • 适用于长距离通信,最大距离可以达到1200米(4000英尺)。
    • 差分信号传输方式使其在长距离和噪声环境中具有更好的抗干扰能力。

3. 通信模式

  • RS232:

    • 主要支持点对点通信,即一对一的通信模式。
    • 只能同时传输一个信号,不能实现多点通信。
  • RS485:

    • 支持多点通信,即一条总线上可以连接多个设备(最多32个标准负载设备)。
    • 适合主从式或多设备并行通信的应用。

4. 数据传输速率

  • RS232:

    • 数据传输速率相对较低,通常在几十kbps到几百kbps范围内。
    • 由于信号传输方式的限制,高速传输时容易受到噪声干扰。
  • RS485:

    • 数据传输速率可以更高,最高可达10 Mbps(但速率和传输距离成反比)。
    • 差分信号传输方式在高传输速率下也能保持较高的信号完整性。

5. 抗干扰能力

  • RS232:

    • 抗干扰能力较差,单端信号传输方式使其容易受到电磁干扰和地电位差异的影响。
  • RS485:

    • 抗干扰能力强,差分信号传输可以有效抑制电磁干扰和地电位差异。

6. 布线要求

  • RS232:

    • 需要多根信号线(通常包括Tx、Rx、GND、CTS、RTS等),布线复杂。
    • 每根信号线传输单端信号,对布线环境要求较高。
  • RS485:

    • 只需要一对差分信号线(A和B),布线简单。
    • 两根信号线对称布置,对布线环境要求较低。

7. 应用场景

  • RS232:

    • 常用于短距离设备间的通信,如计算机和外设(鼠标、打印机)之间的连接。
    • 适合点对点、低速通信的应用场景。
  • RS485:

    • 广泛应用于工业自动化、楼宇控制系统和远距离数据通信等需要可靠、抗干扰和长距离传输的场景。
    • 适合多点通信、高速和长距离传输的应用场景。

总结

RS232和RS485各有优缺点,适用于不同的应用场景。RS232适合短距离、点对点的低速通信,布线复杂且抗干扰能力较弱。RS485适合长距离、多点通信,具有较高的抗干扰能力和数据传输速率,布线简单。根据具体的通信需求,可以选择合适的标准来实现可靠的数据传输。

RS485是否一定要配终端电阻?

在RS485通信系统中,终端电阻(也称为终端电阻器或终端电阻器)并不是绝对必须的,但在大多数情况下,使用终端电阻是非常推荐的。终端电阻的主要作用是匹配总线的特性阻抗,以减少信号反射和提高信号质量。以下是详细解释:

终端电阻的作用

  1. 减少信号反射

    • 在没有终端电阻的情况下,信号在总线的末端会发生反射。这种反射信号会与原始信号叠加,导致信号失真和通信错误。
    • 终端电阻可以吸收信号能量,防止信号反射,从而保证信号的完整性和通信的可靠性。
  2. 匹配总线阻抗

    • RS485总线通常具有一个特定的特性阻抗,通常为120欧姆。终端电阻的阻值应与总线的特性阻抗匹配(即120欧姆)。
    • 合适的终端电阻可以确保信号沿总线传输时遇到一致的阻抗,减少因阻抗不匹配引起的信号失真。

使用终端电阻的建议

  1. 总线两端加终端电阻

    • 通常建议在RS485总线的两个物理末端各连接一个终端电阻。这两个电阻会吸收信号能量,防止反射。
    • 每个终端电阻的阻值应为120欧姆,以匹配总线的特性阻抗。
  2. 短距离和低速应用的例外

    • 在一些短距离(通常少于几米)和低数据速率的应用中,信号反射可能不会对通信造成明显影响。在这些情况下,可以选择不使用终端电阻,但这取决于具体的系统要求和测试结果。
    • 尽管如此,即使在短距离和低速率的应用中,使用终端电阻通常也是一个良好的工程实践。
  3. 总线长度和速率的影响

    • 随着总线长度增加或数据传输速率提高,信号反射对通信的影响会变得更加显著。在这些情况下,使用终端电阻变得更加重要。
    • 对于长距离(例如超过几十米)和高数据速率(例如超过100 kbps)的应用,终端电阻几乎是必须的。

实际应用中的注意事项

  1. 正确的电阻值

    • 确保使用的终端电阻值正确,通常为120欧姆。如果总线特性阻抗有所不同,请根据具体的阻抗值选择合适的电阻。
  2. 位置的正确性

    • 终端电阻应准确放置在总线的物理末端。如果放置在错误的位置,可能无法有效防止信号反射。
  3. 可选的中间设备终端

    • 对于某些复杂的总线拓扑(如星形拓扑),中间设备的终端电阻的使用需要仔细考虑和测试。

总结

虽然RS485通信系统中不使用终端电阻并不会使系统完全无法工作,但在大多数情况下,为了保证信号完整性和通信可靠性,使用终端电阻是非常重要的工程实践。终端电阻尤其在长距离和高数据速率应用中是必不可少的。通过在总线两端正确地配置终端电阻,可以有效减少信号反射,提高数据传输的稳定性和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/25580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.大模型高效微调PEFT

大模型高效微调(PEFT)技术 预训练模型的背景 预训练与微调:传统的微调方法通常涉及对整个预训练模型的参数进行再训练,以适应特定任务。这虽然有效,但计算成本高,且需要大量的标记数据。模型结构:像BERT或GPT这样的模型通常包含数亿甚至数十亿个参数,构成一个深层次的…

Qt——升级系列(Level Four):控件概述、QWidget 核心属性、按钮类控件

目录 控件概述 QWidget 核心属性 核心属性概览 enabled geometry windowTitle windowIcon windowOpacity cursor font toolTip focusPolicy styleSheet 按钮类控件 Push Button Radio Buttion Check Box Tool Button 控件概述 Widget 是 Qt 中的核⼼概念. 英⽂原义是 "…

西门子学习笔记11 - PTO脉冲指令的使用

1、使用指令前的设置 1、打开一个脉冲发生器,并启用 2、选择使用PTO(脉冲A和方向B) 3、硬件设置输出 4、这样前期的准备工作就完成了 2、指令的使用 1、添加指令CTRL_PTO 2、配置如下 3、方向控制程序如下 4、最后进行测试即可

C语言之存储类、作用域、生命周期、链接属性

一 :概念解析 1: 存储类 (1)存储类就是存储类型,就是描述C语言变量存储在什么地方 (2)内存有多种管理方法:栈、堆数据段、bss段、.text段......一个变量的存储类属性就是描述…

html--万年历

<!DOCTYPE html> <html lang"zh_CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><meta charset"utf-8" /><title>万年历</title><link rel"styles…

C语言 | Leetcode C语言题解之第142题环形链表II

题目&#xff1a; 题解&#xff1a; struct ListNode* detectCycle(struct ListNode* head) {struct ListNode *slow head, *fast head;while (fast ! NULL) {slow slow->next;if (fast->next NULL) {return NULL;}fast fast->next->next;if (fast slow) {s…

LLVM Cpu0 新后端9 objdump readelf

想好好熟悉一下llvm开发一个新后端都要干什么&#xff0c;于是参考了老师的系列文章&#xff1a; LLVM 后端实践笔记 代码在这里&#xff08;还没来得及准备&#xff0c;先用网盘暂存一下&#xff09;&#xff1a; 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…

C-Linux: 题集

1 C语言 1 简述 全局变量 和 局部变量的区别: 存储位置:全局变量存储在静态区,局部变量存储在栈上 作用范围:全局变量对整个程序可见,局部变量仅对其定义的函数可见 生命周期:全局变量在程序执行过程中都存在,局部变量的生命周期仅在其所在函数执行期间存在 2 死锁…

EE trade:如何在A股市场中有效设定止盈止损点

A股市场充满机遇和风险&#xff0c;很多投资者在这里实现了财富增长&#xff0c;也有投资者在这里遭受损失。如何在波动性较大的市场中&#xff0c;控制风险&#xff0c;保护利润和本金?止盈止损是关键。 什么是止盈止损? 止盈止损是指在交易中&#xff0c;根据预先设定的条…

【人工智能】AIGC是什么?

AIGC是“人工智能生成内容”&#xff08;Artificial Intelligence Generated Content&#xff09;的缩写&#xff0c;它指的是利用人工智能技术自动创建文本、图像、音频、视频等不同类型的内容。AIGC技术的发展&#xff0c;使得计算机能够模拟人类的创作过程&#xff0c;生成具…

如何稳定高效地进行 TiDB 数据导入导出?

对于在数据库行业中摸爬滚打多年的老鸟 DBA 来说&#xff0c;TiDB 可是一点也不陌生&#xff0c;作为 PingCAP 公司自主研发的真开源分布式数据库&#xff0c;其先进的设计理念以及丰富的生态工具&#xff0c;可算得上是业界自主创新和性能领先的代名词。 TiDB 是谁&#xff1…

python一点通: Async异步函数很好,但是如何有效执行阻塞任务?

当使用 asyncio.create_task(function1) 和 asyncio.create_task(function2) 时&#xff0c;你正在创建两个将在同一个事件循环中并发运行的异步任务。这些任务运行是否高效取决于它们本身的性质。 理解异步任务 如果 function1 和 function2 是异步函数&#xff08;即&#…

探索PostgreSQL的多模型世界:灵活存储,无限可能

在数据库的世界里&#xff0c;有一种神器&#xff0c;它以其无与伦比的灵活性和强大的功能&#xff0c;赢得了全球开发者的青睐。它就是——PostgreSQL&#xff0c;一个真正的多模型数据库管理系统。 为什么选择PostgreSQL&#xff1f; 可靠性和稳定性&#xff1a;PostgreSQL…

Rust anyhow 简明教程

anyhow 是 Rust 中的一个库&#xff0c;旨在提供灵活的、具体的错误处理能力&#xff0c;建立在 std::error::Error 基础上。它主要用于那些需要简单错误处理的应用程序和原型开发中&#xff0c;尤其是在错误类型不需要被严格区分的场景下。 以下是 anyhow 的几个关键特性&…

MAVEN架构项目管理工具

1、什么是maven Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。 2、maven的目标&#xff1a;Maven的主要目标是为了使开发人员在最短的时间内领会项目的所有状态 3、使用maven不需要考虑各个依赖的版本&#xff0c;因…

Follow Carl To Grow|【LeetCode】530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先

【LeetCode】530.二叉搜索树的最小绝对差 题意&#xff1a;给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 思路&#xff1a;中序遍历拿到递增序列&#xff0c;然后求相邻…

【将xml文件转yolov5训练数据txt标签文件】连classes.txt都可以生成

将xml文件转yolov5训练数据txt标签文件 前言一、代码解析 二、使用方法总结 前言 找遍全网&#xff0c;我觉得写得最详细的就是这个博文⇨将xml文件转yolov5训练数据txt标签文件 虽然我还是没有跑成功。那个正则表达式我不会改QWQ&#xff0c;但是不妨碍我会训练ai。 最终成功…

UE5中在地形中加入湖、河

系统水资产添加 前提步骤123 完成 前提 使用版本 UE5.0.3,使用插件为UE内置的Water和water Extras. 步骤 1 记得重启 2 增加地形&#xff0c;把<启用编辑图层>勾选 如果地形没有勾选上编辑图层&#xff0c;那么就会导致湖、河等水景象无法融入地形。 如果忘记勾选…

Hive知识体系保姆级教程

一. Hive概览 1.1 hive的简介 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。 其本质是将SQL转换为MapReduce/Spark的任务进行运算&#xff0c;底层由HDFS来提供数据的存储&#xff0c;说白了h…

如何从 Android 图库中恢复误删除的照片

如果您正在阅读这篇文章&#xff0c;那么您肯定意外地从 Android 设备中删除了照片。并且您正在寻找一种简单的方法来恢复 Android 图库中已删除的照片。 从图库恢复已删除的照片 随着技术的进步&#xff0c;现在使用单个设备&#xff08;即 Android 手机&#xff09;&#xf…