Herunterladen Diese Seite drucken

Indirekte Adressierung Der S7-200 Speicherbereiche Durch Pointer - Siemens S7-200 System Administration Handbuch

Vorschau ausblenden Andere Handbücher für S7-200:

Werbung

Bild 4-10 zeigt ein Beispiel für die E/A-Nummerierung für eine bestimmte Hardware-Konfiguration.
Die Lücken in der Adressierung (grau und kursiv dargestellt) können von Ihrem Programm nicht
verwendet werden.
4 Eingänge /
CPU 224XP
4 Ausgänge
E0.0
A0.0
Modul 0
E0.1
A0.1
E2.0
E0.2
A0.2
E2.1
E0.3
A0.3
E2.2
E0.4
A0.4
E2.3
E0.5
A0.5
E2.4
E0.6
A0.6
E2.5
E0.7
A0.7
E2.6
E1.0
A1.0
E2.7
E1.1
A1.1
A1.2
E1.2
Erweiterungs-E/A
A1.3
E1.3
A1.4
E1.4
A1.5
E1.5
E1.6
A1.6
E1.7
A1.7
AEW0
AAW0
AEW2
AAW2
Integrierte E/A
Bild 4-10
Beispiel für die E/A-Adressen von integrierten E/A und Erweiterungs-E/A (CPU 224XP)

Indirekte Adressierung der S7-200 Speicherbereiche durch Pointer

Die indirekte Adressierung verwendet Pointer, um auf Daten im Speicher zuzugreifen. Pointer sind
Doppelwortwerte, die eine Adresse im Speicher enthalten. Als Pointer können Sie nur Adressen
des Variablen- und Lokaldatenspeichers bzw. einen der Akkumulatoren (AC1, AC2 oder AC3)
angeben. Zum Erstellen eines Pointers verwenden Sie die Operation Doppelwort übertragen.
Diese Operation überträgt die indirekt adressierte Adresse an die Adresse des Pointers. Pointer
können auch als Parameter an ein Unterprogramm übergeben werden.
Bei der S7-200 können Sie mit einem Pointer auf die folgenden Speicherbereiche zugreifen: E, A,
V, M, S, AE, AA, SM, T (nur auf den aktuellen Wert) und Z (nur auf den aktuellen Wert). Mit der
indirekten Adressierung können Sie nicht auf einzelne Bits oder auf die Speicherbereiche HC
oder L zugreifen.
Wenn Sie indirekt auf Daten in einer Adresse im Speicher zugreifen möchten, können Sie einen
Pointer auf die Adresse erstellen, indem Sie das Zeichen & und die entsprechende Adresse
eingeben. Dem Eingabeoperanden der Anweisung müssen Sie das Zeichen & voranstellen, um
dadurch anzugeben, dass die Adresse und nicht der Inhalt der Adresse an die vom
Ausgabeoperanden der Anweisung (Pointer) angegebene Adresse übertragen werden soll.
Ein Stern (*) vor dem Operanden einer Operation zeigt an, dass es sich bei der Adresse um einen
Pointer handelt. In Bild 4-11 gibt *AC1 an, dass AC1 ein Pointer ist, der die Adresse für den
Wortwert enthält, der von der Operation Wort übertragen (MOVW) referenziert wird. In diesem
Beispiel werden die Werte von VB200 und VB201 in den Akkumulator AC0 übertragen.
V199
V200
1 2
3 4
V201
5 6
V202
7 8
V203
Bild 4-11
Erstellen und Verwenden eines Pointers
4 Analogeingänge
8 Eingänge
1 Analogausgang
Modul 1
Modul 2
A2.0
E3.0
AEW4
A2.1
E3.1
AEW6
A2.2
E3.2
AEW8
A2.3
E3.3
AEW10
A2.4
E3.4
A2.5
E3.5
A2.6
E3.6
A2.7
E3.7
AC1
Adresse von VW200
Erstellt den Pointer, indem die Adresse von VB200
(Adresse des Anfangsbyte von VW200) in AC1 übertragen
wird.
AC0
1234
SPS-Grundlagen
8 Ausgänge
Modul 3
AAW4
A3.0
AAW6
A3.1
A3.2
A3.3
A3.4
A3.5
A3.6
A3.7
MOVD &VW200, AC1
MOVW *AC1, AC0
Überträgt den Wortwert, auf den AC1 zeigt, in AC0.
Kapitel 4
4 Analogeingänge
1 Analogausgang
Modul 4
AEW12
AAW8
AAW10
AEW14
AEW16
AEW18
33

Quicklinks ausblenden:

Werbung

loading