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