Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Gestion Timeout dans TestStand

Bonjour,

 

J'utilise TestStand et un driver C# afin d'effectuer différentes sortes de mesures avec un multimètre de table (Vdc ou Vac). 

J'ai effectuer une boucle Do While afin de détecter un peak de tension (ici 40V, voir image ci-dessous)

Le problème c'est que j'aimerais ajouter un Timeout de 14s afin de générer un failed et de sortir de la boucle si je ne détecte pas ce peak de 40V au bout de ces 14s.

Comment fait-on dans TestStand afin d'ajouter ce Timeout ?

Flo67000_0-1686553543780.png

 

D'avance merci beaucoup,

Cdt,

0 Compliments
Message 1 sur 2
755 Visites

Bonjour,

 

En terme d'algorithme, il va falloir se pencher sur le 'ElapsedTime'. Ce temps écoulé va s'appuyer sur une référence de temps, à stocker dans Locals.StartTime par exemple, et que l'on peut récupérer à l'aide du Statement suivant :

 

Locals.StartTime =  Seconds()

 

Ensuite, il faudra évaluer à chaque itération si le temps maximal alloué pour l'opération est écoulé. Différentes stratégies sont envisageables, avec soit un flag (Locals.Continue) évalué après l'action sur le driver, soit directement l'évaluation du temps écoulé versus le timeout dans la condition de la boucle.

 

Si on s'appuie sur une variable 'explicite' (ce qui simplifiera la relecture du code dans deux mois ou par par un collègue), on pourrait avoir le Statement suivant :

Locals.Continue = Seconds() - Locals.StartTime < Parameters.Timeout

 

...en considérant que la valeur du timeout est passé en paramètre de la séquence. Et au quel cas, la condition de la boucle DoWhile devient quelque chose du genre, combinant le fait de continuer si la mesure est inférieure à 40V et que le timeout n'est pas atteint - et que donc on continue :

 

Parameters.MeasureDMM<40 && Locals.Continue

 

Le Statement d'évaluation du flag Locals.Continue se ferait à priori après le step du driver. Avec le DoWhile, on exécute d'abord de contenu de la boucle avant d'évaluer si la prochaine itération doit être faite... ça devrait coller ?

 

Cordialement,

Message 2 sur 2
666 Visites