liti1985
级别: 探索解密
精华主题: 0
发帖数量: 19 个
工控威望: 146 点
下载积分: 666 分
在线时间: 12(小时)
注册时间: 2011-08-26
最后登录: 2015-11-10
查看liti1985的 主题 / 回贴
楼主  发表于: 2015-01-26 16:36
PLC运行中,采集最近10分钟内的数据,每1S采集1次数据(即累计最新的600次数据),求出600次数据平均值,如何编程?
gkrj20120815
级别: 探索解密
精华主题: 0
发帖数量: 26 个
工控威望: 141 点
下载积分: 2558 分
在线时间: 10(小时)
注册时间: 2012-08-15
最后登录: 2021-04-02
查看gkrj20120815的 主题 / 回贴
1楼  发表于: 2015-01-26 16:53
用1秒周期定时器接通一次AI通道,再把当前AI的数据存在一个地址(A)里,下一秒钟时间到后把A地址里的数据和当前一秒钟的AI数据相加,一直加到600秒,600秒后,用A地址里的数据除以600
kokoper
级别: 略有小成
精华主题: 0
发帖数量: 238 个
工控威望: 357 点
下载积分: 1335 分
在线时间: 144(小时)
注册时间: 2014-07-23
最后登录: 2018-09-17
查看kokoper的 主题 / 回贴
2楼  发表于: 2015-01-27 10:33
引用
引用第1楼gkrj20120815于2015-01-26 16:53发表的  :
用1秒周期定时器接通一次AI通道,再把当前AI的数据存在一个地址(A)里,下一秒钟时间到后把A地址里的数据和当前一秒钟的AI数据相加,一直加到600秒,600秒后,用A地址里的数据除以600

一楼说法有漏洞啊,要考虑怎么减去10min前的数据。
我觉得是不是可以用一个600的数组,用定时器中断读取AI,用移位指令输入当前值的同时将10min前的值移出数组,然后对数组求均值