Skip to main content

Modificateurs et opérateurs en IL

Tableau 5. Modificateurs

Modificateur

Combiné avec l'opérateur

La description

C

JMP, CAL, RET

La commande n'est exécutée que si le résultat de l'expression précédente est TRUE.

N

JMPC, CALC, RETC

La commande n'est exécutée que si le résultat de l'expression précédente est FALSE.

N

autrement

Négation de l'opérande (pas de l'accumulateur)



Tableau 6. Opérateurs avec les modificateurs possibles

Opérateur

N

Sens

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 l'opérande

ST iErg

S

Définit l'opérande (type BOOL) à TRUE si le contenu de l'accumulateur est TRUE

S bVar1

R

Définit l'opérande (type BOOL) à FALSE si le contenu de l'accumulateur est TRUE

R bVar1

AND

N,(

Au niveau du bit AND de la valeur de l'accumulateur et de l'opérande (négatif)

AND bVar2

OR

N,(

OU au niveau du bit de la valeur de l'accumulateur et de l'opérande (négatif)

OR xVar

XOR

N,(

OU exclusif au niveau du bit de la valeur de l'accumulateur et de l'opérande (négatif)

XOR N,(bVar1,bVar2)

NOT

Négation bit à bit de la valeur de l'accumulateur

ADD

(

Addition de la valeur de l'accumulateur et de l'opérande

Le résultat est écrit dans l'accumulateur.

ADD ivar1

SUB

(

Soustraction de l'opérande de la valeur de l'accumulateur

Le résultat est écrit dans l'accumulateur.

SUB iVar2

MUL

(

Multiplication de la valeur de l'accumulateur et de l'opérande

Le résultat est écrit dans l'accumulateur.

MUL ivar2

DIV

(

Addition de la valeur de l'accumulateur et de l'opérande

Le résultat est écrit dans l'accumulateur.

DIV 44

GT

(

Vérifie si la valeur de l'accumulateur est supérieure à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

GT 23

GE

(

Vérifie si la valeur de l'accumulateur est supérieure ou égale à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

GE iVar2

EQ

(

Vérifie si la valeur de l'accumulateur est égale à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

EQ iVar2

NE

(

Vérifie si la valeur de l'accumulateur n'est pas égale à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

NE iVar1

LE

(

Vérifie si la valeur de l'accumulateur est inférieure ou égale à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

LE 5

LT

(

Vérifiez si la valeur de l'accumulateur est inférieure à la valeur de l'opérande

Le résultat (BOOL) est écrit dans l'accumulateur.

LT cVar1

JMP

CN

Saut inconditionnel (conditionnel) vers l'étiquette de saut spécifiée

JMPN next

CAL

CN

Appel (conditionnel) d'un programme ou d'un bloc fonction (si la valeur de l'accumulateur est TRUE)

CAL prog1

RET

Sortir de la boîte et retourner à la boîte d'appel

RET

RET

C

Si la valeur de l'accumulateur est TRUE: Quittez la boîte et retournez à la boîte d'appel

RETC

RET

CN

Si la valeur de l'accumulateur est FALSE: Quittez la boîte et retournez à la boîte d'appel

RETCN

)

Évaluation de l'opération de réinitialisation



Exemple 9. Exemple
_cds_img_il_example.png


Usage

La description

Exemples

Plusieurs opérandes pour 1 opérateur

. Choix
  • Vous entrez les opérandes dans des lignes consécutives, séparées par des virgules dans la 2ème colonne.

  • Vous répétez l'opérateur dans des lignes consécutives.

Variante 1 :

_cds_img_il_add_multiple_operands_1.png

Variante 2 :

_cds_img_il_add_multiple_operands_2.png

Opérandes complexes

Pour un opérande complexe, vous entrez la parenthèse ouvrante ( dans la première colonne. Vous entrez la parenthèse fermante dans la première colonne d'une ligne séparée après les entrées d'opérandes des lignes suivantes.

Une chaîne est tournée d'un caractère à chaque cycle.

_cds_img_il_complex_oparand.png

Appel de bloc fonctionnel, appel de programme

Colonne 1 : CAL opérateur ou CALC opérateur

Colonne 2 : Nom de l'instance du bloc fonction ou du programme et parenthèse ouvrante (

Si aucun paramètre ne suit, la parenthèse fermante ) est saisi ici.

Lignes à suivre :

Colonne 1 : Nom du paramètre suivi de := pour paramètre d'entrée ou => pour le paramètre de sortie

Colonne 2 : valeur du paramètre suivie d'une virgule , si d'autres paramètres suivent

La parenthèse fermante ) est entré après le dernier paramètre.

En tant que limitation selon la norme CEI, les expressions complexes ne peuvent pas être utilisées ici. Vous devez affecter ces constructions au bloc fonction ou au programme avant l'appel.

_cds_img_il_fb_call1.png

Appel de fonction

Ligne 1 : Colonne 1 : LD

Colonne 2 : Variable d'entrée

Ligne 2 : Colonne 1 : Nom de la fonction Colonne 2 : Autres paramètres d'entrée séparés par une virgule

CODESYS écrit la valeur de retour dans l'accumulateur.

Ligne 3 : Colonne 1 : ST Colonne 2 : Variable dans laquelle la valeur de retour est écrite

_cds_img_il_function_call.png

Appel à l'action

Comme l'appel de bloc fonctionnel ou l'appel de programme.

Le nom de l'action est ajouté au nom de l'instance FB ou du programme.

_cds_img_il_action_call.png

Saut

Colonne 1 : JMP opérateur ou JMPC opérateur

Colonne 2 : Nom du label de saut du réseau de destination

Dans le cas d'un saut inconditionnel, la séquence d'instructions précédente doit se terminer par l'une des commandes suivantes : ST,STN, S, R, CAL, RET, JMP

Dans le cas d'un saut conditionnel, l'exécution du saut dépend de la valeur chargée.

_cds_img_il_jmp.png