如何计算读入的任意数量的数值的当前平均值?

说明:
附件下载项 "STEP 7 Average" 包括一个内含功能块FB1的 STEP 7 项目。可以使用这个功能块计算读入的任意数量的数值的平均值。图01显示了在OB1调用FB1及调用参数。n

如何计算读入的任意数量的数值的当前平均值?
图01n

FB1 "AVERAGE" 的输入参数

  • "RESET" 数据类型: Bool
    默认值为False。如果 "RESET" 输入管脚接收到的值为True,功能块被复位,"AVERAGE"输出管脚的值为零。
  • "VALUE" 数据类型: Real
    本参数用于读取参与计算平均值的输入值。
  • "BY_VALUE_CHANGE" 数据类型: Bool
    用来定义计算模式。
  • True:只在 "VALUE" 输入管脚的值变化后重新计算一次平均值。n
  • False:平均值每周期重新计算一次。

FB1 "AVERAGE"的输出参数

  • "AVERAGE" 数据类型: Real。返回经计算的平均值。

程序说明
在输入值连续读入的情况下,当前的算术平均值被重新计算: "VALUE" 输入管脚的值变化后重新求和作为被除数,除数加1,计算的结果即为当前的算术平均值。如表01所示。

序号 参数值 平均值
1 X1 X1 / 1
2 X2 (X1+X2) / 2
3 X3 (X1+X2+X3) / 3
... ... ...
Xn (X1+X2+X3+ ... Xn) / n

表 01

表02 给出了一个将5个数依次读入,并每次计算当前的算术平均值。 在第五次读入值"14.0"后,计算平均值:

  • 平均值 = (5.0+3.0+1.0+7.0+14.0) / 5 = 6
序号 参数值 平均值
1 5,0 5 / 1 = 5,0
2 3,0 8 / 2 = 4,0
3 1,0 9 / 3 = 3,0
4 7,0 16 / 4 = 4,0
5 14,0 30 / 5 = 6,0

表 02

当"VALUE" 输入管脚的值为零时,平均值也被重新计算。FB1适合在OB1 或循环中断中被调用。

下载附件包含一个如上所述的功能块的STEP 7 项目(FB1,背景数据块 DB1和 OB1)。

如何计算读入的任意数量的数值的当前平均值? STEP_7_Average.zip ( 31 KB )

将"STEP_7_Average.zip" 文件复制一个文件夹并双击打开。解压后可用 STEP 7打开。

创建环境
本FAQ中的图片和下载项目均在 STEP 7 中创建。下表列出了所使用的环境。

测试环境 版本
PC 平台 Intel(R) Corel(TM)2 Duo CPU P8700
处理器 2.53 GHz
PC 操作系统 MS Windows XP SP3
STEP 7 V5.4 + SP5
S7 PLCSIM V5.4 + SP3

表 03

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论