SEL
Opérateur de sélection binaire IEC.
G détermine si IN0 ou IN1 est affecté à OUT.
OUT := SEL(G, IN0, IN1)
signifie :
OUT := IN0;
si G
= FALSE
OUT := IN1;
si G
= TRUE
Types de données autorisés :
IN0
, IN1
et OUT
peuvent être de n'importe quel type de données identique. Vérifiez que les variables utilisées dans ces emplacements présentent un type de données identique, notamment lorsque vous utilisez des types de données utilisateur. Le compilateur vérifie l'identité des types et renvoie des erreurs de compilation. L'affectation d'instances de bloc fonction à des variables d'interface n'est pas prise en charge.
G
: BOOL
LD TRUE
SEL 3,4 (* IN0 = 3, IN1 =4 *)
ST Var1 (* result is 4 *)
LD FALSE
SEL 3,4
ST Var1 (* result is 3 *)
G
a la valeur TRUE, EcoStruxure Machine Expert ne calcule pas une expression textuelle qui précède IN0
.
Lorsque G
a la valeur FALSE, EcoStruxure Machine Expert ne calcule pas une expression textuelle qui précède IN1
.
Dans les langages de programmation graphiques où une Zone, un Saut, un Retour, un Branchement ou une Détection de front est connecté à IN0
ou IN1
, ces instructions sont toujours calculées, quelle que soit l'entrée G
. Ceci peut avoir un impact sur le volume de code exécuté et donc sur la performance. Vérifiez dans votre code si les expressions connectées aux entrées IN0
et IN1
doivent être exécutées systématiquement ou uniquement en fonction de l'entrée G
.
Exemple 1 : MyFunc
est directement connecté à l'entrée IN1
. MyFunc
n'est exécuté que si bSelect
a la valeur FALSE au niveau de l'entrée G
:
Exemple 2 : MyFunc
est connecté via un lien à l'entrée IN1
. MyFunc
est toujours exécuté (que bSelect
ait la valeur TRUE ou FALSE au niveau de l'entrée G
) :