Modificateurs et opérateurs dans IL
Vous pouvez utiliser les modificateurs suivants dans Liste d'instructions.
C |
avec JMP, CAL, RET: |
L'instruction sera uniquement exécutée si le résultat de l'expression précédente est VRAI. |
N |
avec JMPC, CALC, RETC: |
L'instruction sera uniquement exécutée si le résultat de l'expression précédente est FAUX. |
N |
avec des opérateurs, selon le tableau Opérateurs ci-dessous (N dans la colonne Modificateurs) |
Négation de l'opérande (et non de l'accumulateur). |
( |
avec des opérateurs, selon le tableau Opérateurs ci-dessous (( [parenthèse gauche] dans la colonne Modificateurs) |
Réservé aux opérandes complexes. Pour plus d'informations, consultez la liste des cas d'utilisation des opérandes complexes. |
NOTE : en général, il est déconseillé d'utiliser l'instruction CALC (/RETC/JMPC) juste après un opérateur STN, S ou R, car elle modifie arbitrairement la valeur de l'accumulateur, ce qui peut entraîner des erreurs de programmation difficiles à localiser.
Le tableau indique les opérateurs pouvant être utilisés en combinaison avec les modificateurs spécifiés.
L'accumulateur stocke la valeur actuelle qui résulte de l'opération précédente.
Opérateur |
Modificateurs |
Signification |
Exemple |
---|---|---|---|
LD |
N |
Charge la valeur (négative) de l'opérande dans l'accumulateur. |
LD iVar |
ST |
N |
Stocke le contenu (négatif) de l'accumulateur dans la variable d'opérande. |
ST iErg |
S |
– |
Définit l'opérande (type BOOL) sur TRUE lorsque le contenu de l'accumulateur est TRUE. |
S bVar1 |
R |
– |
Définit l'opérande (type BOOL) sur FALSE lorsque le contenu de l'accumulateur est TRUE. |
R bVar1 |
AND |
N,( |
Opération AND au niveau du bit de l'accumulateur et de l'opérande (négatif). |
AND bVar2 |
OR |
N,( |
Opération OR au niveau du bit de l'accumulateur et de l'opérande (négatif). |
OR xVar |
XOR |
N,( |
Opération OR exclusive au niveau du bit de l'accumulateur et de l'opérande (négatif). |
XOR N, (bVar1,bVar2) |
NOT |
– |
Négation au niveau du bit du contenu de l'accumulateur. |
– |
ADD |
( |
Ajout de l'accumulateur et de l'opérande ; le résultat est copié dans l'accumulateur. |
ADD iVar1 |
SUB |
( |
Soustraction de l'accumulateur et de l'opérande ; le résultat est copié dans l'accumulateur. |
SUB iVar2 |
MUL |
( |
Multiplication de l'accumulateur et de l'opérande ; le résultat est copié dans l'accumulateur. |
MUL iVar2 |
DIV |
( |
Division de l'accumulateur et de l'opérande ; le résultat est copié dans l'accumulateur. |
DIV 44 |
GT |
( |
Vérifie si l'accumulateur est supérieur à l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; > |
GT 23 |
GE |
( |
Vérifie si l'accumulateur est supérieur ou égal à l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; >= |
GE iVar2 |
EQ |
( |
Vérifie si l'accumulateur est égal à l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; = |
EQ iVar2 |
NE |
( |
Vérifie si l'accumulateur est différent de l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; <> |
NE iVar1 |
LE |
( |
Vérifie si l'accumulateur est inférieur ou égal à l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; <= |
LE 5 |
LT |
( |
Vérifie si l'accumulateur est inférieur à l'opérande ; le résultat (BOOL) est copié dans l'accumulateur ; < |
LT cVar1 |
JMP |
C, CN |
Saut non conditionnel (conditionnel) vers l'étiquette oJMP = saut non conditionnel oJMPC = saut conditionnel si l'accumulateur est TRUE oJMPCN = saut conditionnel si l'accumulateur est FALSE |
JMP next |
CAL |
C, CN |
Appel non conditionnel (conditionnel) de PROGRAM ou FUNCTION_BLOCK oCAL = appel non conditionnel oCALC = appel conditionnel si l'accumulateur est TRUE oCALCN = appel conditionnel si l'accumulateur est FALSE |
CAL prog1 |
RET |
C, CN |
Retour non conditionnel (conditionnel) du POU et saut en arrière vers le POU appelant oRET = retour non conditionnel oRETC = retour conditionnel si l'accumulateur est TRUE oRETCN = retour conditionnel si l'accumulateur est FALSE |
RET |
) |
– |
Evaluer l'opération différée |
– |
Voir aussi Opérateurs IEC et Utiliser l'éditeur IL pour savoir comment utiliser et traiter les opérandes multiples, les opérandes complexes, les appels de fonction/méthode/bloc fonction/programme/action et les sauts.
Exemple de programme IL utilisant des modificateurs :
LD TRUE load TRUE to accumulator
ANDN bVar1 execute AND with negative value of bVar1
JMPC m1 if accum. is TRUE, jump to label "m1"
LDN bVar2 store negated value of bVar2...
ST bRes ... in bRes
___________________________________________________________
m1:
LD bVar2 store value of bVar2...
ST bRes ... in bRes
Le tableau suivant répertorie les cas d'utilisation des opérandes :
Cas d'utilisation |
Description |
Exemples |
---|---|---|
Plusieurs opérandes pour un opérateur |
Options oEntrez les opérandes sur des lignes consécutives, en les séparant par une virgule dans la 2e colonne. oRépétez l'opérateur sur des lignes consécutives. |
oOption 1 : LD 2 oOption 2 : LD 2 |
Opérandes complexes |
Entrez la parenthèse gauche ( dans la première colonne. Entrez la parenthèse droite dans la première colonne sur une ligne distincte, suivie des entrées d'opérande sur les lignes suivantes. |
Rotation d'un caractère dans une chaîne à chaque cycle : LD stRotate |
Appel de bloc fonction ou de programme |
Ligne 1 : oColonne 1 : Opérateur CAL ou CALC oColonne 2 : Nom de l'instance de bloc fonction ou du programme et parenthèse gauche (. Si aucun paramètre ne vient ensuite, entrez ici la parenthèse droite ). Lignes suivantes : oColonne 1 : Nom du paramètre suivi de : o:= pour les paramètres d'entrée o=> pour les paramètres de sortie oColonne 2 : Valeur du paramètre, suivie d'une virgule , si d'autres paramètres viennent ensuite. Entrez la parenthèse droite ) après le dernier paramètre. Conformément à la norme IEC, les expressions complexes standard sont interdites ici. Affectez ces constructions au bloc fonction ou au programme avant de l'appeler. |
CAL POUToCall( |
Appel de fonction |
Ligne 1 : oColonne 1 : LD oColonne 2 : Variable d'entrée Ligne 2 : oColonne 1 : Nom de la fonction oColonne 2 : Autres paramètres d'entrée, séparés par une virgule La valeur renvoyée est écrite dans l'accumulateur. Ligne 3 : oColonne 1 : ST oColonne 2 : Variable dans laquelle est écrite la valeur renvoyée |
LD X7 |
Appel d'action |
Procédure similaire à celle d'un appel de bloc fonction ou de programme. Le nom de l'action est ajouté au nom du programme ou de l'instance de bloc fonction. |
CAL POU1.ResetAction |
Saut |
oColonne 1 : Opérateur JMP ou JMPC oColonne 2 : Nom de l'étiquette de saut du réseau de destination oSaut non conditionnel : La séquence d'instructions précédente doit se terminer par l'une des commandes suivantes : oST oSTN oS oR oCAL oRET oJMP oSaut conditionnel : L'exécution du saut dépend de la valeur chargée. |
LD BVar1 |