文档编号:F0215中关于ANY指针示例的疑惑

已锁定

DRAC201186

  • 帖子

    89
  • 精华

    6
  • 被关注

    0

论坛等级:侠士

注册时间:2017-09-20

普通 普通 如何晋级?

文档编号:F0215中关于ANY指针示例的疑惑

482

2

2019-05-20 15:31:22

 编程举例:
//冒泡排序程序,算法原理请参考相关资料
//此例程仅提供存于DB块中的INT类型数据排序
//结果为INT数据由小到大排列,保存于原DB块中
//FC3块,形参定义如下:

 FC3功能块代码如下:

      SET  
      SAVE 
      L     0
      T     #Error

//将输入ANY指针'Data_In'复制到LB0~LB9

      L     P##Data
      LAR1                           
      L     D [AR1,P#0.0]
      T     LD     0
      L     D [AR1,P#4.0]
      T     LD     4
      L     W [AR1,P#8.0]
      T     LW     8    

//ANY指针BYTE0是B#16#10               

      L     LB     0
      L     B#16#10
      ==I                              
      JCN   ERR1   

//输入数据区是否为DB块                    

      L     LB     6
      L     B#16#84
      ==I                              
      JCN   ERR2 

//类型为INT                      

      L     LB     1
      L     B#16#5
      ==I                              
      JCN   ERR3    

//打开输入DB块                   

      OPN   DB [LW 4]     

//数据起始地址去掉数据区标识部分             

      L     LD     6
      L     DW#16#FFFFFF
      AD   
      T     LD    10   

//计算最后一个存储单元指针保存至LD10                

      L     LW     2
      L     2
      *I   
      T     LD    14
      L     L#2
      -D   
      SLD   3
      L     LD    10
      +D   
      T     LD    10    

//外循环计数LW20,循环次数为(数据个数-1)次               

      L     LW     2
      L     1
      -I   
NXT2: T     LW    20
      L     LD    10
      LAR1 
      L     LW    20

//嵌套循环计数LW18,循环次数为(LW20)次

NXT1: T     LW    18
      TAR1 
      L     P#2.0
      -D   
      LAR1 

//后一单元数据小于前一单元数据?

      L     DBW [AR1,P#2.0]
      L     DBW [AR1,P#0.0]
      <I   
      JCN   L1

//否,交换2单元数据

      L     DBW [AR1,P#2.0]
      L     DBW [AR1,P#0.0]
      T     DBW [AR1,P#2.0]
      POP  
      T     DBW [AR1,P#0.0]

L1:   L     LW    18
      LOOP  NXT1
      L     LW    20
      LOOP  NXT2
      JU    EXIT

ERR1: L     1
      T     #Error
      JU    EXIT

ERR2: L     2
      T     #Error
      JU    EXIT

ERR3: L     3
      T     #Error

EXIT: SET  
      SAVE 

这段程序代码中红色加粗部分该怎么理解?

文档编号:F0215中关于ANY指针示例的疑惑 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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