Siemens SIMATIC S7-200 Manuel page 53

Masquer les pouces Voir aussi pour SIMATIC S7-200:
Table des Matières

Publicité

Comme illustré à la figure 4-13, vous pouvez modifier la valeur d'un pointeur. Comme les
pointeurs sont des valeurs de 32 bits, vous modifiez leur valeur à l'aide d'opérations sur doubles
mots. Vous pouvez modifier la valeur des pointeurs à l'aide d'opérations arithmétiques simples
(additionner ou incrémenter, par exemple).
V199
V200
1 2
V201
3 4
5 6
V202
7 8
V203
V199
1 2
V200
3 4
V201
V202
5 6
7 8
V203
Figure 4-13
Modification d'un pointeur
Conseil
N'oubliez cependant pas de prendre en compte la taille des données auxquelles se fait l'accès :
pour accéder à un octet, incrémentez la valeur du pointeur d'1 ; pour accéder à un mot ou à la
valeur en cours d'une temporisation ou d'un compteur, incrémentez cette valeur de 2 et, pour
accéder à un double mot, incrémentez cette valeur de 4.
Exemple de programme avec utilisation d'un décalage pour accéder à des données en mémoire V
Cet exemple utilise LD10 en tant que pointeur désignant l'adresse VB0. Vous incrémentez alors le pointeur d'un
décalage sauvegardé dans VD1004. LD10 désigne alors une autre adresse en mémoire V (VB0 + décalage). La valeur
enregistrée à l'adresse de mémoire V désignée par LD10 est alors copiée dans VB1900. Vous pouvez accéder à une
adresse quelconque en mémoire V en modifiant la valeur figurant dans VD1004.
AC1
adresse de VW200
AC0
1 2 3 4
AC1
adresse de VW202
AC0
5 6 7 8
NETWORK 1
//Comment utiliser un décalage pour lire la valeur
//d'un emplacement VB :
//
//1. Charger l'adresse de départ de la
//
//2. Ajouter la valeur de décalage au pointeur
//3. Copier la valeur de l'emplacement de mémoire V
//
//
LD
SM0.0
MOVD &VB0, LD10
+D
VD1004, LD10
MOVB *LD10, VB1900
Concepts concernant les
MOVD &VW200, AC1
Crée le pointeur en transférant l'adresse de VB200
(adresse de l'octet initial de VW200) dans AC1.
MOVW *AC1, AC0
Transfère le mot désigné par
AC1 (VW200) dans AC0.
+D +2, AC1
Ajoute 2 à l'accumulateur pour désigner
l'adresse de mot suivante.
MOVW *AC1, AC0
Transfère le mot désigné par
AC1 (VW202) dans AC0.
mémoire V dans un pointeur
(décalage) dans VB1900
Chapitre 4
39

Publicité

Table des Matières
loading

Table des Matières