谁是Pointer高手请进来

已锁定

蜀山论道

西门子1847工业学习平台

  • 帖子

    28
  • 精华

    0
  • 被关注

    2

论坛等级:游士

注册时间:2009-03-19

普通 普通 如何晋级?

谁是Pointer高手请进来

1274

6

2017-11-01 15:34:11

 有一段FB程序是这样写的

     TAR2  #tTempAR2       //   临时变量 数据类型Dint

      L       P##iData          //    iData为输入变量,外部赋值为P#DB100.DBX0.0 BYTE 20

      AD      DW#16#FFFFFF    

      LAR1      

NetWork 1    Generate Pointers    通用指针    

      LAR2    P##tPointer    //临时变量 数据类型为ANY

      L       DIB [AR1.P#0.0]             //   10 hex = S7 Data Type    

      T       LB [AR2.P#0.0]              //   Transfer to Source pointer byte 0    

      L       DIB [AR1.P#1.0]             // 2   hex = byte data type    

      T       LB [AR2.P#1.0]              //   Transfer to Source pointer byte 1    

      L       DIW [AR1.P#2.0]             //   How many bytes to move    

      T       LW [AR2.P#2.0]              //   Transfer to Source pointer bytes 2-3    

      T       #tBCastDataLen    

      L       DIW [AR1.P#4.0]             //   Load DB Number    

      T       LW [AR2.P#4.0]              //   Transfer to Source pointer bytes 4-5    

      L       DID [AR1.P#6.0]             //   Load start address of data    

      T       LD [AR2.P#6.0]              //   Trasfer to Source Pointer bytes 6-9    

      LAR2    #tTempAR2                   //   Restore AR2  

     

       

        CALL  "ST_BLKMOV"    

       SRCBLK :=#tPointer   //临时变量  数据类型ANY

       RET_VAL:=#tRetVal    

       DSTBLK :=#tHMI       //临时变量  数据类型为UDT, 内部与DB100完全一致。


有几个问题需要请教:

  1.    AD      DW#16#FFFFFF     是什么意思?  不能不双字与吗? 直接LAR1?

  2.   这段程序是将外部指针映射到FB的临时存储ANY变量吗? 最下面的SFC20 是不是有点多余?

  3.   大家都知道any数据类型有10个字节, 每个字节都有独立的含义。 用AD       DW#16#FFFFFF, 

   想做什么呢?

    Maybe just stupid question。 谢谢您的回复和帮助!

谁是Pointer高手请进来 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54778条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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