关于数据大小排列同时又要考虑序号的问题

已锁定

艾星落尘

  • 帖子

    996
  • 精华

    1
  • 被关注

    179

论坛等级:至圣

注册时间:2010-02-26

白金 白金 如何晋级?

关于数据大小排列同时又要考虑序号的问题

640

5

2016-12-06 09:31:39

之前有网友提问,比如 1到5号仓对应5个重量,将重量从小到大排列好以后,还要能够知道从小到大的这个重要对应的仓号;排序很简单,但是对号入座有点麻烦了;我是这么做的,先将源数据拷贝到一个位置,然后在分配一个相同大小的位置,按现有的结构分配5个编号,当用冒泡法进行数据排序的时候,序号跟着一起变动,这样好像就解决问题了;

在DB10里定义若干个INT数据类型DBW0到DBW8为源数据,DBW10到DBW18为数据排序的位置,DBW20到DBW28为序号。

       CALL  "BLKMOV"

       SRCBLK :=P#DB10.DBX 0.0 INT 5

       RET_VAL:=#TEMP1

       DSTBLK :=P#DB10.DBX 10.0 INT 5   //先做一个数据的拷贝


      OPN   DB    10

      LAR1  P#20.0

      L     1

      T     #TEMP3

      L     5

C001: T     #LOOP3

      L     #TEMP3

      T     DBW [AR1,P#0.0]

      L     #TEMP3

      +     1

      T     #TEMP3

      +AR1  P#2.0

      L     #LOOP3

      LOOP  C001                        //循环写入1到5的序号


      L     4

A003: T     #LOOP1

      LAR1  P#10.0

      L     4

A002: T     #LOOP2

      L     DBW [AR1,P#0.0]

      L     DBW [AR1,P#2.0]

      >I    

      JCN   A001

      L     DBW [AR1,P#0.0]

      T     #TEMP2

      L     DBW [AR1,P#2.0]

      T     DBW [AR1,P#0.0]

      L     #TEMP2

      T     DBW [AR1,P#2.0]             //数据大小的排列


      L     DBW [AR1,P#10.0]

      T     #TEMP4

      L     DBW [AR1,P#12.0]

      T     DBW [AR1,P#10.0]

      L     #TEMP4

      T     DBW [AR1,P#12.0]            //序号也要跟着走

A001: +AR1  P#2.0

      L     #LOOP2

      LOOP  A002

      L     #LOOP1

      LOOP  A003

模拟后的图片:


以重量为30为例,对应的就是4号仓,正确的。

关于数据大小排列同时又要考虑序号的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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