当前位置: 主页 > PLC控制

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

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

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

图片说明:

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

最佳答案

没有看明白你的程序,我给你写一个吧,ob35,周期10s
LPV//测量
LSUM//累计值
+R
TSUM
LCOUNT//计数
L1
+I
TCOUNT
L100
>=I
JCNM1
LSUM
L100.0
/R
TAVER//平均值
L0
TCOUNT
L0.0
TSUM
M1:NOP0

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

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

专家置评

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

  • 关注微信

猜你喜欢

微信公众号