很多个仪表计算加权平均值解决办法 SCL

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    195

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

很多个仪表计算加权平均值解决办法 SCL

1086

1

2016-12-27 21:39:50

最爱SCL 废话不多说直接上菜

实现:若有很多的数需要进行加权求平均数,比如有几十个温度要求加权平均数,对于梯形图来说就太不好实现了。

需要定义两个DB块(这里没有做成一个DB,下次有空了做一个结构变量类型的只用一个DB),两个DB块都是每个变量为REAL,在处理的时候请用STL语言生成DB块。其中一个DB块存放REAL的需要求加权平均数的数值,另一个DB对应存放需要求加权平均数的权数。

简要说明:可设置上下限抛弃不在该范围的数值进行加权平均数计算。

 //**************************************************************************************

// 加权平均值计算 并抛弃数据异常的(这里采用区间法)

//EBC-LW 2016-12-20

//数据和权数均采用REAL类型

//**************************************************************************************

FUNCTION FC76: VOID

TITLE =   'Weighted_DATA'

AUTHOR:   EBC_LW

NAME:     CRDEWWT

VERSION:      '0.01'

FAMILY:   EBC

KNOW_HOW_PROTECT



VAR_INPUT

 DATA:BLOCK_DB;  //用于存放数据的DB块

 DATA_Weighted:BLOCK_DB;//存放加权数

 Num:INT:=14; //多少个仪表

 PV_H:REAL:=35.0; //仪表上限

 PV_L:REAL:=18.0;//仪表下限


END_VAR


VAR_IN_OUT

 

END_VAR



VAR_OUTPUT

PV:REAL;//符合要求的仪表的平均值

FAIL_NUM:INT;//不符合要求的仪表数量

END_VAR





VAR_TEMP

    I:INT;//循环变量

    J:INT;//符合要求的仪表的数量

    TEMP1:REAL;//符合要求的仪表的和

    TEMP2:REAL;//符合要求的仪表的权和

END_VAR

VAR

    


   //ARRAY_TEMP:ARRAY[1..1000] OF REAL;

END_VAR


 // 清零

// 

I:=0;

J:=0;

TEMP1:=0;

    FOR I:= 1 TO Num BY 1 DO

       //读取DB数据块中的数据

        IF (PV_L<= DWORD_TO_REAL(DATA.DD[4*(I-1)])) & (DWORD_TO_REAL(DATA.DD[4*(I-1)])<= PV_H) THEN

            //符合要求的仪表数量计数

              J:=J+1;

              TEMP1:=DWORD_TO_REAL(DATA.DD[4*(I-1)])*DWORD_TO_REAL(DATA_Weighted.DD[4*(I-1)])+TEMP1;//加权和

              TEMP2:=DWORD_TO_REAL(DATA_Weighted.DD[4*(I-1)])+TEMP2;//权数和

          //  //ARRAY_TEMP[I]:=DATA.DBD[2^I];

        END_IF;

    END_FOR;

    //计算符合要求仪表的加权平均值

    PV:=TEMP1/TEMP2;

    FAIL_NUM:=Num-J;


END_FUNCTION

//原创程序请多交流 QQ:275578306

很多个仪表计算加权平均值解决办法 SCL 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4413条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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