Présentation

L’affectation remplace la valeur courante d’une variable à élément unique ou multiple par le résultat de l’évaluation d’une expression.

Une affectation est composée d’une indication de variables à gauche, suivie de l'opérateur d’affectation :=, suivi de l’expression à évaluer.

Les deux variables (côtés gauche et droit de l'opérateur d'affectation) doivent être du même type de données.

Les variables ARRAY font exception. A l'issue de l'activation explicite de l'option correspondante, l'affectation de deux variables ARRAY ayant des longueurs différentes est possible.

Affectation de la valeur d'une variable à une autre variable

Les affectations sont utilisées pour affecter la valeur d’une variable à une autre variable.

L’instruction

A := B ;

est par exemple utilisée pour remplacer la valeur de la variable A par la valeur courante de la variable B. Si A et B ont un type de données élémentaire, la valeur individuelle de B est transmise vers A. Si A et B ont un type de données dérivé, les valeurs de tous les éléments de B sont transmises vers A.

Affectation d'une valeur littérale à une variable

Les affectations sont utilisées pour affecter une valeur littérale à une variable.

L’instruction

C := 25 ;

est par exemple utilisée pour affecter la valeur 25 à la variable C.

Affectation de la valeur d'une opération à une variable

Les affectations sont utilisées pour affecter à une variable une valeur qui est le résultat d’une opération.

L’instruction

X := (A+B-C)*D ;

est par exemple utilisée pour affecter à la variable X le résultat de l’opération (A+B-C)*D.

Affectation de la valeur d'un FFB à une variable

Les affectations sont utilisées pour affecter à une variable une valeur renvoyée par une fonction ou un bloc fonction.

L’instruction

B := MOD(C,A) ;

est par exemple utilisée pour appeler la fonction MOD (modulo) et affecter le résultat du calcul à la variable B.

L’instruction

A := MY_TON.Q ;

est par exemple utilisée pour affecter à la variable A la valeur de la sortie Q du bloc fonction MY_TON (instance du bloc fonction TON). (Il ne s'agit pas d'un appel de bloc fonction) )

Affectations multiples

Les affectations multiples sont une extension de la norme CEI 61131-3 et doivent être activées de manière explicite.

Même à l'issue de l'activation, les affectations multiples ne sont PAS autorisées dans les cas suivants :

  • dans la liste de paramètres d'un appel de bloc fonction

  • dans la liste d'éléments pour l'initialisation de variables structurées

L’instruction

X := Y := Z

est permise.

Les instructions

FB(in1 := 1, In2 := In3 := 2) ;

et

strucVar := (comp1 := 1, comp2 := comp3 := 2) ;

ne sont pas permises.

Affectations entre variables ARRAY et WORD/DWORD.

Les affectations entre variables ARRAY et WORD/DWORD ne sont possibles que si une conversion de types a été effectuée au préalable, par ex. :

%Q3.0:16 := INT_TO_AR_BOOL(%MW20) ;

Les fonctions de conversion suivantes sont disponibles (bibliothèque générale, famille ARRAY) :

  • MOVE_BOOL_AREBOOL

  • MOVE_WORD_ARWORD

  • MOVE_DWORD_ARDWORD

  • MOVE_INT_ARINT

  • MOVE_DINT_ARDINT

  • MOVE_REAL_ARREAL