Sie sind auf Seite 1von 3

STEP 7 Professional V13.

1
Indirektes Adressieren in AWL

Indirektes Adressieren in AWL


In AWL stehen Ihnen folgende Mglichkeiten der indirekten Adressierung zur Verfgung:

Speicherindirekte Adressierung
Registerindirekte bereichsinterne Adressierung
Registerindirekte bereichsbergreifende Adressierung

Speicherindirekte Adressierung
Bei speicherindirekter Adressierung legen Sie die Adresse in einer Variablen ab. Diese Variable
kann vom Datentyp WORD oder DWORD sein. Die Variable kann in den Speicherbereichen
"Daten" (DB oder DI), "Merker" (M) oder "temporre Lokaldaten" (L) liegen. In S7-1500 knnen
auch FB-Parameter zum Ablegen der Adresse verwendet werden. Wenn die Variable in einem
Datenbaustein liegt, muss es ein Datenbaustein mit Standardzugriff sein.
Das folgende Beispiel zeigt Anwendungen der speicherindirekten Adressierung:
Adressierung in AWL

Erluterung

U E [MD 2]

// Fhre eine UND-Verknpfung mit einem variablen Eingangsbit


aus. Die Adresse des Eingangsbits befindet sich in
Merkerdoppelwort MD2.

= DIX [DBD 2]

// Weise das VKE einem variablen Datenbit zu. Die Adresse des
Datenbits befindet sich im Datendoppelwort DBD2.

L EB [DID 4]

// Lade ein variables Eingangsbyte in AKKU 1. Die Adresse des


Eingangsbytes befindet sich im Instanzdoppelwort DID4.

AUF DB [LW 2]

// ffne einen variablen Datenbaustein. Die Nummer des


Datenbausteins befindet sich im Lokaldatenwort LW2.

Registerindirekte bereichsinterne Adressierung


Die registerindirekte Adressierung verwendet eines der Adressregister (AR1 oder AR2), um
die Adresse des Operanden aufzunehmen.
Bei der registerindirekten bereichsinternen Adressierung indizieren Sie lediglich die Bitadresse
und die Byteadresse ber das Adressregister (z. B. P#10.0). Den Speicherbereich, fr den
die Adresse im Adressregister gelten soll, geben Sie erst bei der Programmierung der
Anweisung an. Die Adresse im Adressregister bewegt sich dann in dem Speicherbereich, der
in der Anweisung angegeben ist.
Mgliche Speicherbereiche sind "Eingnge" (E), "Ausgnge" (A), "Peripherie" (PE oder PA),
"Merker" (M), "temporre Lokaldaten" (L) und "Daten" (DB oder DI). Wenn der Operand in
einem Datenbaustein liegt, muss es ein Datenbaustein mit Standardzugriff sein.
Bei der Eingabe der registerindirekten bereichsinternen Adressierung geben Sie nach der
Angabe des Adressregisters einen Versatz an, der zum Inhalt des Adressregisters addiert wird,
ohne das Adressregister zu verndern. Dieser Versatz hat ebenfalls das Format eines Zeigers.

Bei diesem Dokument handelt es sich um einen vom Nutzer selbst ausgewhlten, unentgeltlichen Auszug aus der Dokumentation, die von Siemens fr dieses
Produkt bereitgestellt wurde. Eine Haftung fr die Vollstndigkeit dieses Dokuments ist ausgeschlossen. Es ist ausschlielich fr eigene und interne Zwecke des
Nutzers bestimmt. Eine Weitergabe an Dritte ist nicht zulssig. Die vollstndige Dokumentation ist zu finden unter
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=46233507467
13.06.2016

STEP 7 Professional V13.1


Indirektes Adressieren in AWL

Die Angabe des Zeigers ist zwingend und muss als Konstante erfolgen (z. B. P#0.0 oder
P#2.0).
Das folgende Beispiel zeigt eine Anwendung der registerindirekten bereichsinternen
Adressierung:
AWL

Erluterung

LAR1 P#10.0

// Zeiger (P#10.0) in Adressregister 1 laden

L EW [AR1, P#2.0]

// Inhalt des Adressregisters 1 (P#10.0) um Versatz P#2.0 erhhen.


// Inhalt des Eingangswort EW12 in Akkumulator 1 laden

L EW [AR1, P#0.0]

// Inhalt des Adressregisters 1 (P#10.0) um Versatz P#0.0 erhhen.


// Inhalt des Eingangswort EW10 in Akkumulator 1 laden

Registerindirekte bereichsbergreifende Adressierung


Bei der registerindirekten bereichsbergreifenden Adressierung indizieren Sie die gesamte
Adresse des Operanden, d. h. die Bit- und Byteadresse sowie den Speicherbereich, ber das
Adressregister. Mgliche Speicherbereiche sind "Eingnge" (E), "Ausgnge" (A),
"Peripherie" (P), "Merker" (M), "temporre Lokaldaten" (L) und "Daten" (DB oder DI). Wenn der
Operand in einem Datenbaustein liegt, muss es ein Datenbaustein mit Standardzugriff sein
oder der Operand muss die Remanenzeinstellung "Im IDB setzen" haben.
In der Anweisung programmieren Sie nur die Operandenbreite. Mgliche Operandenbreiten
sind Bit, Byte, Wort und Doppelwort.
Das folgende Beispiel zeigt eine Anwendung der registerindirekten bereichsbergreifenden
Adressierung:

LAR1 P#M10.0

// Bereichsbergreifenden Zeiger (P#M10.0)in Adressregister 1 laden

L W [AR1, P#2.0]

// Inhalt des Adressregisters 1 (P#M10.0) um Versatz P#2.0 erhhen.


// Inhalt des Merkerwort MW12 in Akkumulator 1 laden

LAR1 P#A10.0

// Bereichsbergreifenden Zeiger (P#A10.0)in Adressregister 1 laden

L W [AR1, P#2.0]

// Inhalt des Adressregisters 1 (P#A10.0) um Versatz P#2.0 addieren


// Inhalt des Ausgangswort AW12.0 in Akkumulator 1 laden

Bei diesem Dokument handelt es sich um einen vom Nutzer selbst ausgewhlten, unentgeltlichen Auszug aus der Dokumentation, die von Siemens fr dieses
Produkt bereitgestellt wurde. Eine Haftung fr die Vollstndigkeit dieses Dokuments ist ausgeschlossen. Es ist ausschlielich fr eigene und interne Zwecke des
Nutzers bestimmt. Eine Weitergabe an Dritte ist nicht zulssig. Die vollstndige Dokumentation ist zu finden unter
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=46233507467
13.06.2016

STEP 7 Professional V13.1


Indirektes Adressieren in AWL

Hinweis
Besonderheiten in S7-1500
In S7-1500 gelten besondere Regeln zum Datenaustausch ber Adress- und
Datenbausteinregister:

Die Werte in den Registern bleiben nicht ber Bausteingrenzen hinweg bestehen. Auch bei
Sprachwechsel innerhalb eines Bausteins werden die Register rckgesetzt.
Wenn Sie ber registerindirekte Adressierung auf einen Operanden vom Typ BYTE, WORD oder
DWORD zugreifen, muss die Adresse auf einer Byte-Grenze beginnen.
Beispiele:
LAR1 P#0.0
L MW [AR1, P#0.0] // P#0.0 + P#0.0 = P#0.0 - Die Adressierung ist zulssig, da der Zeiger P#0.0
auf eine Bytegrenze zeigt.
L MW [AR1, P#2.1] // P#0.0 + P#2.1 = P#2.1 - Die Adressierung ist nicht zulssig, da der Zeiger
P#2.1 nicht auf eine Bytegrenze zeigt.

Siehe auch

Grundlagen zur indirekten Adressierung


Indirektes Adressieren von Datenbausteinen
Strukturierte Variablen adressieren
Grundlagen zu Adressregistern
Datenaustausch in AWL

Bei diesem Dokument handelt es sich um einen vom Nutzer selbst ausgewhlten, unentgeltlichen Auszug aus der Dokumentation, die von Siemens fr dieses
Produkt bereitgestellt wurde. Eine Haftung fr die Vollstndigkeit dieses Dokuments ist ausgeschlossen. Es ist ausschlielich fr eigene und interne Zwecke des
Nutzers bestimmt. Eine Weitergabe an Dritte ist nicht zulssig. Die vollstndige Dokumentation ist zu finden unter
/dokumentation/default.aspx?DocVersionId=74495465995&Language=de-DE&TopicId=46233507467
13.06.2016