技术论坛

模拟量求平均

作者 主题
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
主题:【求助】模拟量求平均
推荐帖


只看楼主 楼主 2021-02-28 00:43:12

840dsl数控系统,S7-300plc。

1,有一个高速采集的模拟量值。波形类似方波,在波谷采集数据。每个周期约200ms,波谷处约20ms可以采集10次数据,求一个平均。这样值能准确些。

2,实际测量发现测量10个数据,最开始的那个数据和结尾的数据波动太大。所以就想掐头去尾求平均,程序如何实现呢?


keep moving !
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1683445&b_id=20&s_id=0&num=7

侠圣

经验值: 2040
发帖数: 219
精华帖: 3
回复:模拟量求平均
推荐帖


只看楼主 1楼 2021-02-28 11:55:25
堆栈,先入先出,采集一次数据,进栈,可以利用FOR循环,从首到尾取和,再除以栈数据数量。
多学长知识 多问长见识
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:模拟量求平均
推荐帖


只看楼主 楼主 2楼 2021-02-28 12:33:02
以下是引用水煮花生在2021-02-28 11:55:25的发言 >1楼:堆栈,先入先出,采集一次数据,进栈,可以利用FOR循环,从首到尾取和,再除以栈数据数量。

S7-300也可以用for循环吗?


keep moving !
以下网友喜欢您的帖子:

  
侠圣

经验值: 2040
发帖数: 219
精华帖: 3
回复:模拟量求平均
推荐帖


只看楼主 3楼 2021-03-01 10:09:12

做这段处理,建议用SCL语言

堆栈就像一个数组内的存放的连续数据,数组有一个容量(数组角标的最大值)(假定变量名CAP),数组内的有效数据个数(假定变量名N)数据的存取地址通过指针操作(假定变量P)。

先入先出:有入栈请求时,i=N to 1,DATA(i)=DATA(i-1),所有数据移动一个位置,然后 DATA(0)=要入栈的数据,N=N+1。 N=CAP表示栈满,N最大不能超过CAP。

 取平均值也是类似:for  i=N to  0,  SUM=SUM+DATA(i),取和完成之后,分别对SUM和N转换为实数,在做除法,取整,得到平均值。

关于数据类型,模拟量是INT,求和(SUM)可用Dint。



多学长知识 多问长见识
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:模拟量求平均
推荐帖


只看楼主 楼主 4楼 2021-03-01 17:09:52

那我直接写成

第一次循环 i 默认0

db100.dbw(i)=piw256转换后的值

i=i+2

if i=10 then

sum=db100.dbw(0)+db100.dbw(2)+……db100.dbw(18)

aver=sum/10

i=0;

end_if

循环一次,记录一次。10次求一个平均。



keep moving !
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:模拟量求平均
推荐帖


只看楼主 楼主 5楼 2021-08-19 22:03:11
以下是引用水煮花生在2021-03-01 10:09:12的发言 >3楼

做这段处理,建议用SCL语言

堆栈就像一个数组内的存放的连续数据,数组有一个容量(数组角标的最大值)(假定变量名CAP),数组内的有效数据个数(假定变量名N)数据的存取地址通过指针操作(假定变量P)。

先入先出:有入栈请求时,i=N to 1,DATA(i)=DATA(i-1),所有数据移动一个位置,然后 DATA(0)=要入栈的数据,N=N+1。 N=CAP表示栈满,N最大不能超过CAP。

 取平均值也是类似:for  i=N to  0,  SUM=SUM+DATA(i),取和完成之后,分别对SUM和N转换为实数,在做除法,取整,得到平均值。

关于数据类型,模拟量是INT,求和(SUM)可用Dint。


是不是需要用到FC84和FC85?

高速采集信号,如1ms采集一个数据,FC84和FC85的处理时间是多少呢?


keep moving !
以下网友喜欢您的帖子:

  
奇侠

经验值: 5889
发帖数: 796
精华帖: 1
回复:模拟量求平均


只看楼主 6楼 2022-02-28 18:16:40

300的装上SCL 也可以用FOR语句


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 5244
发帖数: 1192
精华帖: 6
回复:模拟量求平均


只看楼主 楼主 7楼 2022-02-28 20:54:48
以下是引用自控龙龙在2022-02-28 18:16:40的发言 >6楼

300的装上SCL 也可以用FOR语句

scl在哪能下载到


keep moving !
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
模拟量求平均
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。