现在的问题是:PLC如何处理所有这些不同的值?假设您有一个 5 伏的模拟信号进入 PLC。我们不能用布尔值来表示它,因为它们只能有值 0 和 1。
如前所述,PLC 只能使用两个值 0 和 1。但这确实阻止了我们处理模拟信号。因为真正发生的事情是,PLC使用二进制数。这是因为PLC或微控制器实际上只是由晶体管制成的高级电路。由于晶体管只能打开或关闭,因此这两种状态将表示值 0 和 1。
但这只能给我们两种状态。对数字信号非常有用,但对模拟信号不适用。要了解模拟输入在PLC中的工作原理,您必须了解二进制数。
二进制数是 PLC 或任何其他计算机使用的编号系统。该系统只有两个数字,而我们的 10 基数编号系统有 10 个从 0 到 9 的数字。二进制只是写数字的另一种方式。如果您不知道二进制数是如何工作的,我建议您看看这个关于二进制的教程。
一个数字的二进制数称为位。一个位可以容纳 0 或 1。如前所述,这就是数字输入的工作原理。但是,如果你把这些位结合起来,从而创建多个数字,事情就会开始变得有趣。
在许多PLC中,模拟信号由一个词表示。二进制中的单词是一行 8 个零或两个字节(4 个零)。就像这样:
如果你对二进制数有一点了解,你就会知道,一个有 16 位数字的二进制数可以表示从 0 到 65.535 的值。不过,对于PLC来说,这只是事实的一半。因为第一位用于对数字进行签名,因此为其提供正值或负值。
因此,使用 1 位进行签名,我们剩下 15 位用于表示模拟值。因此,二进制数可以表示从 -32.768 到 32.767 的值。
将模拟信号想象成一条流入PLC的河流。A/D转换器就像一个大坝,将这种连续的流转换为可管理的段,即数字信号。这些数字位是 PLC 用来有效地理解和处理传入信息的。
在了解 A/D 转换器之前,了解您正在处理的模拟信号类型非常重要。在本文中,我将重点介绍PLC编程中的这三种类型的模拟信号:
我们之所以需要了解信号的类型,是因为我们需要知道信号的范围。
在谈论变送器时,校准非常重要。您必须知道这些 mA 或伏特在物理值中代表多少。
在为模拟输入接线时,首先了解您的信号并查阅手册至关重要。每种信号类型都有其特定的接线方法。把它想象成设置一个新小工具;您需要了解其功能并仔细遵循设置指南。
在本教程中,我将介绍两个最基本的模拟输入信号的接线:
我之所以将模拟输入信号分为这两类,不仅是因为它们是最常用的信号。这也是因为它们的接线不同。由于这两种类型的模拟信号的工作方式非常不同,因此您还必须在模拟输入模块上以不同的方式连接它们。接线错误可能会损坏输入模块,因此请小心!
电阻是分压或限制电流的因素。事实上,电阻器甚至用于测量电流。但稍后会详细介绍。让我们先来看看第一种模拟信号——电压。
对模拟信号使用电压是很常见的。它们也很容易接线,因为您通常只需要两根电线。但这并不意味着您在连接此类模拟信号时不应该小心。如果接线不正确,您可能会得到一个有故障的模拟信号,甚至更糟糕的是,一个损坏的模拟输入模块。
电压始终在两点之间测量。你不能拿一个点然后说:在这一点上我可以测量 10 伏特。为此,您需要一个参考点。就像电池一样。9 伏电池的正负极之间只有 9 伏。
这就是我们使用AGND或模拟接地的目的。在 AGND 和 AIN 之间,PLC 测量模拟输入上的伏特。这也为我们提供了AIN是什么的答案。
连接模拟电压源时,AIN 是连接其正极 (+) 侧的位置。负极 (-) 应连接到 AGND。这是模拟信号的两条主线。
但是,如果您只将这两者连接起来,您最终会得到一个非常脆弱的信号。电磁兼容性(EMC) 可以轻松改变您的模拟信号。
如下图所示,这是通过屏蔽电线并将屏蔽层接地来解决的。但请注意,这与 AGND 不同!
问题是并非所有理由都是一样的。当 AGND 用作模拟信号(0 伏)的参考时,屏蔽层应接地。因为噪声实际上只是由于磁场而在导线中感应出电流。通过使用屏蔽层,电流将在屏蔽层中感应出来,而不是在模拟信号的导线中感应出来。这种电流需要被带走,这就是我们将屏蔽层接地的原因。
由于我们在这里处理的是电压,因此接线本身可能会导致问题。所有电线(导体)都有电阻,因此会产生电压降。这可能意味着模拟输入端的电压与变送器上的电压不同。当然,只有当您的接线距离较长或电线太小时,这才会产生重大后果。
除了电压,您还可以使用电流作为模拟信号。它们的接线可能有点棘手,但总的来说它们更稳定。特别是其中之一具有非常智能的功能,使其成为最常用的模拟信号类型。
模拟信号中的电流通常以毫安 (mA) 为单位测量。这里的典型范围在 0 到 20 mA 之间。低于这个数字将很难衡量,超过这个数字很快就会变得危险。让我们来看看在模拟信号中使用电流的真正含义。
尽管第一种电流变送器的接线与电压相同,但这里发生了一些不同的事情。电流是电子从一个极点流向另一个极点的流动。这就是为什么您始终需要一个闭环来测量电流的原因。
事实上,PLC甚至无法测量电流。因此,在模拟输入模块内部,在正极(AI)和负极(AGND)之间放置一个电阻器。这不仅构成闭环,还将我们的电流信号转换为电压信号。
该电阻器称为分流电阻器,具有特定的电阻。例如,在某些西门子模拟输入模块中,它是 250 欧姆。由于欧姆定律,模拟电流信号现在可以通过简单的计算转换为电压信号。
由于我们有一个众所周知的 250 欧姆电阻,因此也可以计算出我们测得的电压对应于多少毫安。
考虑到这一背景,让我们看一下当前模拟输入的接线。它们通常可以分为三种类型:
当谈论 2、3 和 4 线时,我们在这里谈论的实际上是变送器或传感器。电流变送器可以以不同的方式接线,因此可以使用不同数量的电线。区别实际上在于信号的电源。有时变送器会为电路供电,有时您必须使用外部电源。
连接 2 线制变送器的第一种也是最简单的方法是将其连接为环路供电。基本上,这意味着PLC将提供电流环路。这里只需要 2 根电线。为了让 PLC 提供电流,我们需要在模拟输入模块上使用另一个端子:
一根电线从 A+ 穿过变送器,然后通过另一根电线返回 AIN。电源来自 A+,变送器控制电流,模拟电流信号进入 AIN。
显然,使用 4 线制变送器的最大优点是电源和信号完全分离。它们可以完全隔离或光隔离,因此电源中的干扰不会影响信号。
这里最重要的是您知道您拥有的发射器或传感器。阅读手册并决定如何连接它。不要忘记阅读模拟输入模块的手册。不同的供应商为模块上的终端赋予不同的名称。有时他们甚至会为接地和噪音保护制定不同的指导方针。
总之,成功接线的黄金法则很简单:严格遵循制造商的说明。这可确保您的 PLC 设置平稳运行,避免任何接线事故。
当模拟输入信号进入 PLC 时,您通常需要在 PLC 程序中对其进行缩放。缩放意味着将模拟输入的原始值转换为某种工程值。工程值是表示物理值的数字,例如流量 (m3/s)、重量 (kg) 或温度(度)。
转换或缩放只需一些数学运算即可完成。一些 IDE(如 Siemens Step 7 或 Tia Portal)甚至有一个专门用于进行缩放的功能块。在这里,我将向您展示缩放模拟输入的两种方法。
之前,我解释了模拟信号如何在PLC中成为原始值。但这个数字实际上只代表一个介于 0 到 27648 之间的数字,例如在西门子平台上。模拟信号所代表的是 0 到 300 度等物理测量值。在我们的PLC程序中使用工程值或在HMI上显示测量值非常方便。
不知何故,我们必须将范围 0-27648 转换为 0-300。
通过分离工程值,我们现在得到了一个可以直接用于 PLC 程序的方程式。该公式可用于将模拟输入缩放到工程值:
工程价值 = (原始值 / 27648) * 300
当然,这里最简单的选择是使用结构化文本。这样,我们只需一行代码即可扩展模拟输入。这是如何在 CODESYS:1
但是,即使您只能使用数学来进行缩放,有时也会为您提供用于进行缩放的功能块。
例如,西门子具有专门用于扩展的内置功能块。该模块简称为 SCALE,具有 5 个输入和 3 个输出。但我只关注其中的 3 个输入和 1 个输出。
HI_LIM和LOW_LIM是工程价值的极限。例如,如果要将模拟信号缩放到 0-300 度,则LOW_LIM应为 0 且HI_LIM 300。在称为IN的输入端,是模拟输入的原始值的去向。
这里发生的一切都与前面显示的数学相同。有些人更喜欢一种方法而不是另一种方法。
模拟输出与模拟输入有很多相似之处。但是,在接线方式和在 PLC 程序中使用它们的方式仍然存在一些差异。就像模拟输入一样,模拟输出可以分为两种类型:
原则是一样的。我们要么使用电压或电流作为模拟信号。
无论您使用哪种类型的模拟输出,您都必须牢记一件事。负载。因为从本质上讲,您将负载连接到输出。这可以是流量控制器阀、变频器,甚至是另一个 PLC 上的模拟输入。
您连接到模拟输出的设备决定了您应该使用哪种类型的模拟信号。如果要控制具有 4-20 mA 信号的阀门,则模拟输出也应为 4-20 mA。
同样,电压模拟输出是最容易接线的。为此,您只需要 2 根电线。电压源的正极和负极。在这种情况下,这是我们的模拟电压输出。以下是简单的 2 线模拟电压输出的接线方式:
电流和电压输出之间的一大区别是负载阻抗。因为电压输出需要最小的负载阻抗,而电流输出实际上具有最大的负载阻抗。请记住,我们在这里谈论的是电流,阻抗(电阻)限制了电流。如果负载阻抗太大,环路将根本无法驱动所需的电流。
典型的 PLC 模拟电流输出的最大负载阻抗为 300-500 欧姆。
如果您知道如何缩放模拟值,您也知道如何取消缩放它。因为这是你经常要做的事情。通过取消缩放,我的意思是将工程值转换为模块可以转换为输出的值。
假设我们有一个 0-10 V 模拟输出信号来控制电机的速度。为了以 50% 的速度运行电机,我们必须在输出端产生 5 V 模拟信号。为此,我们需要知道要发送到 D/A 转换器的值。换句话说,我们需要知道我们的范围。
如果我们以西门子 PLC 为例,正如我在本文开头使用的那样,它们的范围为 0-27648。
因为我们现在知道了我们的范围,我们可以计算出其中的 50%:13824。
这里的问题是操作员没有在 HMI 上输入 13824 作为设定值。他通常会设置工程值,在本例中为百分比 (%)。这就是为什么我们现在有一个工程值,我们必须将其转换为模拟输出范围内的值。
您可以通过两种不同的方式进行缩放。使用数学或功能块。使用数学是使理解背后的内容变得容易的好方法。只需使用与缩放相同的关系:
通过隔离原始值,您现在拥有了将工程值转换为原始值的数学表达式。只需一行代码,即可在结构化文本中实现此目的:
原始值 := (工程值 / 100) * 27648;
当然,也可以使用功能块来取消缩放。一些供应商提供了用于取消扩展的特定功能块。以西门子为例。他们有一个名为 UNSCALE 的块。它的工作方式与 SCALE 模块相反。通过将特定范围内的值取消缩放为 0-27648 之间的值。HI_LIM和LOW_LIM现在是工程价值的极限。