Gestione dei calcoli
Maximo® Monitor fornisce una serie di funzioni standard, che possono essere selezionate e applicate ai dati come metriche da un catalogo di funzioni.
Se si desidera applicare diversi calcoli ai propri dati, è possibile creare funzioni personalizzate. Per aggiungere un livello di complessità, è anche possibile applicare i calcoli della metrica ai dati derivati da un precedente calcolo della metrica. Maximo Monitor esegue una pipeline di funzioni per consentire questa forma di accatastamento dei calcoli.
In Maximo Monitor 8.10 e successive, le metriche dei dati in streaming supportano funzioni personalizzate solo per i modelli ONNX.
In Maximo Monitor 8.9, le metriche dei dati in streaming non supportano le funzioni personalizzate.
Utilizzo dei panda
Prima di scrivere espressioni e funzioni personalizzate, acquisire familiarità con le strutture di dati, le operazioni e la sintassi nei panda. Pandas è costruito su NumPy. Molte delle funzioni in Maximo Monitor incorporano gli array di NumPy. La libreria pandas fornisce strutture di dati, come DataFrames e series, per la manipolazione di dati numerici e di serie temporali. Panda fornisce anche diversi metodi predefiniti che è possibile utilizzare nelle proprie espressioni e funzioni. Per ulteriori informazioni, consultare la documentazione di pandas.
Utilizzo delle funzioni IoT
Una serie di funzioni integrate, di esempio e di base sono disponibili in un pacchetto allegato, IoT Functions, in GitHub. È possibile ricavare le funzioni personalizzate dalle funzioni in questo pacchetto. Esplora il pacchetto prima di aggiungere funzioni personalizzate. Utilizzare il ramo corrispondente alla propria Maximo Monitor versione.
Aggiunta di calcoli
È possibile scrivere codice personalizzato e aggiungerlo ai calcoli in Maximo Monitor. Il codice personalizzato è fornito nelle seguenti forme:
- Espressioni: una singola riga di codice che esegue un calcolo espresso in una sintassi pandas valida. Le espressioni possono essere incollate nella funzione integrata
PythonExpressionattraverso la UI. Per ulteriori informazioni, vedere Uso delle espressioni. - Funzioni semplici: un blocco di dichiarazione di funzione che coinvolge più righe di codice. La funzione esegue un calcolo ed è espressa in panda. Le funzioni semplici sono calcoli a singolo argomento e producono un singolo output. Per ulteriori informazioni, vedere Utilizzo di funzioni semplici.
- Funzioni personalizzate: un blocco di dichiarazione di funzione che coinvolge più righe di codice. La funzione esegue un calcolo ed è espressa in panda. Le funzioni personalizzate sono calcoli a argomento multiplo e possono produrre più uscite. Le funzioni personalizzate sono memorizzate esternamente in GitHub Enterprise e registrate con Maximo Monitor. Per ulteriori informazioni, vedere Lavorare con le funzioni personalizzate.
In un catalogo di funzioni viene fornito un insieme di funzioni integrate da utilizzare nelle metriche.
Metriche di pianificazione
La pipeline di funzioni è programmata per essere eseguita ogni 5 minuti. È possibile pianificare quando eseguire le metriche dei dati batch come parte di questa pipeline.
È anche possibile eseguire metriche di dati in streaming come parte di questa pipeline, ma non è possibile configurare le pianificazioni per le metriche di dati in streaming. Le metriche dei dati in streaming ricevono ed elaborano i dati in tempo quasi reale. Dopo aver creato una metrica di dati in streaming, l'avvio della pipeline può richiedere fino ad un minuto. Non è possibile combinare metriche di dati batch e di flusso nella pipeline.
Per ulteriori informazioni, consultare la sezione Tempistica dei calcoli.
Applicazione dei grani
È possibile applicare un'unità di dati o un livello ad alcune metriche per ottenere una vista di riepilogo dei dati. È possibile applicare un chicco di tempo come giornaliero, settimanale, mensile. Ad esempio, utilizzando la funzione mean , è possibile definire una metrica che aggrega la distanza media percorsa per il robot A all'ora.
È anche possibile utilizzare alcuni timeframes personalizzati, come i turni. Utilizzando alcune funzioni integrate come ShiftCalendar, è possibile configurare le ore di inizio e di fine per i turni nel proprio ambiente.
È inoltre possibile scegliere di riepilogare un'emissione per una dimensione specifica del tipo di dispositivo. Ad esempio, è possibile calcolare la distanza media percorsa per Robot A e visualizzare i risultati per produttore.
Per ogni tipo di dispositivo e nodo della gerarchia, il grano giornaliero è disponibile per impostazione predefinita. È possibile rendere disponibili più opzioni di granularità tramite la finestra di dialogo Gestisci granularità .
Utilizzo delle costanti
Alcune delle metriche dei dati batch potrebbero utilizzare costanti. Gli stessi valori costanti potrebbero essere applicati a più metriche di dati batch tra i tipi di dispositivo. Con Maximo Monitor è possibile definire una costante e impostare un valore disponibile per tutte le metriche dei dati batch.
È possibile sovrascrivere i valori utilizzati per una costante per i singoli tipi di dispositivi. In seguito, se richiesto, è possibile tornare a utilizzare i valori di default globali per un tipo di dispositivo.
Le costanti possono essere di tipo booleano, letterale, float, numero intero, numero, un oggetto JSON o registrazione data / ora. Il tipo di dati viene specificato come tipo di dati Python durante il processo di registrazione ed è convertito come segue:
bool-BOOLEANstr-LITERALfloat-NUMBERint-NUMBERdict-JSONdt.datetime-TIMESTAMPNone-None
Fare riferimento a una costante in un'espressione o in una metrica da Maximo Monitor o in una funzione personalizzata utilizzando un dizionario precompilato. Nell'esempio seguente, alfa e beta hanno valori costanti definiti.
df['pressure'] * c['alpha'] + c['beta'] Prima di poter impostare il valore globale o locale di una costante, è necessario creare e registrare ogni costante dall'ambiente Python utilizzando il metodo def
register_constants(self, constants) , dove constants è una schiera di costanti da registrare. Analogamente, per annullare la registrazione di una costante, utilizzare il metodo def
unregister_constants(self, constant_names) , dove constant_names è un elenco di nomi costanti da non registrare.
Per un esempio di come registrare, disregistrare, configurare e utilizzare una costante, vedere Esercitazione: Aggiunta di una costante.
Le metriche dei dati di flusso non utilizzano costanti.