Multiinsatzproblem (any)

Limette

Level-2
Beiträge
282
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe aus meinem FB einen Multiinstanz-Aufruf gemacht. Seither stoppt die SPS.

Ein Bereichslängenfehler. Fehler (blinkender Cursor) wird an der roten markierten Stelle angezeigt.
Könnt ihr mir helfen?

Code:
      LAR1  P##_UIDany
      TAR2                              // transfer instance offset into ACCU1
      +AR1                              // add offset to AR1 -wg.Multiinstanzfähigkeit!!!
 
      L     B#16#10                     // 10h für S7       
      [COLOR=#ff0000]T     LB [AR1,P#0.0][/COLOR][COLOR=#ff0000]
[/COLOR]
      L     B#16#2                      // 02h für BYTE 
      T     LB [AR1,P#1.0]
 
      L     50                              // 50 Bytes 
      T     LW [AR1,P#2.0]
 
      L     #_getDBNummer                    // DB-Nummer 
      T     LD [AR1,P#4.0]
 
      L     10                          // Anfangsadresse   
      SLD   3
      T     LD [AR1,P#6.0]
 
      L     B#16#84                     // Speicherbereich (DB) 
      T     LB [AR1,P#6.0]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dein UIDany, ist das eine temporäre Variable? Wenn ja, darfst du nicht den Offset aus AR2 addieren. Wenn nicht solltest an der rot markierten Stelle nicht in LB sondern in B transferieren.
 
Den Offset braucht man nur bei Zugriffen auf die Instanzdaten (also DIy). Für die Zugriffe auf den temporären Lokaldatenbereich braucht man keinen Offset, da der nicht im IDB beziehungsweise bei Multiinstanzaufrufen nihct im übergeordneten IDB liegt.
 
Zurück
Oben