简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย

分享

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

PLC1.png
您知道如何缩放模拟输入吗?或者连接您的模拟输出?
许多人在PLC编程中为模拟信号而苦苦挣扎。在PLC程序中使用模拟输入或输出的接线和方法可能很棘手。大多数情况下,您会看到数字示例PLC教程,在我的结构化文本教程中,大多数示例都是数字程序。
我写这篇文章是因为你们中的许多人都想学习如何在PLC编程中使用模拟信号。模拟信号广泛用于PLC程序,但也经常用于SCADA系统。那么,如何将4-20mA模拟变送器连接到PLC并在PLC程序中使用它呢?如何在功能图块中扩展模拟信号?本文将为您提供答案以及更多内容。
但首先,让我从一些关于模拟信号的基础知识开始,以及它们在PLC中的工作原理。
PLC中的模拟信号
首先,我们要看一些数字。如果你读过我关于组合逻辑的文章,你就会知道PLC使用布尔值。PLC 只能使用值 0 和 1。
这对于数字信号非常有用。它们要么是 0 要么是 1,因此相对容易使用。但是模拟信号呢?正如百度百科所写,模拟信号是连续信号,可以随时间变化。

例如,您可以有一个 0-10 伏的模拟信号。该信号可以在 0 到 10 伏之间变化,并且介于两者之间具有任何电压电平。由于模拟信号是连续的,因此该信号将始终在任何时候代表电压电平。如果您查看下图,您会发现模拟信号可以具有 0 到 10 伏之间的任何值。
PLC2.png
现在的问题是:PLC如何处理所有这些不同的值?假设您有一个 5 伏的模拟信号进入 PLC。我们不能用布尔值来表示它,因为它们只能有值 0 和 1。
答案是二进制数!
用二进制数表示模拟信号
如前所述,PLC 只能使用两个值 0 和 1。但这确实阻止了我们处理模拟信号。因为真正发生的事情是,PLC使用二进制数。这是因为PLC或微控制器实际上只是由晶体管制成的高级电路。由于晶体管只能打开或关闭,因此这两种状态将表示值 0 和 1。
但这只能给我们两种状态。对数字信号非常有用,但对模拟信号不适用。要了解模拟输入在PLC中的工作原理,您必须了解二进制数。
二进制数是 PLC 或任何其他计算机使用的编号系统。该系统只有两个数字,而我们的 10 基数编号系统有 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。
PLC3.png
我们的正常量程或额定量程为4-20mA。但在此之上和之下,西门子在该系列中增加了一些额外的mA。他们将超范围分为以下两类:
过冲范围(overrange)
溢出
而这两个的下限范围:
下冲范围(下调范围)
下溢
这意味着,我们现在的范围不是4-20 mA,而是1.185-22.96 mA。这同样适用于其他类型的模拟信号。例如,0-10V 范围为 0 – 11.852 V 范围。
总而言之,这意味着我们的模拟信号范围可以这样说明:
PLC值
测量范围
12 月        十六进制        0-10 伏        4-20毫安        
32767        7FFF的        11.852 伏        22.96毫安        溢出
32512        7楼00               
32511        7EFF        11.759 伏        22.81毫安        过冲范围
27649        6C01型               
27648        6C00系列        10 伏        20毫安        额定范围
20736        5100        7.5 伏        16毫安
1        0001        361.7微伏        4毫安 + 578.7 纳安
0        0000        0 伏        4 毫安
-1        FFFF的        无负值                下冲范围
-4864        ED00型        1.185毫安
-4865        ECFF的                下溢
-32769        8000        
考虑到过溢和下溢,我们现在可以开始计算模拟信号的实际分辨率。但是,除了使用22.96-1.185 mA或11.852 V范围之外,您还应该注意一个数字:
27.648
如上表所示,这是我们的额定范围结束的地方。因此,我们对0-10 V信号的分辨率应按以下方式计算:
10 V / 27658 = 361.7 μV
或者对于我们的 4-20 mA 信号:
16 毫安 / 27648 = 578.7 纳安
这两个数字是我们可以用数字值在PLC中表示的最小值。在大多数情况下,这些步骤足够小且精确。还要记住,您想要的分辨率越高,PLC模拟输入和输出模块就越昂贵。
模拟输入
有了一点理论知识,让我们通过查看PLC中的模拟输入来深入研究它。
模拟输入可以来自各种传感器和/或变送器。例如,一种热点藕连接到变送器,然后将其连接到PLC模拟输入。你可以测量一大堆不同的东西。传感器或变送器的工作是将其转换为电信号。以下是您可以使用模拟传感器测量的一些内容:
水平
距离
粘性
温度
PLC4.png
当然,还有很多其他的东西可以衡量。这里的要点是,我们(传感器或变送器)将这些物理值转换为模拟信号。我们可以在PLC中用作模拟输入的信号。
例如,具有 4-20 mA 输出的温度变送器。连接到变送器的是温度传感器。然后将变送器校准到 0-100 度等范围。这意味着当温度为 0 度时,变送器的输出将为 4 mA,20 mA 乘以 100 度。
通常需要发射器,因为传感器本身无法为我们提供模拟信号。或者至少不适合 PLC 模拟输入。例如,可以购买模拟输入模块,例如直接连接温度传感器。但大多数情况下,您将有一个电压或电流输入模块,您可以在其中连接变送器。
PLC5.png
在谈论变送器时,校准非常重要。您必须知道这些 mA 或伏特在物理值中代表多少。
模拟输入接线
在为模拟输入接线时,首先了解您的信号并查阅手册至关重要。每种信号类型都有其特定的接线方法。把它想象成设置一个新小工具;您需要了解其功能并仔细遵循设置指南。
在本教程中,我将介绍两个最基本的模拟输入信号的接线:
电压
当前
我之所以将模拟输入信号分为这两类,不仅是因为它们是最常用的信号。这也是因为它们的接线不同。由于这两种类型的模拟信号的工作方式非常不同,因此您还必须在模拟输入模块上以不同的方式连接它们。接线错误可能会损坏输入模块,因此请小心!
这两种类型的模拟信号都有一个共同点。
电阻。
电阻是分压或限制电流的因素。事实上,电阻器甚至用于测量电流。但稍后会详细介绍。让我们先来看看第一种模拟信号——电压。
电压模拟输入接线
对模拟信号使用电压是很常见的。它们也很容易接线,因为您通常只需要两根电线。但这并不意味着您在连接此类模拟信号时不应该小心。如果接线不正确,您可能会得到一个有故障的模拟信号,甚至更糟糕的是,一个损坏的模拟输入模块。
因此,基本上所有模拟电压输入都有两个端子:
AGND:模拟输入的接地或基准电压
AIN:模拟输入
电压始终在两点之间测量。你不能拿一个点然后说:在这一点上我可以测量 10 伏特。为此,您需要一个参考点。就像电池一样。9 伏电池的正负极之间只有 9 伏。
这就是我们使用AGND或模拟接地的目的。在 AGND 和 AIN 之间,PLC 测量模拟输入上的伏特。这也为我们提供了AIN是什么的答案。
连接模拟电压源时,AIN 是连接其正极 (+) 侧的位置。负极 (-) 应连接到 AGND。这是模拟信号的两条主线。
但是,如果您只将这两者连接起来,您最终会得到一个非常脆弱的信号。电磁兼容性(EMC) 可以轻松改变您的模拟信号。
如下图所示,这是通过屏蔽电线并将屏蔽层接地来解决的。但请注意,这与 AGND 不同!
PLC6.png
问题是并非所有理由都是一样的。当 AGND 用作模拟信号(0 伏)的参考时,屏蔽层应接地。因为噪声实际上只是由于磁场而在导线中感应出电流。通过使用屏蔽层,电流将在屏蔽层中感应出来,而不是在模拟信号的导线中感应出来。这种电流需要被带走,这就是我们将屏蔽层接地的原因。
电线中的电压降
由于我们在这里处理的是电压,因此接线本身可能会导致问题。所有电线(导体)都有电阻,因此会产生电压降。这可能意味着模拟输入端的电压与变送器上的电压不同。当然,只有当您的接线距离较长或电线太小时,这才会产生重大后果。
电流模拟输入接线
除了电压,您还可以使用电流作为模拟信号。它们的接线可能有点棘手,但总的来说它们更稳定。特别是其中之一具有非常智能的功能,使其成为最常用的模拟信号类型。
模拟信号中的电流通常以毫安 (mA) 为单位测量。这里的典型范围在 0 到 20 mA 之间。低于这个数字将很难衡量,超过这个数字很快就会变得危险。让我们来看看在模拟信号中使用电流的真正含义。
首先,您需要一个闭环来使电流流动。
尽管第一种电流变送器的接线与电压相同,但这里发生了一些不同的事情。电流是电子从一个极点流向另一个极点的流动。这就是为什么您始终需要一个闭环来测量电流的原因。
分流电阻
事实上,PLC甚至无法测量电流。因此,在模拟输入模块内部,在正极(AI)和负极(AGND)之间放置一个电阻器。这不仅构成闭环,还将我们的电流信号转换为电压信号。
PLC7.png
该电阻器称为分流电阻器,具有特定的电阻。例如,在某些西门子模拟输入模块中,它是 250 欧姆。由于欧姆定律,模拟电流信号现在可以通过简单的计算转换为电压信号。
电压 (V) = 电阻 (R) x 电流 (I)
由于我们有一个众所周知的 250 欧姆电阻,因此也可以计算出我们测得的电压对应于多少毫安。
考虑到这一背景,让我们看一下当前模拟输入的接线。它们通常可以分为三种类型:
2 线模拟输出
3线模拟输入
4线模拟输入
当谈论 2、3 和 4 线时,我们在这里谈论的实际上是变送器或传感器。电流变送器可以以不同的方式接线,因此可以使用不同数量的电线。区别实际上在于信号的电源。有时变送器会为电路供电,有时您必须使用外部电源。
2 线模拟输入
连接 2 线制变送器的第一种也是最简单的方法是将其连接为环路供电。基本上,这意味着PLC将提供电流环路。这里只需要 2 根电线。为了让 PLC 提供电流,我们需要在模拟输入模块上使用另一个端子:
A+:模拟输入电源
一根电线从 A+ 穿过变送器,然后通过另一根电线返回 AIN。电源来自 A+,变送器控制电流,模拟电流信号进入 AIN。
PLC8.png
您也可以为 2 线制变送器使用外部电源。将电源的 0 V 连接到 AGND,将 24 V 通过变送器连接回 AIN。尽管您实际上需要 3 线,但它仍然被认为是 2 线模拟输入连接。因为发射器只有两根电线。
PLC9.png
2 线电流环路的一个缺点是电源和信号只有一个环路。这实际上意味着变送器必须消耗小于 4 mA 的电流才能工作。一些传感器和变送器的消耗量远不止于此,这就把我们带到了 3 线和 4 线环路。
3 线模拟输入
在 3 线电流环路中,电源和信号之间仅共享接地。接地连接到 AGND 和电源 (-)。但是发射器有 2 根正极 (+) 线。一个接入电源 (+),另一个接入 AIN。
PLC10.png
尽管它们共享接地,但 3 线制变送器会产生 2 个环路。一个用于信号,一个用于电源。现在,传感器或变送器可以消耗尽可能多的电流,而不会干扰模拟信号。
4 线模拟输入
4 线制变送器也被广泛使用,因为它将电源与信号分开。通过为发射器提供 4 根电线,您可以有 2 根用于电源,2 根用于信号。当然,4 线制变送器需要外部电源。
PLC11.png
显然,使用 4 线制变送器的最大优点是电源和信号完全分离。它们可以完全隔离或光隔离,因此电源中的干扰不会影响信号。
阅读手册
这里最重要的是您知道您拥有的发射器或传感器。阅读手册并决定如何连接它。不要忘记阅读模拟输入模块的手册。不同的供应商为模块上的终端赋予不同的名称。有时他们甚至会为接地和噪音保护制定不同的指导方针。
总之,成功接线的黄金法则很简单:严格遵循制造商的说明。这可确保您的 PLC 设置平稳运行,避免任何接线事故。
模拟输入调节
当模拟输入信号进入 PLC 时,您通常需要在 PLC 程序中对其进行缩放。缩放意味着将模拟输入的原始值转换为某种工程值。工程值是表示物理值的数字,例如流量 (m3/s)、重量 (kg) 或温度(度)。
转换或缩放只需一些数学运算即可完成。一些 IDE(如 Siemens Step 7 或 Tia Portal)甚至有一个专门用于进行缩放的功能块。在这里,我将向您展示缩放模拟输入的两种方法。
使用数学进行扩展
之前,我解释了模拟信号如何在PLC中成为原始值。但这个数字实际上只代表一个介于 0 到 27648 之间的数字,例如在西门子平台上。模拟信号所代表的是 0 到 300 度等物理测量值。在我们的PLC程序中使用工程值或在HMI上显示测量值非常方便。
不知何故,我们必须将范围 0-27648 转换为 0-300。
从数学上讲,我们可以用这种关系来描述它:
原始值 / 27648 = 工程值 / 300
通过分离工程值,我们现在得到了一个可以直接用于 PLC 程序的方程式。该公式可用于将模拟输入缩放到工程值:
工程价值 = (原始值 / 27648) * 300
当然,这里最简单的选择是使用结构化文本。这样,我们只需一行代码即可扩展模拟输入。这是如何在 CODESYS:1
但是,即使您只能使用数学来进行缩放,有时也会为您提供用于进行缩放的功能块。
使用 SCALE 功能块进行缩放
例如,西门子具有专门用于扩展的内置功能块。该模块简称为 SCALE,具有 5 个输入和 3 个输出。但我只关注其中的 3 个输入和 1 个输出。
HI_LIM和LOW_LIM是工程价值的极限。例如,如果要将模拟信号缩放到 0-300 度,则LOW_LIM应为 0 且HI_LIM 300。在称为IN的输入端,是模拟输入的原始值的去向。
最后,缩放的结果将被发送到块的输出(OUT)。2
这里发生的一切都与前面显示的数学相同。有些人更喜欢一种方法而不是另一种方法。
模拟输出
模拟输出与模拟输入有很多相似之处。但是,在接线方式和在 PLC 程序中使用它们的方式仍然存在一些差异。就像模拟输入一样,模拟输出可以分为两种类型:
电压
当前
原则是一样的。我们要么使用电压或电流作为模拟信号。
让我们通过查看模拟输出的接线来深入研究它。
模拟输出接线
无论您使用哪种类型的模拟输出,您都必须牢记一件事。负载。因为从本质上讲,您将负载连接到输出。这可以是流量控制器阀、变频器,甚至是另一个 PLC 上的模拟输入。
您连接到模拟输出的设备决定了您应该使用哪种类型的模拟信号。如果要控制具有 4-20 mA 信号的阀门,则模拟输出也应为 4-20 mA。
电压模拟输出接线
同样,电压模拟输出是最容易接线的。为此,您只需要 2 根电线。电压源的正极和负极。在这种情况下,这是我们的模拟电压输出。以下是简单的 2 线模拟电压输出的接线方式:
PLC12.png
但有时 2 根电线是不够的。甚至对于电压输出。一些西门子模块的模拟输出端有两个额外的端子。这些用于补偿称为线路阻抗或线路电阻的东西。在不赘述太多细节的情况下,阻抗是电路对电流或电压变化的反对。同样,我们在这里处理的是电压,因此任何电阻都会产生电压降。
如果您有一个改变的模拟电压信号,电阻会更大。这两根额外的电线用于补偿,使模拟输出端的电压电平与目的地的电压电平相同。
PLC13.png
说到电阻,在处理模拟电压输出时,您还必须注意另一件事:负载阻抗。为避免模拟输出短路,连接到输出的负载必须具有最小的负载阻抗。这通常在 500 到 1k 欧姆之间。您应该始终查阅模拟输出模块和连接到它的负载的手册。
电流模拟输出接线
PLC 上的大多数模拟输出的工作方式与 3 线制变送器非常相似。这可能看起来很奇怪,因为到目前为止我们只有 2 根电线。但是PLC通常提供内部电源,为我们提供第三根线。信号的电源。
这意味着,当您使用电流输出时,大多数时候只需连接信号电流环路。当然,您最终还必须连接电源回路。但是,通常需要为模块本身供电,以便PLC可以看到它。
PLC14.png
电流和电压输出之间的一大区别是负载阻抗。因为电压输出需要最小的负载阻抗,而电流输出实际上具有最大的负载阻抗。请记住,我们在这里谈论的是电流,阻抗(电阻)限制了电流。如果负载阻抗太大,环路将根本无法驱动所需的电流。
典型的 PLC 模拟电流输出的最大负载阻抗为 300-500 欧姆。
模拟输出缩放/解缩放
如果您知道如何缩放模拟值,您也知道如何取消缩放它。因为这是你经常要做的事情。通过取消缩放,我的意思是将工程值转换为模块可以转换为输出的值。
假设我们有一个 0-10 V 模拟输出信号来控制电机的速度。为了以 50% 的速度运行电机,我们必须在输出端产生 5 V 模拟信号。为此,我们需要知道要发送到 D/A 转换器的值。换句话说,我们需要知道我们的范围。
如果我们以西门子 PLC 为例,正如我在本文开头使用的那样,它们的范围为 0-27648。
因为我们现在知道了我们的范围,我们可以计算出其中的 50%:13824。
这里的问题是操作员没有在 HMI 上输入 13824 作为设定值。他通常会设置工程值,在本例中为百分比 (%)。这就是为什么我们现在有一个工程值,我们必须将其转换为模拟输出范围内的值。
您可以通过两种不同的方式进行缩放。使用数学或功能块。使用数学是使理解背后的内容变得容易的好方法。只需使用与缩放相同的关系:
原始值 / 27648 = 工程值 / 100
通过隔离原始值,您现在拥有了将工程值转换为原始值的数学表达式。只需一行代码,即可在结构化文本中实现此目的:
原始值 := (工程值 / 100) * 27648;
当然,也可以使用功能块来取消缩放。一些供应商提供了用于取消扩展的特定功能块。以西门子为例。他们有一个名为 UNSCALE 的块。它的工作方式与 SCALE 模块相反。通过将特定范围内的值取消缩放为 0-27648 之间的值。HI_LIM和LOW_LIM现在是工程价值的极限。