回复:跟我一起玩200 smart PLC 关于数据的排序

看雪001

  • 帖子

    2417
  • 精华

    87
  • 被关注

    232

论坛等级:至圣

注册时间:2012-04-25

钻石 钻石 如何晋级?

发布于 2017-11-15 10:21:29

9楼

这不是排序,只是找出数组中的最大值,放到VW200中去。

排序是由内循环和外循环组成的结构,也就是必须两个FOR-NEXT;为了避免循环体中语句过多,对于初始化程序要放在循环外部,比如你的第二段程序只是初始化指针,没必要在循环体内每次都运行,就应该和第一段程序交换一下。

阿鸣老师早期发的那段排序的确是经典算法,我在找答案里也多次看到,思路清晰,但仍然……不够简洁(没有丝毫贬损老师和楼主的意思,只是觉得阅读者应该以一种挑剔的眼光来对待,以期尽善尽美)

OPN DB1

L 10

LL0: T LB0 //原程序是MB0,使用了全局变量,一是没有必要,二是移植性不好

L P#0.0

LAR1

L 9

LL1:T LB1  //原程序是MB2,改动同上

L DBD[AR1,P#0.0]

L DBD[AR1,P#4.0]

<R

JC LL2

T DBD[AR1,P#0.0] //这里往下连续三条语句做了修改,以使循环体更加简洁

TAK              //累加器本身也是暂存器,没有必要“戴着眼镜找眼镜”

T DBD[AR1,P#4.0]

LL2 +AR1 P#4.0

L LB1 //替换原MB2

LOOP LL1

L LB0 //替换原MB0

LOOP LL0



大道至简,知易行难
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8945条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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