indirekte Adressierung Array

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe folgendes Problem:

ich habe vergeblich versucht ein Array indirekt zu adressieren.
Welche Eingabemöglichkeiten bieten sich an?
z.B ich möchte auf den Array zugreifen dessen Index mit den MB 50
übereinstimmt.
Wieso kann ich dann nicht #arrayvariable[mb50] schreiben.
Liegt es an der Schreibweise? Oder wird diese Funktion nicht unterstüzt
 
Das geht zwar aber nicht so einfach,
besteht dein Array aus einer Struktur oder ist es einfach ein Arry z.B. off Word?

Beispiel der Einfachheit halber für Array of Word

AWL Quelle:

Code:
FUNCTION FC 2 : VOID
TITLE =
VERSION : 0.1


VAR_TEMP
  TEST_ARRAY : ARRAY  [0 .. 9 ] OF WORD ;   
END_VAR
BEGIN
NETWORK
TITLE =Array Beschreiben

      L     100; 
      T     #TEST_ARRAY[0]; 

      L     200; 
      T     #TEST_ARRAY[1]; 

      L     300; 
      T     #TEST_ARRAY[2]; 

      L     400; 
      T     #TEST_ARRAY[3]; 

      L     500; 
      T     #TEST_ARRAY[4]; 

      L     600; 
      T     #TEST_ARRAY[5]; 

      L     700; 
      T     #TEST_ARRAY[6]; 

      L     800; 
      T     #TEST_ARRAY[7]; 

      L     900; 
      T     #TEST_ARRAY[8]; 

      L     1000; 
      T     #TEST_ARRAY[9]; 

NETWORK
TITLE =MB50 begrenzen

      L     MB    50; 
      L     0; 
      <I    ; 
      SPB   SET0; 

      L     MB    50; 
      L     9; 
      >I    ; 
      SPB   SET9; 

      SPA   NWE2; 

SET0: L     0; 
      T     MB    50; 

      SPA   NWE2; 

SET9: L     9; 
      T     MB    50; 

      SPA   NWE2; 

NWE2: NOP   0; 

NETWORK
TITLE =Pointer bilden

      L     P#2.0; //Pointer mit 2 Byte laden
      L     MB    50; //Index
      *D    ; 
      LAR1  ; 

NETWORK
TITLE =Aus Array mit Index laden

      L     LW [AR1,P#0.0]; 
      T     MW    20; //Ergebnis

END_FUNCTION

Mfg
Manuel
 
Zurück
Oben