回复:大神们,求助个循环采集模拟量的程序问题.

已锁定

zhangli0

西门子1847工业学习平台

  • 帖子

    17143
  • 精华

    63
  • 被关注

    890

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2023-03-09 11:02:07

6楼

#i := 0;

"数据块_1".Save_Temp[300] := "数据块_1".Current_temp;//当前温度值,ob1中生成随机数

FOR #i := 0 TO 299 BY 1 DO//for循环不支持倒序处理,所以我把新数据放到数组最后.by参数是步长,默认是1,这里可以不写

    "数据块_1".Save_Temp[#i] := "数据块_1".Save_Temp[#i + 1];

    ;

END_FOR;

FOR #i := 0 TO 299 DO//拷贝save数组的数据到order数组

    "数据块_1".Order_temp[#i] := "数据块_1".Save_Temp[#i];// Statement section FOR

    ;

END_FOR;

FOR #i := 1 TO 299 DO

    FOR #j := #i TO 300 DO//这个是优化的降序排序,比你的排序用时更短.如果要升序,if条件改成小于"<"

        IF "数据块_1".Order_temp[#i] >"数据块_1".Order_temp[#j] THEN

            #temp0 := "数据块_1".Order_temp[#i];// Statement section IF

            "数据块_1".Order_temp[#i] := "数据块_1".Order_temp[#j];

            "数据块_1".Order_temp[#j] := #temp0;

        END_IF;

        // Statement section FOR

        ;

    END_FOR;

    // Statement section FOR

    ;

END_FOR;


活到老,学到老!为了生活学习吧!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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