高分求教:S7300的模拟量求平均值

想法:每隔一个固定的时间段(10s)采集一次模拟量的数值,采集100次,将这100次的数值求平均值,把结果写入一个指定地址,重复循环。
我的思路:利用OB35,周期中断,设定一个时间10s,利用西门子的STEP 7 Average,这个功能块,中断一次,累加一次,累加值等于100的时候,开始求平均值。
我将STEP 7 Average这个功能块FB1做了以下修改,就是增加了一个累计次数的判断。但是没有达到我预期的功能,请问各位,我具体错哪里了。
另外,我想弄清楚概念,OB35的周期中断。我理解是,ob35的程序,每隔设定的时间就扫描执行一次,是不是这样的。谢谢各位高人,最好有注释的实例,我查过不少这方面的资料,说的很含糊。

问题补充:
zhangli0老师,你的程序我明白什么意思,可是我利用你的程序试了一下,程序运行,AVER直接显示就是模拟量/100的结果,一直不变,请问怎么回事。我实在看不出程序哪里有问题。
另外,阿鸣老师,你提供的资料我也看过,我就是想有个程序实例,学习一下

图片说明:

高分求教:S7300的模拟量求平均值    高分求教:S7300的模拟量求平均值   

最佳答案

没有看明白你的程序,我给你写一个吧,ob35,周期10s
L PV//测量值
L SUM//累计值
+R
T SUM
L COUNT//计数
L 1
+I
T COUNT
L 100
>=I
JCN M1
L SUM
L 100.0
/R
T AVER//平均值
L 0 
T COUNT
L 0.0
T SUM
M1:NOP 0

补充:我的程序是纯手打的,原来的程序求完平均值后累积值没有清零,现在求完平均值后累计值清零再重新累积就好了。

提问者对于答案的评价:
zhangli0老师,感谢你的补充,不过问题仍是没有解决,感觉对输入值没有累积。在此还要感谢回答我问题的各位老师,谢谢

专家置评

已阅,最佳答案正确。如果对需要保存每次记录的值,则需要使用地址寄存器AR1或AR2来进行指针偏移。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月26日
下一篇 2017年7月26日

相关推荐