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});
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ámetrodelayOnse establece en0.5, de modo que la salida solo pasa atruecuando la señal supervisada ha superado el valor límite durante 0,5 segundos. -
Math.Trigger_Trig: la función trigger, como alternativa athreshold(), 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 cumplenstableOnostableOff, 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()) sobreMath.Trigger_Thresh. Con el parámetrostorage: ...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ónstopwatch(). El parámetro opcionalhold: falsehace que, con cada flanco positivo deMath.Trigger_Trig, el tiempo medido se restablezca a 0. Con el parámetroperiod: false, el método de medición de la función cambia del tiempo entre dos flancos ascendentes al tiempo durante el cualMath.Trigger_Trig == true. El parámetrolatch: falsehace que el tiempo medido se emita de forma continua.