Instructions impulsionnelles
5-4
Instructions impulsionnelles
00000
00000
144
d'un opérande dépend de l'instruction utilisée. Il faut introduire les constantes
selon la forme demandée par l'instruction, en BCD ou hexadécimal.
La plupart des instructions sont impulsionnelles ou non impulsionnelles. Les
instructions impulsionnelles se distinguent grâce au symbole @ devant leur
valeur mnémonique.
Les instructions non impulsionnelles sont exécutées à chaque cycle lorsque
leur condition d'exécution est sur ON. Les instructions impulsionnelles sont
exécutées une seule fois après le passage de leur condition d'exécution de OFF
à ON. Si la condition d'exécution n'a pas changé ou est passée de ON à OFF
après le dernier cycle, l'instruction n'est pas exécutée. Les deux exemples ci-
dessous indiquent la fonction de MOV(21) et @MOV(21), instructions utilisées
pour déplacer les données de l'adresse désignée par le premier opérande dans
l'adresse désignée par le deuxième opérande.
Schéma A
Schéma B
Dans le schéma A, la fonction MOV(21) non impulsionnelle déplace le contenu
HR 10 sur DM 0000 lors du cycle avec 00000. Si le temps de cycle est de 80 ms
et 00000 reste sur ON 2,0 secondes, la fonction de mouvement est effectuée 25
fois et seulement la dernière valeur déplacée sur DM 0000 est maintenue.
Dans le schéma B, la fonction @MOV(21) impulsionnelle déplace le contenu
HR 10 sur DM 0000 une seule fois après le passage sur ON de 00000. Même
lorsque 00000 reste sur ON 2,0 secondes avec le même temps de cycle de 80
ms, la fonction de mouvement est exécutée une seule fois lors du premier cycle
au cours duquel 00000 passe de OFF à ON. Puisque le contenu HR 10 a changé
pendant les 2 secondes avec 00000 sur ON, le contenu DM 0000 final, après les
2 secondes, est différent selon l'emploi de MOV(21) ou @MOV(21).
Tous les opérandes, les symboles en schéma contact et les autres caractéristi-
ques d'instruction sont identiques que l'instruction soit employée sous forme
impulsionnelle ou non impulsionnelle. Lors de la saisie, on utilise les mêmes co-
des de fonction, mais on saisit NOT après le code de fonction pour indiquer qu'il
s'agit d'une instruction impulsionnelle. La plupart des instructions sont
impulsionnelles.
Voir le par. 5-10 INTERLOCK et INTERLOCK CLEAR – IL(02) et IL(03) pour
connaître les effets des verrouillages sur les instructions impulsionnelles.
Même les API C200HX/HG/HE prévoient des instructions impulsionnelles:
DIFU(13) et DIFD(14). DIFU(13) fonctionne comme une instruction
impulsionnelle, mais sert à passer un bit sur ON dans un cycle. Même DIFD(14)
passe un bit sur ON dans un cycle mais agit lorsque la condition d'exécution
passe de ON à OFF. Pour plus d'informations, voir le par. 5-9-2 DIFFERENTIA-
TE UP et DOWN - DIFU(13) et DIFD(14).
Rem.: Ne pas utiliser SR 25313 et SR 25315 dans les instructions impulsionnelles. Ces
bits ne changent jamais d'état et ne déclenchent pas ce type d'instructions.
Adresse
Instruction
MOV(21)
00000
LD
HR 10
00001
MOV(21)
DM 0000
Adresse
Instruction
@MOV(21)
00000
LD
HR 10
00001
@MOV(21)
DM 0000
Chapitre 5-4
Opérande
00000
HR
10
DM
0000
Opérande
00000
HR
10
DM
0000