- {{item.name}}
如何计算读入的任意数量的数值的当前平均值?
- 0
- 395
- 3086
说明:
附件下载项 "STEP 7 Average" 包括一个内含功能块FB1的 STEP 7 项目。可以使用这个功能块计算读入的任意数量的数值的平均值。图01显示了在OB1调用FB1及调用参数。
图 01
FB1 "AVERAGE" 的输入参数
- "RESET" 数据类型: Bool
默认值为 False。如果 "RESET" 输入管脚接收到的值为True,功能块被复位,"AVERAGE"输出管脚的值为零。
- "VALUE" 数据类型: Real
本参数用于读取参与计算平均值的输入值。
- "BY_VALUE_CHANGE" 数据类型: Bool
用来定义计算模式。
True:只在 "VALUE" 输入管脚的值变化后重新计算一次平均值。False:平均值每周期重新计算一次。
FB1 "AVERAGE"的输出参数
- "AVERAGE" 数据类型: Real。返回经计算的平均值。
程序说明
在输入值连续读入的情况下,当前的算术平均值被重新计算: "VALUE" 输入管脚的值变化后重新求和作为被除数,除数加1,计算的结果即为当前的算术平均值。如表01所示。
序号 | 参数值 | 平均值 |
1 | X1 | X1 / 1 |
2 | X2 | (X1+X2) / 2 |
3 | X3 | (X1+X2+X3) / 3 |
... | ... | ... |
n | 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 |
表3
您可以前往全球资源库查看此文档:
http://support.automation.siemens.com/CN/view/zh/1021364
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 在 STEP 7 Basic V10.5 中,如何计算物理流量(例如质量流量)测量值的总和?
- 如何在 WinCC flexible 操作面板上显示 CPU 的当前状态?
- 如何在S7-200 CPU断电后保持高速计数器的当前值
- S7-SCL - 可用于从给定日期或者 CPU 硬件时钟的当前日期确定日历日和日历周的工具
- 当 PROFIBUS DP 和 PROFINET IO 使用 SFC 58 / SFC 59 和 SFB 52 / SFB 53 进行通信时,对于激活的任务有无限制?
- SIMOTION 的任务执行机制及系统时钟
- 6RA70, SIMOREG DC-Master 和 SIMOREG CM, 12脉动系统如何计算电枢阻抗和感抗?
- 在MasterDrives VC中如何计算位置实际值?
- 如何计算ANY 型指针的偏移量或改变指针?
- 如何计算S7400 CPU所需的Local Data大小
{{item.nickName}}