La version V1.1 d' EcoStruxure Machine Expert ne prend pas en charge les contrôleurs M258, LMC058 et LMC078.

Modificateurs et opérateurs dans IL

Modificateurs

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.

Opérateurs

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

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

Utilisation des opérandes

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
ADD    3,
       4,
       6
ST     iVAR

oOption 2 :

LD     2
ADD    3
ADD    4
ADD    6
ST     iVAR

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
RIGHT(  stRotate
LEN
SUB
     1
)
CONCAT(
 stRotate,
LEFT    1
)
ST
      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(
     iCounter:=1,
   iDecrement:=1000,
       wError:=wResult)

LD             POUToCall.bError,
ST             bErr

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
GeomAverage 25
ST          Ave

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
JMPC          Label1