数据排序

我的数据存在VW4500开始的每隔一个位的存储器内,即VW4500,VW4502,VW4504,...VW4546,总共有24个,希望实现从小到大排序,即最大的数放在VW4546内。尝试用FOR循环来实现,望指点迷津

问题补充:
希望通过使用for循环来实现冒泡法了解指针的运用,如果有的话请给我发一份,如果没有的话给我一份关于指针的介绍,及注意事项,谢谢。我的邮箱jgsong21st@163.com

最佳答案

去看下最简单的冒泡法,自己做才是真道理

  //Main主程序 对5个数进行排序从VW4500至Vw4508进行排序,任意多个数可以在SM0.1中初始化;
  Network1
  LD     SM0.1
  MOVW   1, VW2000
  MOVW   1, VW1000
  MOVD   &VB4498, VD3000
  MOVW   700, VW4500
  MOVW   210, VW4502
  MOVW   110, VW4504
  MOVW   510, VW4506
  MOVW   5110, VW4508
  MOVW   1, VW600

  Network2
  LD     M1.0
  CALL   S0:SBR0

  
  //SO:SBR0子程序,采用内外两个For循环及VD1118与VD1008双指针进行排序操作
  Network1
  LD     M1.0
  FOR    VW2000, VW600, 4

  Network2
  LD     M1.0
  FOR    VW1000, VW2000, 3

  Network3
  LD     M1.0
  LPS
  MOVW   VW1000, VW1002
  AENO
  *I     +2, VW1002
  AENO
  ITD    VW1002, VD1004
  LPP
  MOVD   VD1004, VD1114
  +D     +2, VD1114

  Network4
  LD     M1.0
  MOVD   VD3000, VD1008
  +D     VD1004, VD1008
  MOVD   VD3000, VD1118
  +D     VD1114, VD1118

  Network5
  LD     M1.0
  MOVW   *VD1008, VW3500
  MOVW   *VD1118, VW3502

  Network6
  LD     M1.0
  AW>    VW3500, VW3502
  MOVW   *VD1008, VW3004
  MOVW   *VD1118, *VD1008
  MOVW   VW3004, *VD1118

  Network7
  NEXT

  Network8
  NEXT

  【PLC:S7 200 226 调试通过可以直接测试】

提问者对于答案的评价:
非常感谢,我已经调试通过了,同时对指针也有了了解,以后多多练习,不断提高自己

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:53
下一篇 2021年7月4日 下午11:53

相关推荐

发表回复

登录后才能评论