请教一个比较数据的问题 点击:272 | 回复:4



初心step

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 45回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2016年6月16日
发表于:2017-12-19 14:44:04
楼主

需要比较30个数据,D100-D130,我想要给这30个数据排名,找出前3名,我用FOR循环和地址偏移倒是可以找出最大的数据,但是第二和第三不知道如何编写,不知道哪位大侠能帮下忙?




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2017-12-19 14:50:21
1楼

使用MAX指令,取得最大值,然后队列中清除这个最大值,接下来执行MAX,你得到的最大值就是第二大的值,重复这个过程。

初心step

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 45回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2016年6月16日
发表于:2017-12-19 15:01:14
2楼


引用 yuanle 的回复内容: 使用MAX指令,取得最大值,然后队列中清除这个最大值,...

谢谢,但是现在问题这30个数据是会变化的,不过变化不是特别快,而且数据是不能清零,请问大大有没有办法能实现排序啊

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2017-12-19 15:36:57
3楼

要排序干什么呢?三个MAX指令就完成的工作,数据不能清零,难道你不会复制一个副本,例如不断的将D100-D130的值复制到D200-D230处理。


如果你坚持需要用排序的方式来处理这个问题,那么请自行搜索网络排序算法然后再你的PLC中实现这个算法就可以了。

初心step

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 45回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2016年6月16日
发表于:2017-12-19 15:45:41
4楼


回复内容:

对: yuanle 要排序干什么呢?三个MAX指令就完成的工作,数据不能清... 内容的回复!

刚刚没转过弯来,现在明白了,谢谢了


热门招聘
相关主题

官方公众号

智造工程师