回复:SCL做循环字移功能

刚刚入门

  • 帖子

    2022
  • 精华

    23
  • 被关注

    119

论坛等级:至圣

注册时间:2009-10-24

白金 白金 如何晋级?

发布于 2016-12-15 14:52:41

2楼

其实就是堆栈,队列里就用到的,定义一个数组Array[0-99]

 IF #SP  THEN 

FOR #INDEX := 0 TO 98 BY 1 DO//堆栈(其实要判断首尾满空的,就不写了)

        #AR[#INDEX+1] := #AR[#INDEX];

    END_FOR;

  END_IF;

给你一个模拟量滤波程序参考下SCL用法吧


 #MAX := #AR[0];//初始化

    #MIN := #AR[0];

    #TOTAL := 0.0;

    #TOTAL_FILTERD := 0.0;

    FOR #INDEX := 0 TO 8 BY 1 DO//FIFO堆栈

        #AR[#INDEX] := #AR[#INDEX + 1];

    END_FOR;

    #AR[9] := #IND;//加入新检测值

    FOR #INDEX := 0 TO 9 BY 1 DO

        //查找最大值

        IF #MAX < #AR[#INDEX] THEN

            #MAX := #AR[#INDEX] ;

        END_IF;

        //查找最小值

        IF #MIN > #AR[#INDEX] THEN

            #MIN := #AR[#INDEX];

        END_IF;

        //计算累加和

        #TOTAL := #TOTAL + #AR[#INDEX];

    END_FOR;

    //计算滤波后累加和

    #TOTAL_FILTERD := #TOTAL - #MIN - #MAX;

    #D_FILTERD := #TOTAL_FILTERD / 8.0;



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15106条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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