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 et qualité de l’attribut

IF … THEN … ELSEIF … ELSE … ENDIF et qualité de l’attribut

  • Last UpdatedSep 24, 2024
  • 1 minute read

Quand une valeur d'attribut est copiée dans un autre attribut de même type, l'indicateur de qualité est également copié. Ceci est spécialement important pour travailler avec des attributs d'E/S. Par exemple, les deux instructions suivantes renseignent à la fois la valeur et la qualité :

me.Attr2 = me.Attr1;

me.Attr2.Value = me.Attr1.Value;

S'il ne faut copier que la valeur et l'attribut possède une qualité mauvaise, il est possible d'utiliser une variable intermédiaire pour stocker la valeur. Par exemple :

Dim temp as Integer;

temp = me.Attr1;

me.Attr2 = temp;

En cas de comparaison telle que Attr1 <> Attr2, si l'un des attributs possède une qualité mauvaise, alors les instructions dans le bloc de contrôle IF ne sont pas exécutées. Par exemple, supposons que l'attribut Attr1 a une qualité mauvaise :

if me.Attr1<> me.Attr2 then

me.Attr2 = me.Attr1;

endif;

Dans ce script, l'instruction me.Attr2 = me.Attr1 n'est pas exécutée parce que Attr1 a une qualité mauvaise et la comparaison d'une valeur ayant une qualité mauvaise avec une autre valeur de qualité bonne n'est pas définie, et n'est pas possible.

L'approche recommandée est de vérifier d'abord la qualité de Attr1, comme dans l'exemple suivant :

if(IsBad(me.Attr1)) then

LogMessage("Mauvaise qualité de Attr1, sa valeur n'est pas copiée dans Attr2");

else

if me.Attr1<> me.Attr2 then

me.AttrA2 = me.Attr1;

endif;

endif;

Une méthode alternative de vérification de la qualité est d'utiliser l'opérateur "==":

if Me.Attr1 == TRUE then

Ou bien, d'utiliser la propriété « Value » dans l'instruction IF THEN simplifiée :

if Me.Attr1.Value then

Vos scripts s'exécuteront correctement si vous vérifiez la qualité des données en utilisant l'une des méthodes ci-dessus.