模拟量求均值

现在有一4-20ma的信号,输入到200系列的输入扩展模块中,对应量程0-800,要对这个信号求均值,采样时间500毫秒,采样周期5分钟,也就是说在5分钟的时间内要采样600次,然后求出这600次的平均值并在人机介面显示,那位朋友能给个方案,谢谢。

问题补充:
谢谢个位的回答,补充几点:
1,我个人倾向于子程序的方案,这个方案和样本里的例程思路是一致的,可是在做除法时采用移位方式如何确定移位数,
2,500mS的时钟,加上时钟间隔,哪5分钟就不是600次啦。
3,最大的问题是我在编程软件中的程序控制指令中竟然没有找到call指令,我使用的软件为step7-microv4.0sp6
4为何要除7200哪,如果以分钟为单位,该除多少那。

最佳答案

东方学人:根据您提的问题我编制一段程序,完全能瞒足您的要求,每500ms从AIW0通道采集一次模拟信号,并累加一次,5分钟累加600次。在500ms中每次采集数据、计算、数据转换、数据存储都可完成,没有时间间隔。5分钟600次采集数据的平均值存放在VD108存储器中,可以送到任何人机界面显示出来。本系统500ms采集一次,即每500msT32导通时,M10.1置位上升沿采集数据一次,采集数据计数加1;并且M10.1置位100ms来处理采集数据,时间够用了。程序有注释便于您理解,程序如下:

网络1
LD     SM0.1
MOVW   0, VW100    //开机时VW100清零
MOVW   0, VW10     //开机时VW10清零

网络2
LD     SM0.0
LPS
AN     M10.0
TON    T32, 500        //1ms定时器,设置500ms
LRD
A      T32
=      M10.0           //M10.0与T32组成500ms脉冲开关
S      M10.1, 1        //每500msM10.1导通100ms
LRD
AW>=   T32, 100        //当T32大于或等于100ms导通
R      M10.1, 1        //M10.1复位
LRD
A      M10.1 
LPS       
EU                     //M10.1导通上升沿
+I     AIW0, VW100     //对I0.0通道采集信号每500ms累加一次
+I     1, VW10         //采集信号每累加一次VW10中数值加1
LPP
ITD    VW100, VD104    //累加值转为双整数
DTR    VD104, VD104    //累加值转位实数
AW>=   VW10, 600       //当VW10=600时,即采集信号累加600次导通
EU                     //上升沿
MOVR   VD104, VD108
/R     600.0, VD108    //600次采集信号的平均值保存到VD108存储器
MOVW   0, VW100        //vw100清零以便下一周期采集信号
MOVW   0, VW10         //VW10清零以便下一周期累计采集次数
东方探索

提问者对于答案的评价:
谢谢大家的回答,选择东方探索的回答基于以下的原因:
1,对于时钟问题给了我很大的启发,
2,在这个问题里数型转换很重要,他谈到了,
3,有例程,在这里谢谢了,我会参考的。
几点说明:
1,本回答中有一点可能需要商榷,即600个采样值累加完后好像不能直接输出做均值,应该除以600或采取移位除(移位数为采样数的2次方),希望能和你做进一步的探讨QQ1037249228,
2对于推荐循环程序的朋友们,我仔细看了你们推荐的程序,有2个问题,一是那些数是已知的,二是数应该是由小到大排列,而我的数据是实时的,大小是随机的。
                                再一次谢谢大家

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

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

相关推荐