DI点被屏蔽

读程序时,在程序中无法找到DI点,在“cross reference”中看不到DI点,猜测可能被屏蔽了,把程序中的内容截图,请高手指点迷津。FC450内容:
AN    #Freigabe                   //Freigabe Bearbeitung
      BEC   

      L     P#0.0                       //Pointerformat f黵 Quelle laden 
      L     #Q_1                        //1. Adresse Quelle
      SLD   3                           //Wandlung der Adresse in das Pointerformat
      +D    
      T     #Pointer_Q                  //Pointer Quell-Adresse

      L     P#0.0                       //Pointerformat f黵 Maske laden
      L     #M_1                        //1. Adresse Maske
      SLD   3
      +D    
      T     #Pointer_M                  //Pointer Masken-Adresse

      L     P#0.0                       //Pointerformat f黵 Ziel laden
      L     #Z_1                        //1. Adresse Ziel
      SLD   3
      +D    
      T     #Pointer_Z                  //Pointer Ziel-Adresse

      L     #Q_1                        //Schleifenz鋒ler initialisieren
      T     #Adresse_Qn

      L     #DB_Maske                   //DB Bit-Maskierung
      T     #Pointer_Maske

      L     #DB_Ausgabe                 //DB Datenausgabe
      T     #Pointer_Ausgabe

loop: L     #Variable                   //Variablentyp f黵 Transfer
      L     'E'                         //Bereich "Eing鋘ge"
      ==I   
      JC    DE
      TAK   
      L     'A'                         //Bereich "Ausg鋘ge"
      ==I   
      JC    DA
      TAK   
      L     'M'                         //Bereich "Merker"
      ==I   
      JC    M
      BEU   

DE:   L     IB [#Pointer_Q]
      JU    copy
DA:   L     QB [#Pointer_Q]
      JU    copy
M:    L     MB [#Pointer_Q]

copy: OPN   DB [#Pointer_Maske]
      L     DBB [#Pointer_M]            //aktuelle Maske
      XOW                               //ggf. Bit-Invertierung
      OPN   DB [#Pointer_Ausgabe]
      T     DBB [#Pointer_Z]            //aktuelle Ausgabeadresse

      L     #Pointer_Q                  //Pointer Quelle ...
      L     P#1.0
      +D    
      T     #Pointer_Q                  //... inkrementieren

      L     #Pointer_M
      L     P#1.0                       //Pointer Maske ...
      +D    
      T     #Pointer_M                  //... inkrementieren

      L     #Pointer_Z
      L     P#1.0                       //Pointer Ziel ...
      +D    
      T     #Pointer_Z                  //... inkrementieren

      L     #Adresse_Qn                 //Schleifenz鋒ler ...
      L     1
      +I    
      T     #Adresse_Qn
      L     #Q_n
      >I                                //... abfragen
      BEC   

      JU    loop                        //n鋍hste Variable

图片说明:

DI点被屏蔽    DI点被屏蔽    DI点被屏蔽    DI点被屏蔽   

最佳答案

那些数字比如图片2的164,183应该是对应的DI,只是在符号表(symbol table里被重新定义了)
先看看符号表里如何定义的

提问者对于答案的评价:
程序中采用间接寻址,把di读到指定的db中

专家置评

关于间接寻址,可以参考下载中心的文档:
http://www.ad.siemens.com.cn/download/SearchResult.aspx

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午3:21
下一篇 2018年12月1日 上午3:21

相关推荐