间接寻址程序解读

LAR1  P##tSrcA300                 // Anfangsadresse laden
      L     B#16#10                     // Syntax-ID in ANY-Pointer
      T     LB [AR1,P#0.0]

      L     B#16#2                      // Datentyp BYTE in ANY-Pointer 
      T     LB [AR1,P#1.0]

      L     16                          // Blockl鋘ge (hier 16 Bytes)
      T     LW [AR1,P#2.0]

      L     #tDBA300                    // Ziel-Datenbausteinnummer
      T     LW [AR1,P#4.0]
      L     P#DBX 0.0                   // Beginn der Ziel-Datenstruktur 
      T     LD [AR1,P#6.0]

      CALL  "DPRD_DAT"                  // A300-Daten auslesen
       LADDR  :=#tHexAdrA300_In1
       RET_VAL:=#tRetVal_In1
       RECORD :=#tSrcA300

      L     #tRetVal_In1
      L     0
      ==I   
      JC    DI01
      CALL  "FILL"
       BVAL   :=#tFillValue
       RET_VAL:=#tfault
       BLK    :=#tSrcA300
DI01: NOP   0

请问为什么要把这些数据装到L里面,不太懂这些程序

问题补充:
例:假如MY_ANY为ANY数据类型,
当MY_ANY=P#DB1.DBX1.0 BYTE 10时,ANY 数据类型构成如下所示
BYTE0  BYTE1  BYTE2  BYTE3  BYTE4  BYTE5  BYTE6  BYTE7  BYTE8  BYTE9 
16#10H 16#02  16#0   16#A   16#0   16#1   16#84  16#0   16#0   16#8
为什么是这种格式L     P#DBX 0.0,按照上面的实例应该是数字才对吧
另外 LAR1  P##tSrcA300  指的是上面2.0这个地址吗,这段程序最终指向那个区域存储

图片说明:

间接寻址程序解读   

最佳答案

P##tSrcA300是一个TEMP数据类型,
      L     B#16#10                      //ANY-Pointer固定格式
      T     LB [AR1,P#0.0]
      L     B#16#2                       // ANY的数据类型
      T     LB [AR1,P#1.0]
      L     16                               // 数据的长度
      T     LW [AR1,P#2.0]
      L     #tDBA300                    // DB号
      T     LW [AR1,P#4.0]
      L     P#DBX 0.0                   // 间接寻址的具体地址,都是从0.0开始
      T     LD [AR1,P#6.0]    
以上程序就是按ANY指针的定义组合一个ANY指针#tSrcA300,再程序的后面SFC14就使用了,建议你去看看ANY指针的具体格式就明白了。
补充:ANY指针的地址是L2.0开始的10个字节,但是ANY指针的所装载的内容并不是指向L2.0;ANY指针的格式见图,正如以上程序的意思,有了数据类型,数据的长度,DB号和数据的起始地址,那么就能够找到这组数据了,那么这段程序主要讲的也就是如何组成一个ANY指针。
S7-300和S7-400的寻址
https://wenku.baidu.com/view/43b69593650e52ea54189886.html

图片说明:

间接寻址程序解读  

提问者对于答案的评价:
回答的很好,很满意

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论