Indirekte Adressierung

dennisy

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Im Grunde habe ich eine Frage zur Funktionsweise der indirekten Adressierung. Mein Problem dabei ist, dass meine Firma mit PILZ-Systemen arbeitet, womit ich zuvor auch noch nicht gearbeitet habe. Soweit ich weiß, arbeitet fast jede Firma mit anderen Systemen. Somit findet man dementsprechend wenig Hilfe im Netz.
Ich werde mal versuchen, den Programmteil so genau wie möglich zu beschreiben. Vielleicht versteht ja jemand die Funktionsweise :)
Das ganze ist in AWL geschrieben. Es handelt sich hierbei um ein bestehendes (funktionierendes) Programm.

A DB 080 //???

L = NUM //Der Wert NUM (in dem Fall 1) wird geladen.
T MW 114.00 ._iInd00 //transferiert in das merkerwort 114.00, welches für Adresszeiger vorgesehen ist // Datenwert wird Zwischengespeichert

L MW 067.00 //das Merkerwort 67 wird geladen und in
T DW(114.00) //den Adresszeiger 114 geschrieben?

Jetzt kommt der nächste Schritt.

L = NUM //Läd wieder den Wert 1 und rechnet als nächstes 210 auf diesen und transferiert in das Merkerwort 114. (warum?)
+ KF 000210 // Werte werden aus dem Speicher geholt
T MW 114.00 ._iInd00

L DW(114.00) //läd das Datenwort 114(adresszeiger)
T MW 067.00 //Transferiert den Adresszeiger wieder in das Merkerwort 67

Jetzt folgt der eigentlich Programmteil, in welchem das Merkerwort 67 beschrieben wird.
Im Anschluss an das Ganze geht es so weiter:

// Rückspeicherung der Daten aus dem Merkerworten
///////////////////////////////////////////////////////////////////////////////
// Speichern der Zwischenwerte des Baustein
L = NUM //Läd also wieder die 1
+ KF 000210 //rechnet den Wert 210 auf.
T MW 114.00 ._iInd00 //Transferiert in das Merkerwort 114

L MW 067.00 //Läd das Merkerwort 67
T DW(114.00) //und schreibt es in den Adresszeiger 114


Der Letzte Teil ist folgender:
// Rückspeicherung der Werte vor Bearbeitung durch das Programm
L = NUM //1
T MW 114.00 ._iInd00 //in merkerwort 114 transferieren

L DW(114.00) //Läd das Datenwort 114 (adresszeiger)
T MW 067.00 //und transferiert es in mein ursprüngliches MW 67


Irgendwie kann ich bei der ganzen Sache nicht folgend, warum ich die Werte (so oft?) hin und her schiebe und warum ich beispielsweise die Zahlen aufaddiere? Vielleicht habe ich aber auch einfach nicht verstanden, was es mit Adresszeigern oder indirekter Adressierung auf sich hat.

Vielen Dank im Voraus :)

Gruß Dennis
 
Zuletzt bearbeitet:
Zurück
Oben