TIA TIA V14 - indirekte Adressierung

dirknico

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

ich habe einen FB (nicht optimierter Bausteinzugriff) erstellt, und möchte auf Strukturelemente zugreifen.
Soweit kein Problem, habe die indirekte Adressierung aus dem Klassischen Step7 übernommen.
Würde es allerding, sofern möglich, auf symbolische Adressierung umstellen, sprich der #Tabelle_3 statt der 44 direkt die Adresse von #PNOZmulti.Tabelle_3.Segment_0.BG[0]" zuweisen

Hier der Programmcode:
Code:
//Pointer für Daten aus Tabelle 3
//-------------------------------
      L     44                   //Adresse von #PNOZmulti.Tabelle_3.Segment_0.BG[0]
      T     #Tabelle_3
.
.
.
      L     #PNOZmulti.lesen.Segmentnummer// lade gelesene Segmentnummer
      L     14                   // lade 14
      *I                         // multipliziere
      L     #Tabelle_3           // lade Adresse von "Tabelle 3"
      +I                         // addiere
      SLW   3                    // schiebe 3 nach links (Formatwahrung)
      T     #Ziel                // schreibe Zielpointer
.
.
.
      L xyz
      T dib [#Ziel]
.
.
.
     L     #Ziel                // lade Pointer
     L     P#1.0                // lade 1.0 (weil BYTE)
     +D                         // addiere
     T     #Ziel                // schreibe Pointer
     L     #Count               // lade Schleifenzähler
     LOOP  N2c

und der dazugehörige Instanz-DB
DB.jpg
 
Ich hab meinen PNOZ-FB noch nicht für die V14 umgesetzt (nutze im Moment die Variablen, die ich direkt übergebenkann (128), das reicht, bis ich mal mehr benötige), aber ich würde im Statbereich mit Array arbeiten, so dass man die Tabellen und Segmente über Arrayzugriffe addressieren kann. Dann hat man "indirekte" Adressierung über die Arrays. Ansonsten kommt man nie von der ind. Adressierung der S7 los und muß mit PEEK und POKE arbeiten, was mir genau für diesen Fall eher nicht gefällt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Idee mit dem Array ist gut, gehen mir dabei jedoch die Klartextbezeichnungen der einzelnen Bits verloren......

Kann man ggf. über einen string einen Bereich zuweisen?

z.B. so

Ziel = PNOZmulti.Tabelle_3.Segment_0

und das dann über den Blockmove kopieren?
 
Zuletzt bearbeitet:
Zurück
Oben