回复:S7-1200模拟量比较问题

刚刚入门

  • 帖子

    2022
  • 精华

    23
  • 被关注

    119

论坛等级:至圣

注册时间:2009-10-24

白金 白金 如何晋级?

发布于 2018-01-19 14:57:55

1楼

求最大最小值很简单啊,但你这个可能还要考虑是按实时值还是平均值(类似滤波后)。给你一个模拟量滤波程序做参考(取10个值,去掉最大和最小值求平均,要放到定时中断里执行)

    #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系列

共有15108条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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