关于 PLC 模拟输入和输出信号以及编程

您知道如何缩放模拟输入吗?或者如何连接模拟输出?

许多人在 PLC 编程中都难以理解模拟信号。接线以及如何在 PLC 程序中使用模拟输入或输出可能很棘手。您通常会看到数字示例 PLC 程序,在我的结构化文本教程中,大多数示例都是数字程序。

我写这篇文章是因为你们中的许多人都想学习如何在 PLC 编程中使用模拟信号。模拟信号在 PLC 程序中被广泛使用,但也经常用于SCADA 系统。那么如何将 4-20mA 模拟变送器连接到 PLC 并在 PLC 程序中使用它呢?如何在功能块图中缩放模拟信号?本文将为您提供这些问题的答案以及更多内容。

 

在本文中你将了解:

  • PLC 中的模拟信号
    • 用二进制数表示模拟信号
    • 位和字节
    • A/D转换器
    • 模拟信号分辨率
    • 模拟信号范围
  • 模拟输入
    • PLC 模拟输入接线
      • 电压模拟输入
      • 电流模拟输入
        • 2 线模拟输入
        • 3 线模拟输入
        • 4 线模拟输入
    • 模拟输入缩放
  • 模拟输出
    • PLC 模拟输出接线
      • 电压模拟输出
      • 电流模拟输出
    • 模拟输出缩放/取消缩放

但首先,让我先介绍一些有关模拟信号以及它们在 PLC 中的工作原理的基础知识。

PLC 中的模拟信号

首先,我们要看一些数字。如果你读过我关于组合逻辑的文章,你就会知道 PLC 可以使用布尔值。PLC 只能使用值 0 和 1。

这对于数字信号来说非常好。它们要么是 0,要么是 1,因此相对容易处理。但是模拟信号呢?正如维基百科所写,模拟信号是可以随时间变化的连续信号。

生态学

  1. 正在播放
    1. 用 CODESYS 中的结构化文本进行模拟输入缩放 | PLC 编程 | PLC 学院

例如,您可以得到一个 0-10 伏的模拟信号。该信号可以在 0 到 10 伏之间变化,并且具有介于两者之间的任何电压电平。由于模拟信号是连续的,因此该信号在任何时候都会始终表示一个电压电平。如果您查看下图,您将看到模拟信号可以具有 0 到 10 伏之间的任何值。

0-10 伏模拟信号

0-10 伏模拟信号

现在的问题是:PLC 如何处理所有这些不同的值?假设有一个 5 伏的模拟信号进入 PLC。我们不能用布尔值来表示它,因为它们只能有值 0 和 1。

答案是二进制数

用二进制数表示模拟信号

如前所述,PLC 只能处理 0 和 1 这两个值。但这确实阻止了我们处理模拟信号。因为实际情况是,PLC 处理二进制数。这是因为 PLC 或微控制器实际上只是由晶体管制成的高级电路。由于晶体管只能打开或关闭,因此这两个状态将代表值 0 和 1。

但这只给了我们两种状态。对于数字信号非常有用,但对于模拟信号则不然。要了解模拟输入在 PLC 中的工作原理,您必须了解二进制数。

二进制数是 PLC 或任何其他计算机使用的编号系统。该系统只有两个数字,而我们的十进制编号系统有 10 个数字,从 0 到 9。二进制只是另一种写数字的方式。如果您不知道二进制数的工作原理,我建议您查看本教程。

生态学

位和字节

一位二进制数称为一位。一位可以容纳 0 或 1。如上所述,这就是数字输入的工作原理。但是,如果您将这些位组合起来,从而创建多位数字,事情就会变得有趣起来。

在许多 PLC 中,模拟信号由一个字表示。二进制中的一个字是一行中的 8 个零或两个字节(4 个零)。就像这样:

00000000 00000000

如果您对二进制数有一点了解,您就会知道,一个 16 位二进制数可以表示从 0 到 65.535 的值。但对于 PLC 来说,这只是事实的一半。因为第一位用于对数字进行签名,从而赋予其正值或负值。

因此,如果用 1 位来签名,则剩下 15 位来表示模拟值。因此,二进制数可以表示从 -32.768 到 32.767 的值。

A/D转换器

想象一下,模拟信号就像一条流入 PLC 的河流。A /D 转换器就像一座水坝,将这种连续流动的信号转换为可管理的片段——数字信号。这些数字位是 PLC 用来理解和有效处理传入信息的工具。

在了解 A/D 转换器之前,了解您正在处理的模拟信号类型非常重要。在本文中,我将重点介绍 PLC 编程中的这三种类型的模拟信号:

生态学

  • 电压
  • 当前的
  • 反抗

我们需要了解信号的类型是因为我们需要知道信号的范围。

一种非常常用的模拟信号类型是4-20mA

4-20 mA 模拟信号

4-20 mA 模拟信号

我们必须知道信号的类型。因为在这个例子中,我们现在知道模拟信号的范围是 16mA。模拟值通常放在 PLC 中的 16 位双字中。这是因为 A/D 转换器将模拟信号转换为 16 位长的数字值。

您可以购买具有不同分辨率的模拟输入卡。这取决于 A/D 转换器需要处理的位数。位数越多,我们就能用更多数字来表示模拟信号。

模拟信号分辨率

您必须保存模拟值的位数实际上称为分辨率。 可以把它想象成您的电视。 它也只有一定数量的像素来表示图像。 模拟到数字的转换也是如此。

就像我们在谈论电视上的像素数量时称之为分辨率一样,我们在谈论用数字表示的模拟值时也称之为分辨率。

在 PLC 编程中处理模拟信号时,分辨率非常重要。当输入模拟输入卡时,模拟信号将被分割成 0 到 32.767 之间的值。将模拟值除以 32.767 可得到一定的分辨率。

每当我们的值增加 1,就意味着模拟信号增加了 x mA。

我们还不能计算 mA。因为大多数 PLC 在谈论模拟信号时都有所谓的超范围和欠范围。让我们仔细看看 PLC 编程中模拟信号的范围。

模拟信号范围

现在事情开始变得特定于供应商。在本文中,我将以西门子为例。但别担心。这一原则适用于大多数 PLC 供应商。

模拟信号往往非常敏感。虽然我们的目的是将信号范围设定为 4-20mA,但信号有时会出现峰值或下降。当这种情况发生时,我们希望能够在 PLC 中看到。虽然情况并非总是如此,但这些峰值和下降可能意味着出现了问题。为了能够在 PLC 程序中检测到这些情况,我们需要所谓的超范围和欠范围。

西门子 PLC 的模拟信号范围

西门子 PLC 的模拟信号范围

我们的正常范围或额定范围是 4-20mA。但在此范围之上和之下,西门子在范围中增加了一些额外的 mA。他们将超范围分为以下两类:

  • 过冲范围(过量程)
  • 溢出

以下两项的下限为:

  • 低于范围(低于范围)
  • 下溢

这意味着我们现在拥有1.185 – 22.96 mA范围,而不是 4-20 mA 范围。这同样适用于其他类型的模拟信号。例如,0-10V 范围是0 – 11.852 V范围。

总而言之,这意味着我们的模拟信号范围可以这样表示:

PLC 值 测量范围
十二月 十六进制 0-10 伏 4-20 毫安
32767 7FFF 11.852 伏 22.96 毫安 溢出
32512 7F00
32511 7EFF 11.759 伏 22.81 毫安 超调范围
27649 6C01
27648 6C00 10 伏 20 毫安 额定范围
20736 5100 7.5 伏 16 毫安
1 0001 361.7 μV 4 毫安 + 578.7 纳安
0 0000 0 伏 4 毫安
-1 FFFF 无负值 未达范围
-4864 ED00 1.185 毫安
-4865 体外循环纤维 下溢
-32769 8000

考虑到上溢和下溢,我们现在可以开始计算模拟信号的实际分辨率。但不要只使用 22.96-1.185 mA 或 11.852 V 范围,你应该注意这里的一个数字:

27.648

如上表所示,这就是我们的额定范围的结束点。因此,我们对 0-10 V 信号的分辨率应按如下方式计算:

生态学

10V/27658= 361.7μV

或者对于我们的 4-20 mA 信号:

16 毫安/27648 = 578.7 纳安

这两个数字是我们能在 PLC 中用数字值表示的最小值。在大多数情况下,这些步骤很小且足够精确。还要记住,你想要的分辨率越高,PLC 模拟输入和输出模块就越昂贵。

生态学

模拟输入

记住一些理论后,我们通过查看 PLC 中的模拟输入来深入研究它。

模拟输入可以来自各种传感器和变送器,或者两者兼有。例如,将一种热电偶连接到变送器,然后将其连接到 PLC 模拟输入。您可以测量一大堆不同的东西。传感器或变送器的工作是将其转换为电信号。以下是您可以使用模拟传感器测量的一些东西:

  • 等级
  • 流动
  • 距离
  • 粘度
  • 温度

当然,您还可以测量许多其他东西。这里的重点是我们(传感器或变送器)将这些物理值转换为模拟信号。我们可以将该信号用作 PLC 中的模拟输入。

这里举个例子,温度变送器输出为 4-20 mA。变送器上连接有温度传感器。然后,将变送器校准到例如 0-100 度的范围。这意味着,当温度为 0 度时,变送器的输出为 4 mA,当温度为 100 度时,变送器的输出为 20 mA。

通常需要变送器,因为传感器本身无法为我们提供模拟信号。或者至少无法提供适合 PLC 模拟输入的模拟信号。可以购买模拟输入模块,例如,可以直接连接温度传感器。但大多数情况下,您会有一个电压或电流输入模块,用于连接变送器。

“传感器

说到变送器,校准非常重要。你必须知道这些毫安或伏特在物理值中代表多少。

模拟输入接线

在接线模拟输入时,首先了解信号并查阅手册至关重要。每种信号类型都有自己特定的接线方法。把它想象成设置一个新设备;你需要了解它的功能并仔细遵循设置指南。

在本教程中,我将介绍两个最基本的模拟输入信号的接线:

 

  • 电压
  • 当前的

我将模拟输入信号分为这两类的原因不仅是因为它们是最常用的信号。还因为它们的接线方式不同。由于这两种模拟信号的工作方式非常不同,您还必须在模拟输入模块上以不同的方式接线。接线错误可能会损坏输入模块,所以要小心!

两种类型的模拟信号都有一个共同点。

反抗。

电阻可以分压或限制电流。事实上,电阻甚至可以用来测量电流。但稍后会详细介绍。让我们先看看第一种模拟信号——电压。

电压模拟输入接线

使用电压来传输模拟信号非常普遍。它们也相当容易接线,因为通常只需要两根电线。但这并不意味着您在接线这种类型的模拟信号时不应该小心。如果接线不正确,您可能会得到错误的模拟信号,甚至更糟的是,模拟输入模块损坏。

因此,基本上所有模拟电压输入都有两个端子:

  • AGND模拟输入的接地或参考
  • AIN模拟输入

电压总是在两点之间测量。您不能取一个点然后说:在这一点上我可以测量 10 伏。为此,您需要一个参考点。就像电池一样。9 伏电池的正极和负极之间只有 9 伏。

这就是我们使用 AGND 或模拟接地的原因。PLC 就是在 AGND 和 AIN 之间测量模拟输入的电压。这也让我们知道了 AIN 是什么。

 

连接模拟电压源时,AIN 是连接其正极 (+) 侧的地方。负极 (-) 应连接到 AGND。这是模拟信号的两条主线。

但如果你只连接这两个,你最终会得到一个非常脆弱的信号。电磁兼容性 (EMC)可以轻易改变你的模拟信号。

如下所示,通过屏蔽电线并将屏蔽层接地可解决这个问题。但请注意,这与 AGND 不是同一个接地!

电压模拟输入的配线

电压模拟输入的配线

问题是并非所有接地都相同。当 AGND 用作模拟信号(0 伏)的参考时,屏蔽应连接到大地。因为噪声实际上只是由于磁场在电线中感应电流。通过使用屏蔽,电流将在屏蔽中感应,而不是在模拟信号的电线中感应。需要将该电流引走,这就是我们将屏蔽连接到大地的原因。

电线电压降

由于我们在这里处理的是电压,所以接线本身可能会引起问题。所有电线(导体)都有电阻,因此会产生电压降。这可能意味着模拟输入端的电压与变送器端的电压不同。当然,只有当接线距离较长或电线太细时,这才会产生重大影响。

 

电流模拟输入接线

除了电压,您还可以使用电流作为模拟信号。它们可能接线起来有点棘手,但总体而言它们更稳定。尤其是其中一个具有非常智能的功能,使其成为最常用的模拟信号类型。

模拟信号中的电流通常以毫安 (mA)为单位进行测量。这里的典型范围是 0 到 20 mA。小于这个值将很难测量,而大于这个值很快就会变得危险。让我们看看在模拟信号中使用电流的真正含义。

首先,您需要一个闭合回路来让电流流动。

尽管第一种电流变送器的接线与电压变送器的接线相同,但这里还是有些不同。电流是电子从一极流向另一极的流动。这就是为什么你总是需要一个闭环来测量电流。

分流电阻

事实上,PLC 甚至无法测量电流。因此,在模拟输入模块内部,在正极 (AI) 和负极 (AGND) 之间放置一个电阻。这不仅会构成闭环,还会将电流信号转换为电压信号。

模拟输入中的分流电阻将电流转换为电压

模拟输入中的分流电阻将电流转换为电压

该电阻器称为分流电阻器,具有特定的电阻。例如,在某些西门子模拟输入模块中,该电阻为 250 欧姆。并且由于欧姆定律,现在可以通过简单的计算将模拟电流信号转换为电压信号。

电压(V)=电阻(R)x电流(I)

由于我们已知电阻为 250 欧姆,因此也可以计算出我们测量的电压对应多少毫安。

了解了这些背景知识后,我们来看看电流模拟输入的接线。它们通常可分为三种类型:

  • 2 线模拟输入
  • 3 线模拟输入
  • 4线模拟输入

当谈到 2、3 和 4 线时,我们在这里谈论的实际上是发射器或换能器。电流发射器可以以不同的方式接线,因此电线数量也不同。区别在于信号的电源。有时发射器会为电路供电,有时您必须使用外部电源。

2 线模拟输入

连接 2 线变送器的第一个也是最简单的方法是将其连接到回路供电。基本上,这意味着 PLC 将提供电流回路。这里只需要 2 根线。为了让 PLC 提供电流,我们需要使用模拟输入模块上的另一个端子:

  • A+模拟输入电源

一根电线从 A+ 穿过发射器,再通过另一根电线回到 AIN。电源来自 A+,发射器控制电流,模拟电流信号进入 AIN。

回路供电两线电流模拟输入接线

回路供电两线电流模拟输入接线

您还可以为 2 线变送器使用外部电源。将电源的 0 V 连接到 AGND,并通过变送器将 24 V 连接到 AIN。虽然实际上您需要 3 根电线,但它仍被视为 2 线模拟输入连接。因为变送器只有两根电线。

带外部电源的两线模拟输入

带外部电源的两线模拟输入

2 线电流环路的一个缺点是,只有一个环路用于供电和信号。这实际上意味着变送器必须消耗少于 4 mA 的电流才能工作。一些传感器和变送器消耗的电流超过这个数字,这就引出了 3 线和 4 线环路。

3 线模拟输入

在 3 线电流环路中,电源和信号之间仅共用接地。接地连接到 AGND 和电源 (-)。但发射器有 2 根正极 (+) 线。一根连接到电源 (+),一根连接到 AIN。

具有独立信号和电源环路的 3 线模拟输入

具有独立信号和电源环路的 3 线模拟输入

尽管它们共用地线,但 3 线变送器会创建 2 个环路。一个用于信号,一个用于电源。现在,传感器或变送器可以消耗所需的电流,而不会干扰我们的模拟信号。

4 线模拟输入

4 线变送器也得到广泛使用,因为它将电源与信号分开。通过为变送器提供 4 根线,您可以有 2 根用于电源,2 根用于信号。当然,4 线变送器需要外部电源。

将 4 线变送器连接至模拟输入

将 4 线变送器连接至模拟输入

显然,使用 4 线变送器的最大优势是电源和信号完全分离。它们可以完全隔离或光隔离,因此电源干扰不会影响信号。

阅读手册

这里最重要的是,您知道您拥有哪种变送器或传感器。阅读手册并决定如何连接它。别忘了也阅读模拟输入模块的手册。不同的供应商给模块上的端子起不同的名称。有时他们甚至为接地和噪声保护制定不同的指导方针。

总之,成功接线的黄金法则很简单:认真遵循制造商的说明。这可确保您的 PLC 设置顺利运行,避免任何接线事故。

模拟输入缩放

当模拟输入信号进入 PLC 时,您通常需要在 PLC 程序中对其进行缩放。缩放意味着您将模拟输入的原始值转换为某种工程值。工程值是一个表示物理值的数字,例如流量(m3/s)、重量(kg)或温度(度)。

转换或缩放只需一些数学运算即可完成。一些 IDE(如西门子 Step 7 或 Tia Portal)甚至有专门用于缩放的功能块。在这里,我将向您展示缩放模拟输入的两种方法。

用数学来扩展

之前我解释了模拟信号如何在 PLC 中变成原始值。但这个数字实际上只代表西门子平台上 0 到 27648 之间的数字。模拟信号代表的是物理测量值,如 0 到 300 度。在我们的 PLC 程序中使用工程值或在 HMI 上显示测量值非常方便。

我们必须以某种方式将范围 0-27648 转换为 0-300。

从数学上我们可以用这种关系来描述它:

原始值 / 27648 = 工程值 / 300

通过分离工程值,我们现在得到了一个可以直接在 PLC 程序中使用的方程。此方程可用于将模拟输入缩放为工程值:

工程价值 = (原始价值 / 27648) * 300

当然,这里最简单的选择是使用结构化文本。这样,我们只需一行代码就可以缩放模拟输入。以下是在 CODESYS 中执行此操作的方法:

但即使您仅使用数学就可以进行缩放,有时也会使用功能块来进行缩放。

使用 SCALE 功能块进行缩放

例如,西门子有专门用于缩放的内置功能块。该块简称为 SCALE,有 5 个输入和 3 个输出。但我只关注其中的 3 个输入和 1 个输出。

HI_LIM 和 LOW_LIM 是工程值的限制。例如,如果您想将模拟信号缩放到 0-300 度,则 LOW_LIM 应为 0,HI_LIM 应为 300。模拟输入的原始值位于名为 IN 的输入端。

最后,缩放的结果将被发送到块的输出(OUT)。

这里进行的所有计算与前面显示的相同。有些人更喜欢其中一种方法。

模拟输出

模拟输出与模拟输入有很多相似之处。但在接线方式以及在 PLC 程序中使用它们的方式方面仍然存在一些差异。与模拟输入一样,模拟输出可分为两种类型:

  • 电压
  • 当前的

原理都是一样的,都是用电压或者电流作为模拟信号。

让我们通过查看模拟输出的接线来深入研究它。

模拟输出接线

无论您使用哪种类型的模拟输出,有一件事您始终要牢记。负载。因为本质上您会将负载连接到输出。这可能是流量控制阀、变频器,甚至是另一个 PLC 上的模拟输入。

连接到模拟输出的设备决定了您应该使用哪种类型的模拟信号。如果您想用 4-20 mA 信号控制阀门,那么您的模拟输出也应该是 4-20 mA。

电压模拟输出接线

同样,电压模拟输出是最容易接线的。为此,您只需要 2 根电线。电压源的正极和负极。在本例中是我们的模拟电压输出。以下是简单的 2 线模拟电压输出的接线方式:

2 线模拟电压输出

2 线模拟电压输出

但有时 2 根电线是不够的。即使对于电压输出也是如此。一些西门子模块在其模拟输出端有两个额外的端子。它们用于补偿所谓的线路阻抗或线路电阻。无需过多赘述,阻抗是电路对电流或电压变化的抵抗力。同样,我们在这里处理的是电压,因此任何电阻都会产生电压降。

如果您有模拟电压信号,则电阻会更大。这两根额外的电线用于补偿,以便模拟输出的电压水平与目的地的电压水平相同。

带线路阻抗补偿的西门子模拟电压输出

带线路阻抗补偿的西门子模拟电压输出

说到电阻,在处理模拟电压输出时,您还必须注意另一件事:负载阻抗。为避免模拟输出短路,连接到输出的负载必须具有最小负载阻抗。这通常在 500 到 1k 欧姆之间。您应该始终查阅模拟输出模块和连接到它的负载的手册。

电流模拟输出接线

PLC 上的大多数模拟输出的工作原理与 3 线变送器非常相似。这可能看起来很奇怪,因为到目前为止我们只有 2 根电线。但 PLC 通常会提供内部电源,从而为我们提供第三根电线。信号的供应。

这意味着,当您使用电流输出时,大多数情况下您只需要连接信号电流环路。当然,您最终还必须连接电源环路。但这通常需要为模块本身供电,以便 PLC 能够看到它。

三线模拟输出模块

三线模拟输出模块

电流和电压输出之间的一个主要区别是负载阻抗。因为电压输出需要最小负载阻抗,而电流输出实际上具有最大负载阻抗。请记住,我们在这里讨论的是电流的流动,阻抗(电阻)限制了电流。如果负载阻抗太大,环路将无法驱动所需的电流。

典型的 PLC 模拟电流输出的最大负载阻抗为 300-500 欧姆。

模拟输出缩放/取消缩放

如果您知道如何缩放模拟值,那么您也知道如何取消缩放。因为这是您经常要做的事情。取消缩放的意思是将工程值转换为模块可以转换为输出的值。

假设我们有一个 0-10 V 模拟输出信号来控制电机的速度。为了使电机以 50% 的速度运行,我们必须在输出端生成 5 V 模拟信号。为此,我们需要知道要将哪个值发送到 D/A 转换器。换句话说,我们需要知道我们的范围。

如果我们以西门子 PLC 为例,正如我在本文开头所举的例子,它们的范围是0-27648

因为我们现在知道了范围,所以我们可以计算出其中的 50%:13824

这里的问题是操作员没有在 HMI 上输入 13824 作为设定点。他通常会设置的是工程值,在本例中是百分比 (%)。这就是为什么我们现在有一个工程值,我们必须将其转换为模拟输出范围内的值。

本站回收PLC

您可以通过两种不同的方式进行缩放。使用数学或使用功能块。使用数学是一种很容易理解背后的原因的好方法。只需使用与缩放相同的关系即可:

原始值 / 27648 = 工程值 / 100

通过隔离原始值,您现在有一个将工程值转换为原始值的数学表达式。您只需一行代码即可在结构化文本中实现这一点:

原始值 := (工程值 / 100) * 27648;

当然,也可以使用功能块进行非标定。一些供应商提供用于非标定的特定功能块。以西门子为例。他们有一个名为 UNSCALE 的块。它的工作方式与 SCALE 块相反。通过将一定范围内的值非标定为 0-27648 之间的值。HI_LIM 和 LOW_LIM 现在是您的工程值的极限。