Passa al contenuto principale

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});
informazioni

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 parametro delayOn è impostato a 0.5, così che l'uscita passi a true solo quando il segnale monitorato ha superato il valore limite per 0,5 secondi.

  • Math.Trigger_Trig: La funzione trigger, come alternativa a threshold(), è simile sotto la maggior parte degli aspetti, ma restituisce gli istanti originali di inizio e fine della violazione del valore limite non appena sono soddisfatti stableOn o stableOff.

  • Math.TimeArc_s: Il tempo totale in cui il valore limite è stato violato viene determinato qui mediante un integrale (integrate()) su Math.Trigger_Thresh. Con il parametro storage: ... 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 funzione stopwatch(). Il parametro opzionale hold: false fa sì che a ogni fronte positivo di Math.Trigger_Trig il tempo misurato venga riportato a 0. Con il parametro period: false il metodo di misura della funzione passa dal tempo tra due fronti di salita al tempo in cui Math.Trigger_Trig == true. Il parametro latch: false fa sì che il tempo misurato venga emesso in modo continuo.