Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

IF … THEN … ELSEIF … ELSE … ENDIF

  • Last UpdatedNov 13, 2023
  • 2 minute read

IF-THEN-ELSE-ENDIF exécute plusieurs instructions en fonction de l'état d'une expression. La syntaxes est la suivante :

IF <Boolean_expression> THEN

[instructions];

[ { ELSEIF

[instructions] } ];

[ ELSE

[instructions] ];

ENDIF;

Où expression_Booleenne est une expression pouvant s'évaluer comme un booléen.

En fonction du type de données renvoyé par l'expression, l'expression est évaluée comme ayant un état vrai ou faux conformément au tableau suivant :

Type de données

Ëvaluation

Boolean, Discrete

Utilisation directe (pas d'évaluation nécessaire).

Integer

Une valeur = 0 est évaluée fausse.
Une valeur != 0 est évaluée vraie.

Float, Real

Une valeur = 0 est évaluée fausse.
Une valeur != 0 est évaluée vraie.

Double

Une valeur = 0 est évaluée fausse.
Une valeur != 0 est évaluée vraie.

String, Message

Non évaluable. L'utilisation d'une expression qui renvoie un type chaîne dans expression_Booleenne génère une erreur de validation du script.

Time

Non évaluable. L'utilisation d'une expression qui renvoie un type Time dans expression_Booleenne génère une erreur de validation du script.

ElapsedTime

Non évaluable. L'utilisation d'une expression qui renvoie un type ElapsedTime (temps écoulé) dans expression_Booleenne génère une erreur de validation du script.

Object

Utilisation d'une expression renvoyant un type Object. La validation réussit mais pendant l'exploitation, l'objet est converti au type Boolean. Si le type n'est pas convertible à Boolean, alors une exception d'exécution est déclenchée.

Le premier bloc d'instructions est exécuté si expression_Booleenne est évalué à True. Optionnellement, un second bloc d'instructions peut être défini après le mot-clé ELSE. Ce bloc est exécuté si expression_Booleenne est évalué à False.

Pour décider entre plusieurs alternatives, une clause ELSEIF facultative peut être utilisée aussi souvent que nécessaire. La clause ELSEIF permet de simuler les instructions « switch. » existant dans d'autres langages de programmation. Par exemple :

IF valeur == 0 Then

Message = "Valeur vaut zéro";

ELSEIF valeur > 0 Then

Message = "Value is positive";
ELSEIF value < 0 Then

Message = "Valeur négative";

ELSE

{Par défaut. Ne se produit jamais dans cet exemple};

ENDIF;

L'approche suivante imbrique un seconde instruction IF à l'intérieur de la précédente et nécessite une clause ENDIF supplémentaire :

IF (X1 == 1) THEN

X1 = 5;

{ ELSEIF <X1 == 2> THEN

X1 = 10;

ELSEIF X1 == 3 THEN

X1 = 20 ;

ELSEIF X1 == 4 THEN

X1 = 30 };

IF X1 == 99 THEN

X1 = 0;

ENDIF;

ENDIF;

Voir Scripts d'exemple pour d'autres idées d'utilisation de ce type de structure de contrôle.