# Configurazione dei Report

Plexus Cloud (opens new window) permette di estrarre e produrre CSV o PDF files partendo dai dati raccolti dal sistema o da una combinazione di essi. Questo risulta molto utile per poter tener traccia dei processi, importando i valori in fogli di calcolo e quindi visualizzare grafici e grandezze personalizzate.

report_builder
Report builder example

Per esempio, se si hanno posizionato dei sensori di temperatura in tutto l'impianto, si può facilmente calcolare la media delle temperature delle ultime 10 ore.

Questa pagina mostra una lista di report definiti dall'utente, ognuno descritto da:

  • Name, nome (un'etichetta);
  • Description, descrizione, opzionale;
  • Status, stato del report (bozza o pubblicato);
  • Reference, blackbox o mixed chart associato, campo obbligatorio
report_list
Report list

Un report ha bisogno di essere composto da almeno una o più "sections" prima di essere pubblicato, quindi di essere visibile nella pagina blackbox per essere generato.

TIP

Una volta che hai finito di creare le sezioni e vuoi iniziare ad osservare i risultati, è necessario premere il pulsante di "info" nella lista dei report e selezionare Publish Report.

report_info
Report informations, status switch

Uno speciale pulsante a tendina nella pagina Blackbox, "Reports", è abilitato qualora uno o più report (associati allo stesso device di cui stai visualizzando i grafici) possiedano lo stato di published.

report_dropdown
Report dropdown button is shown

Una finestra è visualizzata dopo che uno degli elementi della tendina viene premuto. A questo punto vengono mostrate le informazioni del report.

report_modal
Report modal with a recap

Quando il bottone GO viene premuto, gli output delle sezioni del report vengono calcolati e riportati nello stesso ordine in cui li hai definiti.

I dati possono essere esportati in formato CSV o PDF a piacimento.

report_evaluated
Evaluated report popup

# Sections

Dopo aver creato il report, in cima alla pagina è possibile leggere tutta la lista di variabili, strettamente legate al device in questione, da cui si possono estrapolare i valori utili.

Ricorda che il primo step necessario per la creazione del tuo report personale è la sincronizzazione delle variabili desiderate tra PlexusLAB e il Cloud,collegandoli e creando la blackbox su PlexusLAB.

Le sezioni definite dall'utente sono mostrate sotto la lista delle variabili , ognuna delle quali descritta da:

  • Section name, nome (etichetta);
  • Start/End, Intervallo temporale di valutazione;
  • Outputs, Uno o più output
report_section_list
Report section list

Comprendere il funzionamento del time range è fondamentale per la creazione di report complessi, è però più semplice spiegare prima la documentazione sugli output.

# Outputs

Una "section" deve comprendere uno o più output, i quali appariranno come risultati nel report.

Ognuno di questi valori è descritto da:

  • Nome (etichetta);
  • Unità di misura, opzionale;
  • Formula di definizione, obbligatoria;
  • Key, è un'etichetta aggiuntiva che permette di ri-utilizzare l'output in formule successive del report, opzionale;
  • Visibilità, puoi nascondere un output dai risultati del report, specialmente se si desidera utilizzare il suo valore a solo scopo di calcolare un'altra grandezza
report_section_list_outputs
Section output definitions

Il campo "Formula" è provvisto di autocompletamento, in modo da aiutare ad inserire correttamente le variabili in essa.

L'autocompletamento aiuta a scrivere la formula con una sintassi adeguata, senza errori. Vedere il prossimo paragrafo per maggiori dettagli.

# Formule e variabili

Il metodo esatto di includere una "variable key" in una formula è quello di racchiuderla all'interno di parentesi graffe precedute da dollaro, in questo modo: ${var_name}; l'autocompletamento, una volta selezionata una delle variabili proposte, la racchiude nel modo corretto.

autocomplete_feature
Autocomplete feature example

Ogni singola variabile misurata per il "device" viene riportata in un set di key differenti selezionabili all'interno della formula.

Per esempio, se consideriamo la variabile misurata temp1, le possibili key ottenute sono le seguenti (i valori sono sempre da considerarsi rispetto all'intervallo temporale specifico della sezione):

Key NZ Info
temp1.first_value Il primo valore di temp1 (preso proprio all'inizio del time range in questione)
temp1.last_value L'ultimo valore di temp1 (preso proprio alla fine del time range in questione)
temp1.avg * Valor medio di temp1
temp1.sum * Somma di tutti i valori di temp1. Notare che PlexusLAB registra valori ogni secondo, quindi otterrai la somma dei valori per secondo in temp1.sum
temp1.on_off.on_time Restituisce il numero di volte in cui il valore temp1 è maggiore di 0. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.on_off.on_time_percent Restituisce la percentuale di tempo in cui il valore temp1 è maggiore di 0 rispetto al totale. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.on_off.off_time Restituisce il numero di volte in cui il valore temp1 è minore di 0. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.on_off.off_time_percent Restituisce la percentuale di tempo in cui il valore temp1 è minore di 0 rispetto al totale. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.on_off.off_on_variations Numero di volte in cui la variabile temp1 è cambiata da un valore 0 a uno maggiore di esso. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.on_off.on_off_variations Numero di volte in cui la variabile temp1 è cambiata da un valore maggiore di 0 ad uno nullo. Principalmente utile per pin digitali di ingresso (On/Off switches)
temp1.max.value * Valore massimo registrato di temp1
temp1.max.utc * Tempo in formato UTC in cui è stato registrato il valore massimo temp1
temp1.max.human * Stringa che rappresenta l'istante temporale in cui è stato letto il max di temp1, in formato leggibile
temp1.min.value * Valore minimo registrato di temp1
temp1.min.utc * Tempo in formato UTC in cui è stato registrato il valore minimo temp1
temp1.min.human * Stringa che rappresenta l'istante temporale in cui è stato letto il min di temp1, in formato leggibile

TIP

Keys identificate con NZ permettono di escludere i valori uguali a 0.

Questo potrebbe essere utile nei casi in cui PlexuLAB non ha fornito risposta per uno specifico intervallo temporale.

La versione _nozero delle keys ti permette di ignorare i valori nulli e di calcolare, per esempio, la media di temp1; ciò risulta molto utile quando si sta utilizzando un sensore di temperatura in un ambiente che si trova in un range di 20°C - 40°C e si ottiene, per errore, un valore 0 di temp1.min.value.

# User-defined keys

Se si assegna ad un output una sua specifica key, questa verrà riconosciuta come una key standard, cioè sarà proposta dall'autocompletamento e su di essa potranno essere applicate le key precedenti per il calcolo di valori specifici (minimo, massimo, media ecc..).

TIP

Una user-defined key può essere letta più volte da output differenti e sarà aggiornata ogni volta che viene ricalcolata.

Per esempio, si potrebbe definire K1 per il primo output della prima sezione, successivamente utilizzare K1 nella formula dell'output successivo. È quindi possibile utilizzare la key K1 per il terzo output (definito con una formula diversa) e da quel momento K1 sarà associata univocamente ad esso.

# Time range

Ogni singola sezione contiene informazioni riguardanti il relativo time range specificato perchè, ovviamente, ogni report deve avere un inizio e una fine. Di default, questi sono impostati a chart_start e chart_end rispettivamente, ma cosa significa davvero?

report_section_list_range
Section time range definition

Ogni creazione di un report inizia dalla pagina della blackbox, di conseguenza i punti chart_start e chart_end sono il primo e l'ultimo del grafico che stai analizzando. Questa possibilità permetterebbe già da sola di creare innumerevoli tipi di report...

...ma, quando è stata sviluppata l'interfaccia dei report per Plexus Cloud, si voleva creare uno strumento potente e personalizzabile. Questo è il motivo per cui si è deciso di dare l'opportunità di creare sezioni, output, user-defined key e, in particolare, time range modificabili, così come descritto nei seguenti esempi.

# Esempio di time range semplice

Se si definisce una sezione con chart_start e chart_end

simple_report
Simple report definition

quando si procede con il calcolo dei risultati, l'intervallo temporale è acquisito da grafico nel seguente modo:

  • chart_start => primo punto del grafico = 26 July 2021 @ 15:43:32
  • chart_end => ultimo punto del grafico = 2 August 2021 @ 15:43:32
simple_report_evaluated
Simple report evaluated

TIP

È possibile generare un report usando anche variabili che non sono mostrate nel grafico in analisi, appartengono comunque al device selezionato ma si trovano su blackbox differenti.

# Esempio di time range complesso

Scegliendo dei limiti del time range diversi da inizio e fine grafico, i risultati saranno valutati su quel specifico intervallo.

È importante ricordare che l'intero intervallo del grafico viene sempre preso in considerazione perchè la scelta di estremi differenti comporta la valutazione un sotto-intervallo di chart_start e chart_end.

A questo punto, le variabili saranno riportate in key che verranno valutate sul sotto-intervallo specificato.

Per esempio, se si considerano la variabile weight, essa sarà estesa in tal modo:

Key NZ Info
weight.max.ts * Timestamp relativo all'istante in cui è stato rilevato il max di weight
weight.min.ts * Timestamp relativo all'istante in cui è stato rilevato il min di weight
complex_report
Complex report definition

Riprendendo l'esempio di "time range semplice" e confrontandolo con quello "complesso" notiamo:

  • Prima sezione, "Main section":

    • chart_start => primo punto del grafico = 27 July 2021 @ 09:40:55
    • chart_end => ultimo punto del grafico = 30 July 2021 @ 10:19:44
  • Seconda sezione, "Unloading phase":

    • weight.max.ts => 27 July 2021 circa 14:30
    • weight.min.ts => 30 July 2021, ultima parte del grafico
complex_report_evaluated
Complex report evaluated

Come si evince dai risultati, il valore delle temperature calcolate nelle due sezioni differiscono seppur le formule siano le medesime.

Last Updated: 2/2/2024, 16:28:31