回复:求教STL或者SCL做一个实时连续小时平均数据

已锁定

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2021-08-10 22:02:17

2楼

模拟量数据需要一个实时连续移动的小时平均数,采用时间5S或者10S都行!!

理解: 采样数据 ,每间隔5S或10S  采集一次,采集总数据时间为1个小时

1 hour = 3600S  假设采样为10S 一次 ,采样数据总数为360 个。

然后对这个360个做平均数 计算并输出吗?


FUNCTION_BLOCK FB44

TITLE = '数据采集并计算平均值'

//

// Block Comment...

//

VERSION: '1.0'

AUTHOR: baikai

NAME: average

FAMILY: data

know_how_protect

CONST

 load_cout:= 10;                     //本例采集10个

END_CONST


VAR_INPUT

WriteReq:BOOL;                      // 写请求  每10秒发一次 写入请求

New_value:INT:=0;                   // 需要写入的数据

END_VAR


VAR_IN_OUT

Last_WriteReq:BOOL;  

END_VAR


VAR_OUTPUT

average_out:REAL;   // 平均值输出

max_data:REAL;      // 分拣出最大值

min_data:REAL;      // 分拣出最小值

sum_data:REAL;      // 总和值

END_VAR



VAR

WriteReq_P:BOOL;                      // 写请求上升沿    

Index   :INT;                       // 压入数据的个数记录    

stop_write:BOOL;                    // 停止写入

store:ARRAY[1..load_cout] OF REAL;    //存储数据组

num:INT;

I:INT;

END_VAR

WriteReq_P:= WriteReq AND NOT Last_WriteReq;

Last_WriteReq:= WriteReq;

IF Index >= load_cout THEN

    stop_write:= true;

ELSE

    stop_write:= false;

END_IF;

IF NOT stop_write THEN

                  IF WriteReq_P THEN

                                store[Index]:= New_value;

                                Index := Index + 1;

                  END_IF;

 END_IF;

 //以上为数据周期采集并存储。

 min_data:= store[1];     ////每次运行默认第一个为最小值,开始进行比较

 

    FOR I:= 1 TO load_cout BY 1 DO

        IF store[I] <= min_data THEN  min_data:= store[I]; END_IF;  //求最小值

        IF store[I] >= max_data THEN  max_data:= store[I]; END_IF;  //求最大值

        IF I=1 THEN sum_data:= store[I]; 

        ELSE

            sum_data:= sum_data + store[I];

        END_IF;

        IF I =   load_cout THEN

            average_out:=  sum_data / INT_TO_REAL(load_cout);

        END_IF;

    END_FOR;


END_FUNCTION_BLOCK


大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。