电工学习网

 找回密码
 立即注册

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

2016-12-8 08:11| 编辑:电工学习网| 查看: 6445| 评论: 0|原作者: 艾星落尘|来自: 西门子工业技术论坛

之前有网友提问,比如 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号仓,正确的。

看过《关于数据大小排列同时又要考虑序号的问题》的人还看了以下文章:

发表评论

最新评论

  • 电表怎么看度数
  • 插座烧毁原因_插座烧后还可以继续使用吗?
  • 注册电气工程师考试挂靠,到底富了谁?
  • 电工证可以“挂靠“吗
  • 电工证怎么考?如何自考电工证
  • 电工证种类和图片大全
热门资讯

电工学习网 ( )

GMT+8, 2021-12-6 20:45

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部