Télécharger Imprimer la page

Siemens SIMATIC S7-200 Manuel D'utilisation page 206

Masquer les pouces Voir aussi pour SIMATIC S7-200:

Publicité

Automate programmable S7-200 Manuel système
Exemple : Création d'une table
Le programme suivant crée une table de 20 entrées. Le premier emplacement de mémoire de la table contient la longueur
de la table (dans ce cas, 20 entrées). Le deuxième emplacement de mémoire contient le nombre en cours d'entrées dans
la table. Les autres emplacements contiennent les différentes entrées. Une table peut comporter jusqu'à 100 entrées.
Cela n'inclut pas les paramètres définissant la longueur maximale de la table ou le nombre effectif d'entrées (ici VW0 et
VW2). La CPU incrémente ou décrémente automatiquement le nombre effectif d'entrées dans la table (ici VW2) à
chaque commande.
Avant de travailler sur une table, définissez le nombre maximal d'entrées de la table. Sinon, vous ne pouvez pas effectuer
d'entrées dans la table. Veillez aussi à ce que toutes les commandes de lecture et d'écriture soient activées sur front.
L'indice (VW106) doit être défini à 0 avant de commencer une recherche dans la table. Si une occurrence est trouvée,
l'indice sera égal au numéro de l'entrée de table correspondante ; en revanche, en l'absence d'occurrence
correspondante, l'indice sera égal au nombre d'entrées en cours pour la table (VW2).
6
196
NETWORK 1 //Créer une table de 20 entrées en commençant à
//l'emplacement 4.
//1. Au premier cycle, définir la longueur maximale
//
de la table.
LD
SM0.1
MOVW
+20, VW0
NETWORK 2 //Réinitialiser la table avec l'entrée I0.0
//En cas de front montant en I0.0,
//initialiser les emplacements à partir de VW2 à "+0"
.
LD
I0.0
EU
FILL
+0, VW2, 21
NETWORK 3 //Ecrire une valeur dans la table avec l'entrée I0.1
//En cas de front montant en I0.1,
//copier la valeur de l'adresse VW100 dans la table.
LD
I0.1
EU
ATT
VW100, VW0
NETWORK 4 //Lire la première valeur de la table avec l'entrée
I0.2
//Transférer la dernière valeur de la table à
l'adresse
//VW102.
//Cela réduit le nombre d'entrées.
//En cas de front montant en I0.2,
//transférer la dernière valeur de la table dans
VW102
LD
I0.2
EU
LIFO
VW0, VW102
NETWORK 5 //Lire la dernière valeur de la table avec l'entrée I0.3
//Transférer la première valeur de la table à
l'adresse
//VW102.
//Cela réduit le nombre d'entrées.
//En cas de front montant en I0.0,
//transférer la première valeur de la table dans
VW104
LD
I0.3
EU
FIFO
VW0, VW104
NETWORK 6 //Rechercher dans la table la première adresse
ayant une
//valeur de 10.
//1. En cas de front montant en I0.4,
//
réinitialiser le pointeur d'indice.
//2. Rechercher une entrée de table égale à 10.
LD
I0.4
EU
MOVW
+0, VW106
FND=
VW2, +10, VW106

Publicité

loading