Aller au contenu principal

Exemple 7 - Surveillance de valeur limite, hystérésis et durée de maintien

Tâche :​

Une valeur mesurée d'un appareil doit être surveillée afin de détecter les dépassements de valeur limite, et les perturbations de la valeur mesurée doivent également être supprimées. Il faut en outre enregistrer la durée pendant laquelle la valeur limite a été dépassée, au total et pour le dernier événement.

Solution :​

$"Math.Trigger_Thresh" = threshold($'FuncGen.Sinus', 0.0, -0.1, {delayOn: 0.5});
$"Math.Trigger_Trig" = trigger($'FuncGen.Sinus', 0.0, -0.1, {stableOn: 0.5}); // alternative Funktion

// Gesamt-Zeit aufsummieren wenn Grenzwert verletzt
$"Math.TimeArc_s" = integrate($"Math.Trigger_Thresh", {storage: 'T_Arcs'});

// Dauer der letzten Grenzwertverletzung
$"Math.TimeArcEvent_s" = stopwatch($"Math.Trigger_Trig", {latch: false, period: false, hold: false});
info

threshold() et trigger() peuvent toutes deux être utilisées pour la surveillance de valeur limite, mais fonctionnent de manière légèrement différente. Vous trouverez plus de détails dans l'explication ci-dessous ou dans la documentation des fonctions.

Fonctions utilisées :​

Explication :​

  • Math.Trigger_Thresh : la fonction threshold permet de détecter un dépassement de valeur limite. Une hystérésis de -0.1 est également spécifiée, de sorte que les petites perturbations de la valeur mesurée sont supprimées. Pour une suppression supplémentaire des perturbations, le paramètre delayOn est réglé sur 0.5, de sorte que la sortie ne passe à true que lorsque le signal surveillé a dépassé la valeur limite pendant 0,5 seconde.

  • Math.Trigger_Trig : la fonction trigger, alternative à threshold(), lui ressemble sur la plupart des aspects, mais renvoie les instants de début et de fin d'origine du dépassement de valeur limite dès que stableOn ou stableOff sont satisfaits.

  • Math.TimeArc_s : la durée totale pendant laquelle la valeur limite a été dépassée est déterminée ici au moyen d'une intégrale (integrate()) sur Math.Trigger_Thresh. Le paramètre storage: ... permet de stocker la valeur de manière persistante sur l'appareil ; elle indique ainsi la durée totale des dépassements de valeur limite sur le cycle de vie de l'appareil.

  • Math.TimeArcEvent_s : la durée du dernier dépassement de valeur limite est enregistrée au moyen de la fonction stopwatch(). Le paramètre facultatif hold: false fait que, à chaque front montant de Math.Trigger_Trig, le temps mesuré est remis à 0. Le paramètre period: false fait passer la méthode de mesure de la fonction du temps entre deux fronts montants au temps pendant lequel Math.Trigger_Trig == true. Le paramètre latch: false fait que le temps mesuré est fourni en continu.