Saltar al contenido principal

Ejemplo 7 - Supervisión de valores límite, histéresis y duración de mantenimiento

Tarea:​

Se debe supervisar un valor medido de un dispositivo para detectar incumplimientos de valores límite, y también se deben suprimir las perturbaciones en el valor medido. Además, se debe registrar durante cuánto tiempo se ha incumplido el valor límite, tanto en total como para el último evento.

Solución:​

$"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});
información

threshold() y trigger() pueden utilizarse ambas para la supervisión de valores límite, pero funcionan de forma ligeramente distinta. Encontrará más detalles en la explicación siguiente o en la documentación de las funciones.

Funciones utilizadas:​

Explicación:​

  • Math.Trigger_Thresh: con ayuda de la función threshold se detecta un incumplimiento del valor límite. Además se especifica una histéresis de -0.1, de modo que se suprimen las pequeñas perturbaciones del valor medido. Para una supresión adicional de perturbaciones, el parámetro delayOn se establece en 0.5, de modo que la salida solo pasa a true cuando la señal supervisada ha superado el valor límite durante 0,5 segundos.

  • Math.Trigger_Trig: la función trigger, como alternativa a threshold(), se parece en la mayoría de los aspectos, pero devuelve los tiempos originales de inicio y fin del incumplimiento del valor límite en cuanto se cumplen stableOn o stableOff, respectivamente.

  • Math.TimeArc_s: el tiempo total durante el cual se ha incumplido el valor límite se determina aquí con ayuda de una integral (integrate()) sobre Math.Trigger_Thresh. Con el parámetro storage: ... el valor se guarda de forma persistente en el dispositivo y, por tanto, indica la duración total del incumplimiento del valor límite durante el ciclo de vida del dispositivo.

  • Math.TimeArcEvent_s: la duración del último incumplimiento del valor límite se registra con la función stopwatch(). El parámetro opcional hold: false hace que, con cada flanco positivo de Math.Trigger_Trig, el tiempo medido se restablezca a 0. Con el parámetro period: false, el método de medición de la función cambia del tiempo entre dos flancos ascendentes al tiempo durante el cual Math.Trigger_Trig == true. El parámetro latch: false hace que el tiempo medido se emita de forma continua.