Esempio 7 - Monitoraggio dei valori limite, isteresi e durata di mantenimento
Compito:
Un valore misurato di un dispositivo deve essere monitorato per rilevare violazioni dei valori limite; devono inoltre essere soppresse le perturbazioni nel valore misurato. Si deve inoltre registrare per quanto tempo il valore limite è stato violato, sia in totale sia per l'ultimo evento.
Soluzione:
$"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() e trigger() possono essere entrambe utilizzate per il monitoraggio dei valori limite, ma funzionano in modo leggermente diverso.
Maggiori dettagli sono riportati nella spiegazione seguente o nella documentazione delle funzioni.
Funzioni utilizzate:
Spiegazione:
-
Math.Trigger_Thresh: Una violazione del valore limite viene rilevata con la funzione threshold. Viene inoltre specificata un'isteresi di-0.1, in modo da sopprimere le piccole perturbazioni nel valore misurato. Per un'ulteriore soppressione delle perturbazioni, il parametrodelayOnè impostato a0.5, così che l'uscita passi atruesolo quando il segnale monitorato ha superato il valore limite per 0,5 secondi. -
Math.Trigger_Trig: La funzione trigger, come alternativa athreshold(), è simile sotto la maggior parte degli aspetti, ma restituisce gli istanti originali di inizio e fine della violazione del valore limite non appena sono soddisfattistableOnostableOff. -
Math.TimeArc_s: Il tempo totale in cui il valore limite è stato violato viene determinato qui mediante un integrale (integrate()) suMath.Trigger_Thresh. Con il parametrostorage: ...il valore viene memorizzato in modo persistente sul dispositivo e indica quindi la durata complessiva dei superamenti del valore limite per l'intero ciclo di vita del dispositivo. -
Math.TimeArcEvent_s: La durata dell'ultima violazione del valore limite viene registrata con la funzionestopwatch(). Il parametro opzionalehold: falsefa sì che a ogni fronte positivo diMath.Trigger_Trigil tempo misurato venga riportato a 0. Con il parametroperiod: falseil metodo di misura della funzione passa dal tempo tra due fronti di salita al tempo in cuiMath.Trigger_Trig == true. Il parametrolatch: falsefa sì che il tempo misurato venga emesso in modo continuo.