Herunterladen Diese Seite drucken

Siemens S7-200 System Administration Handbuch Seite 48

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

Werbung

S7-200 Systemhandbuch
Bild 4-12 zeigt, dass Sie den Wert eines Pointers ändern können. Da es sich bei Pointern um
32-Bit-Werte handelt, müssen Sie Pointerwerte mit Doppelwort-Operationen ändern. Mit einfachen
arithmetischen Operationen können Sie Pointerwerte ändern, z.B. durch Addieren oder
Inkrementieren.
V199
V200
1 2
V201
3 4
V202
5 6
V203
7 8
V199
V200
1 2
V201
3 4
V202
5 6
V203
7 8
Bild 4-12
Ändern eines Pointers
Tipp
Achten Sie darauf, dass Sie die Größe der Daten angeben, auf die Sie zugreifen möchten:
wenn Sie auf ein Byte zugreifen möchten, inkrementieren Sie den Wert des Pointers um 1.
Wenn Sie auf ein Wort oder einen aktuellen Wert einer Zeit oder eines Zählers zugreifen
möchten, inkrementieren Sie den Wert des Pointers um 2. Und wenn Sie auf ein Doppelwort
zugreifen möchten, inkrementieren Sie den Wert des Pointers um 4.
Beispielprogramm für den Zugriff auf Daten im Variablenspeicher mittels Versatz
In diesem Beispiel wird LD10 als Pointer auf die Adresse VB0 verwendet. Sie inkrementieren den Pointer dann um den
in VD1004 gespeicherten Versatz. LD10 zeigt dann auf eine andere Adresse im Variablenspeicher (VB0 + Versatz). Der
in der Adresse im Variablenspeicher gespeicherte Wert, auf den LD10 zeigt, wird dann in VB1900 kopiert. Wenn Sie den
Wert in VD1004 ändern, können Sie auf alle Adressen im Variablenspeicher zugreifen.
34
AC1
Adresse von VW200
Erstellt den Pointer, indem die Adresse von VB200 (Adresse
des Anfangsbyte von VW200) in AC1 übertragen wird.
AC0
1234
Überträgt den Wortwert, auf den AC1 (VW200) zeigt, in AC0.
AC1
Adresse von VW202
Addiert den Wert 2 zum Akkumulator, damit auf die
AC0
nächste Wortadresse gezeigt wird.
5 6 7 8
Überträgt den Wortwert, auf den AC1 (VW202) zeigt,
in AC0.
Netzwerk 1 //Lesen eines Werts einer beliebigen VB-Adresse
//mittels Versatz:
//
//1. Anfangsadresse des Variablenspeichers in einen
//Pointer laden.
//2. Versatzwert zum Pointer addieren.
//3. Wert aus der Adresse im Variablenspeicher (Versatz)
//in VB1900 kopieren.
//
LD
SM0.0
MOVD &VB0, LD10
+D
VD1004, LD10
MOVB *LD10, VB1900
MOVD &VW200, AC1
MOVW *AC1, AC0
+D +2, AC1
MOVW *AC1, AC0

Quicklinks ausblenden:

Werbung

loading