SEL

Présentation

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

Exemple en langage IL

LD  TRUE
SEL 3,4   (* IN0 = 3, IN1 =4 *)
ST  Var1  (* result is 4 *)
LD  FALSE
SEL 3,4
ST  Var1  (* result is 3 *)

Exemple en langage ST

Var1:=SEL(TRUE,3,4); (* result is 4 *)

Exemple en langage FBD

Remarque

NOTE : Lorsque 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) :