Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione

In questo articolo voglio condividere la mia esperienza nell'utilizzo dei sistemi open source Zabbix e Grafana per visualizzare il funzionamento delle linee di produzione. Le informazioni possono essere utili a coloro che cercano un modo rapido per visualizzare o analizzare visivamente i dati raccolti in progetti di automazione industriale o IoT. L'articolo non è un tutorial dettagliato, ma piuttosto un concetto per un sistema di monitoraggio basato su software open source per un impianto di produzione.

strumenti

Zabbix – lo utilizziamo da tempo per monitorare l’infrastruttura IT dello stabilimento. Il sistema si è rivelato così conveniente e universale che abbiamo iniziato a inserirvi i dati provenienti da linee di produzione, sensori e controller. Ciò ci ha permesso di raccogliere tutti i dati metrici in un unico posto, creare semplici grafici sul consumo di risorse e sulle prestazioni delle apparecchiature, ma ci mancavano davvero analisi e grafici belli.

graminacee è un potente strumento per l'analisi e la visualizzazione dei dati. Un gran numero di plugin ti consente di prendere dati da varie fonti (zabbix, clickhouse, influxDB), elaborarli al volo (calcolare il valore medio, somma, differenza, ecc.) e disegnare tutti i tipi di grafici (da semplici linee, tachimetri, tabelle fino a diagrammi complessi).

Draw.io – un servizio che ti permette di disegnare da un semplice diagramma a blocchi a una planimetria in un editor online. Esistono molti modelli già pronti e oggetti disegnati. I dati possono essere esportati in tutti i principali formati grafici o xml.

Mettendo tutto insieme

Sono stati scritti molti articoli su come installare e configurare Grafana e Zabbix, ti parlerò dei principali punti di configurazione.

Sul server Zabbix viene creato un "nodo di rete" (host), che possiederà "elementi di dati" (articoli) con le metriche dei nostri sensori. È consigliabile riflettere in anticipo sui nomi dei nodi e degli elementi dati e renderli il più strutturati possibile, poiché vi accederemo da grafana tramite espressioni regolari. Questo approccio è conveniente perché puoi ottenere dati da un gruppo di elementi con una sola richiesta.

Per configurare grafana dovrai installare plugin aggiuntivi:

  • Zabbix di Alexander Zobnin (alexanderzobnin-zabbix-app) – integrazione con zabbix
  • natel-discrete-panel – plugin per la visualizzazione discreta su un grafico orizzontale
  • pierosavi-imageit-panel – plugin per visualizzare i dati sopra l'immagine
  • agenty-flowcharting-panel – plugin per la visualizzazione dinamica di un diagramma da draw.io

L'integrazione con Zabbix stessa è configurata in grafana, voce di menu ConfigurazioneFonti datiZabbix. Lì devi specificare l'indirizzo del server API Zabbix, questo è quello che ho http://zabbix.local/zabbix/api_jsonrpc.phpe accedi con la password per l'accesso. Se tutto è stato eseguito correttamente, al momento del salvataggio delle impostazioni verrà visualizzato un messaggio con il numero di versione dell'api: zabbix API version: 5.0.1

Creazione di una dashboard

È qui che inizia la magia di Grafana e dei suoi plugin.

Plug-in per pannello discreto Natel
Disponiamo di dati sullo stato dei motori sulle linee (funzionanti = 1, non funzionanti =0). Utilizzando il grafico discreto, possiamo tracciare una scala che mostrerà: lo stato del motore, quanti minuti/ore o % ha funzionato e quanto spesso è stato avviato.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Visualizzazione degli stati del motore

A mio parere, questo è uno dei migliori grafici per visualizzare le prestazioni dell'hardware. Puoi immediatamente vedere quanto tempo è rimasto inattivo e in quali modalità funziona più spesso. Possono esserci molti dati, è possibile aggregarli per intervalli, trasformarli per valori (se il valore è “1”, visualizzarlo come “ON”)

Plugin pierosavi-imageit-panel

Imageit è comodo da utilizzare quando si dispone già di un diagramma o di una planimetria disegnata su cui si desidera applicare i dati provenienti dai sensori. Nelle impostazioni di visualizzazione, devi specificare l'URL dell'immagine e aggiungere gli elementi sensore di cui hai bisogno. L'elemento appare nell'immagine e può essere posizionato nel punto desiderato con il mouse.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Diagramma del forno con metriche di temperatura e pressione

plugin del pannello dei diagrammi di flusso dell'agente

Vorrei parlare più in dettaglio della creazione della visualizzazione FlowCharting, poiché è uno strumento incredibilmente funzionale. Ti consente di creare un diagramma mnemonico dinamico, i cui elementi reagiranno ai valori delle metriche (cambia colore, posizione, nome, ecc.).

Ricevendo dati

La creazione di qualsiasi elemento di visualizzazione in Grafana inizia con una richiesta di dati dalla fonte, nel nostro caso è zabbix. Utilizzando le query, dobbiamo ottenere tutte le metriche che vogliamo utilizzare nel diagramma. I dettagli della metrica sono i nomi degli elementi di dati in Zabbix; puoi specificare una singola metrica o un insieme filtrato tramite un'espressione regolare. Nel mio esempio, il campo Articolo contiene l'espressione: “/(^riga 1)|(disponibilità)|(zucchine)/” - ciò significa: seleziona tutte le metriche il cui nome inizia rigorosamente con “riga 1” o contiene la parola “disponibilità " o contiene la parola "zucchine"

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Un esempio di impostazione di una richiesta di dati sui motori di prima linea e sulla disponibilità delle materie prime

Conversione dati

I dati di origine potrebbero non essere sempre nella forma in cui dobbiamo visualizzarli. Ad esempio, disponiamo di dati minuto per minuto sul peso di un prodotto in un contenitore (kg) e dobbiamo visualizzare la velocità di riempimento in t/ora. Lo faccio nel seguente modo: prendo i dati del peso e li trasformo con la funzione grafana delta, che calcola la differenza tra i valori metrici, quindi il peso attuale si trasforma in kg/min. Quindi moltiplico per 0.06 per ottenere il risultato in tonnellate/ora. Poiché la metrica del peso viene utilizzata in diverse query, ne specifico un nuovo alias (setAlias) e lo utilizzerò nella regola di visualizzazione.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Esempio di utilizzo del parametro delta e moltiplicatore e di ridenominazione della metrica in una query

Ecco un altro esempio di conversione dei dati: dovevo contare il numero di lotti (inizio del ciclo = avvio del motore). La metrica è calcolata in base allo stato del motore “linea 1 - pompa pompa da serbatoio 1 (stato)”. Trasformazione: modifichiamo i dati della metrica originale con la funzione delta (differenza di valori), quindi la metrica avrà il valore “+1” per l'avvio del motore, “-1” per l'arresto e “0” quando il motore parte non cambiarne lo stato. Quindi rimuovo tutti i valori inferiori a 1 e li sommo. Il risultato è il numero di avviamenti del motore.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Un esempio di conversione dei dati dallo stato corrente al numero di avviamenti

Ora riguardo alla visualizzazione stessa

Nelle impostazioni del display è presente il pulsante “Modifica disegno” che avvia un editor in cui è possibile disegnare un diagramma. Ogni oggetto nel diagramma ha i propri parametri. Ad esempio, se specifichi le impostazioni dei caratteri nell'editor, queste verranno applicate alla visualizzazione dei dati in Grafana.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Ecco come appare l'editor in Draw.io

Dopo aver salvato lo schema, questo apparirà nella grafana e potrai creare delle regole per la modifica degli elementi.

In parametri() specifichiamo:

  • Opzioni: imposta il nome della regola, il nome o l'alias della metrica di cui verranno utilizzati i dati (Applica alle metriche). Il tipo di aggregazione dei dati (Aggregazione) influisce sul risultato finale della metrica, quindi Ultimo significa che verrà selezionato l'ultimo valore, avg è il valore medio per il periodo selezionato nell'angolo in alto a destra.
  • Soglie: il parametro dei valori di soglia descrive la logica dell'applicazione del colore, ovvero il colore selezionato verrà applicato agli elementi nel diagramma in base ai dati metrici. Nel mio esempio, se il valore della metrica è "0", lo stato è "Ok", il colore sarà verde, se il valore è ">1", lo stato sarà Critico e il colore sarà rosso.
  • Mappature colore/descrizione comando" e "Mappatura etichetta/testo" - selezionando un elemento dello schema e uno scenario per il suo comportamento. Nel primo scenario, l'oggetto verrà dipinto, nel secondo ci sarà del testo con i dati della metrica. Per selezionare un oggetto sullo schema, è necessario fare clic sul segno del circuito e fare clic sullo schema.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
In questo esempio, dipingo la pompa e la sua freccia di rosso se funziona e di verde se non funziona.

Utilizzando il plugin per i diagrammi di flusso, ho potuto disegnare un diagramma dell'intera linea, sul quale:

  1. il colore delle unità cambia in base al loro stato
  2. è presente un allarme per assenza prodotto nei contenitori
  3. viene visualizzata l'impostazione della frequenza del motore
  4. prima velocità di riempimento/scarico del serbatoio
  5. viene calcolato il numero di cicli di funzionamento della linea (batch).

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Visualizzazione del funzionamento della linea di produzione

risultato

La cosa più difficile per me è stata ottenere i dati dai controllori. Grazie alla versatilità di Zabbix in termini di ricezione dei dati e alla flessibilità di Grafana grazie ai plugin, sono bastati solo un paio di giorni per creare uno schermo completo di monitoraggio della linea di produzione. La visualizzazione ha permesso di visualizzare grafici e statistiche statali, oltre a un facile accesso via web a tutti gli interessati: tutto ciò ha permesso di identificare rapidamente i colli di bottiglia e l'uso inefficiente delle unità.

conclusione

La combinazione Zabbix+Grafana mi è piaciuta molto e consiglio di prestarvi attenzione se avete bisogno di elaborare velocemente dati provenienti da controller o sensori senza programmare o implementare prodotti commerciali complessi. Naturalmente questo non sostituirà i sistemi SCADA professionali, ma sarà sufficiente come strumento per il monitoraggio centralizzato dell’intera produzione.

Fonte: habr.com

Aggiungi un commento