阶梯逻辑402:数据操作和过滤

一旦从模拟卡中捕获了值,在将其编码到PLC之前,有一些方法可以过滤数据,并使用Microsoft Excel模拟过滤器。

通过Frank Lamb,自动化入门 2016年3月29日

关于阶梯逻辑的前一篇文章讨论了使用可编程逻辑控制器(PLC)从模拟卡捕获值。一旦捕获了这些值,就可以使用一些方法来过滤数据,并在将数据编码到PLC之前使用Microsoft Excel模拟过滤器。有几种过滤算法可以在互联网上找到,目前正在PLC上使用(见下面的链接)。对于公式,使用了相同的变量名,尽管它们在不同的帖子中有很大的不同:

N =计算出的新值并替换为输入值。换句话说,就是计算出来的过滤值。

L =先前捕获的输入值。

F =之前计算的过滤值。

k =所有计算的操纵因子(有时称为Alpha)。

i =当前模拟输入值。

Avg = x个先前样本的运行平均值,(本例中x为3)。

一阶滤波器的公式为新过滤=最后过滤+因子*(输入-最后过滤)。

根据上面列出的变量,这相当于N=F+k(i-F)。实际公式使用Alpha而不是k。该公式的结果在下面的模拟中列出了公式6。

为了模拟信号,在Excel电子表格的一列中列出模拟值。这些值是典型的13位签名模拟信号从PLC卡;注意,它们以8的倍数递增或递减。这意味着在0到10v或0到20mA的信号上,范围为0到32,767,该信号将有4096个可能的值。范围的另一半,-32768到-1,不能从现场设备获得。

上面显示的第一列是输入值。值20168模拟用户可能想要过滤的一个大噪声峰值。下面的列显示了使用找到的各种过滤公式后的结果。输入列中有较早的值的原因是在公式中提供最多5个值的运行平均值。公式6(如下所示)也需要使用之前过滤的值,所以这就是为什么它也有一个额外的值。

这是一个列有变量和公式的键。k值与表中使用的单元格相关联。

一级方程式实际上让信号变差了。公式2和公式4做了几乎相同的事情;在指令中,公式2为“k=1.0,无过滤,k=0,输出冻结。”公式4的说明说:“k=1.0,无滤波,2.0,4.0和8.0给出越来越多的滤波量,衰减更大,但延迟更大。”

三级方程式是一个直线的平均运行,似乎实际上工作得很好。目前和以前的值被用于三个平均值;使用的越多,延迟就越长。第五方程式也使用移动平均值。平均使用了三个样本,尽管本打算使用四个或五个样本。当使用4或5个时,延迟反应(滞后)变得更糟。

一阶滤波器的正式定义由公式6表示。有时这被称为一阶导数滤波器;如果点等同于位置,这将表示一个基于速度的过滤器。二阶滤波器表示加速/衰减,三阶滤波器表示“猛跳”。

过滤器将使用当前值和先前值之间的增量。在Microsoft Excel中可以很容易地模拟公式,但用户可能希望在将公式1所示的代码编码到PLC之前检查一下。

将公式转换为PLC形式在不同平台之间会有很大差异。在阶梯逻辑中,“计算”类型命令允许用户直接输入公式,尽管您可能仍然需要使用先进先出(fifo)指令,特别是在求平均时。

弗兰克羊肉他是自动化咨询服务公司的创始人。本文最初发表于自动化入门博客.Automation Primer是CFE Media的内容合作伙伴。由制作编辑克里斯·瓦夫拉编辑,控制工程, CFE传媒,cvavra@cfemedia.com

在线额外

有关plc和编程的更多文章,请参阅下面的相关文章。

原始内容可以在automationprimer.com