Grafana+Zabbix: Vizualizarea funcționării liniei de producție

În acest articol vreau să împărtășesc experiența mea de utilizare a sistemelor open source Zabbix și Grafana pentru a vizualiza funcționarea liniilor de producție. Informațiile pot fi utile celor care caută o modalitate rapidă de a afișa sau analiza vizual datele colectate în proiecte de automatizare industrială sau IoT. Articolul nu este un tutorial detaliat, ci mai degrabă un concept pentru un sistem de monitorizare bazat pe software open source pentru o fabrică de producție.

unelte

Zabbix – îl folosim de mult timp pentru a monitoriza infrastructura IT a fabricii. Sistemul s-a dovedit a fi atât de convenabil și universal încât am început să introducem în el date de la liniile de producție, senzori și controlere. Acest lucru ne-a permis să colectăm toate datele de măsurare într-un singur loc, să facem grafice simple ale consumului de resurse și ale performanței echipamentelor, dar ne-au lipsit cu adevărat analitice și grafice frumoase.

grafana este un instrument puternic de analiză și vizualizare a datelor. Un număr mare de plugin-uri vă permit să preluați date din diverse surse (zabbix, clickhouse, influxDB), să le procesați din mers (calculați valoarea medie, suma, diferența etc.) și să desenați tot felul de grafice (din linii simple, vitezometre, tabele până la diagrame complexe).

Draw.io – un serviciu care vă permite să desenați dintr-o simplă diagramă bloc la un plan de etaj într-un editor online. Există multe șabloane gata făcute și obiecte desenate. Datele pot fi exportate în toate formatele grafice majore sau xml.

Punând totul împreună

Sunt multe articole scrise despre cum să instalați și să configurați Grafana și Zabbix, vă voi spune despre principalele puncte de configurare.

Un „nod de rețea” (gazdă) este creat pe serverul Zabbix, care va deține „elementele de date” (articole) cu metrici de la senzorii noștri. Este recomandabil să ne gândim în prealabil la numele nodurilor și ale elementelor de date și să le facem cât mai structurate posibil, deoarece le vom accesa din grafana prin expresii regulate. Această abordare este convenabilă deoarece puteți obține date dintr-un grup de elemente cu o singură solicitare.

Pentru a configura grafana va trebui să instalați pluginuri suplimentare:

  • Zabbix de Alexander Zobnin (alexanderzobnin-zabbix-app) – integrare cu zabbix
  • natel-discrete-panel – plugin pentru vizualizare discretă pe un grafic orizontal
  • pierosavi-imageit-panel – plugin pentru afișarea datelor deasupra imaginii tale
  • agenty-flowcharting-panel – plugin pentru vizualizarea dinamică a unei diagrame din draw.io

Integrarea cu Zabbix în sine este configurată în grafana, elementul de meniu ConfigurationDatasourcesZabbix. Acolo trebuie să specificați adresa serverului api zabbix, asta am http://zabbix.local/zabbix/api_jsonrpc.php, și autentificați-vă cu parola pentru acces. Dacă totul este făcut corect, la salvarea setărilor va apărea un mesaj cu numărul versiunii API: zabbix API version: 5.0.1

Crearea unui tablou de bord

Aici începe magia Grafana și pluginurile sale.

Plugin Natel-panou discret
Avem date despre starea motoarelor pe linii (funcționează = 1, nu funcționează =0). Folosind graficul discret, putem desena o scară care va arăta: starea motorului, câte minute/ore sau % a funcționat și cât de des a pornit.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Vizualizarea stărilor motorului

În opinia mea, acesta este unul dintre cele mai bune grafice pentru vizualizarea performanței hardware. Puteți vedea imediat cât timp a fost inactiv și în ce moduri funcționează mai des. Pot exista o mulțime de date, este posibil să le agregați pe intervale, să le transformați după valori (dacă valoarea este „1”, atunci afișați-o ca „ON”)

Plugin pierosavi-imageit-panel

Imagine este convenabil de utilizat atunci când aveți deja o diagramă sau un plan de etaj desenat pe care doriți să aplicați date de la senzori. În setările de vizualizare, trebuie să specificați adresa URL a imaginii și să adăugați elementele senzorului de care aveți nevoie. Elementul apare în imagine și poate fi plasat în locul dorit cu mouse-ul.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Diagrama cuptorului cu metrica temperaturii și presiunii

plugin agenty-flowcharting-panel

Aș dori să vorbesc mai detaliat despre crearea vizualizării FlowCharting, deoarece este un instrument incredibil de funcțional. Vă permite să realizați o diagramă mnemonică dinamică, ale cărei elemente vor reacționa la valorile metricilor (schimbați culoarea, poziția, numele etc.).

Primirea datelor

Crearea oricărui element de vizualizare în Grafana începe cu o solicitare de date de la sursă, în cazul nostru este zabbix. Folosind interogări, trebuie să obținem toate valorile pe care dorim să le folosim în diagramă. Detaliile valorii sunt numele elementelor de date din Zabbix; puteți specifica fie o valoare individuală, fie un set filtrat printr-o expresie regulată. În exemplul meu, câmpul Item conține expresia: „/(^linia 1)|(disponibilitate)|(dovlecel)/” - aceasta înseamnă: selectați toate valorile al căror nume începe strict cu „linia 1” sau conține cuvântul „disponibilitate”. ” sau conține cuvântul „dovlecel”

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Un exemplu de stabilire a unei cereri de date privind motoarele de primă linie și disponibilitatea materiilor prime

Conversia datelor

Este posibil ca datele sursă să nu fie întotdeauna în forma în care trebuie să le afișăm. De exemplu, avem date minut cu minut despre greutatea unui produs într-un recipient (kg) și trebuie să afișăm rata de umplere în t/oră. Fac acest lucru în felul următor: iau datele de greutate și le transform cu funcția grafana delta, care calculează diferența dintre valorile metrice, astfel încât greutatea curentă se transformă în kg/min. Apoi înmulțesc cu 0.06 pentru a obține rezultatul în tone/oră. Deoarece metrica de greutate este utilizată în mai multe interogări, îi specific un nou alias (setAlias) și îl voi folosi în regula de vizualizare.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Exemplu de utilizare a parametrului delta și multiplicator și redenumirea valorii într-o interogare

Iată un alt exemplu de conversie a datelor: trebuia să număr numărul de loturi (începutul ciclului = pornirea motorului). Valoarea este calculată pe baza stării motorului „linia 1 - pompă pompă din rezervorul 1 (stare)”. Transformare: schimbăm datele metricii inițiale cu funcția delta (diferența de valori), astfel încât metrica va avea valoarea „+1” pentru pornirea motorului, „-1” pentru oprire și „0” când motorul nu nu-i schimba statutul. Apoi elimin toate valorile mai mici de 1 și le însumez. Rezultatul este numărul de porniri ale motorului.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Un exemplu de conversie a datelor din starea curentă la numărul de porniri

Acum despre vizualizarea în sine

În setările de afișare există un buton „Edit Draw”; acesta lansează un editor în care puteți desena o diagramă. Fiecare obiect din diagramă are propriii parametri. De exemplu, dacă specificați setările de font în editor, acestea vor fi aplicate la vizualizarea datelor în Grafana.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Așa arată editorul în Draw.io

După salvarea diagramei, aceasta va apărea în grafana și puteți crea reguli pentru modificarea elementelor.

În parametri() specificăm:

  • Opțiuni — setați numele regulii, numele sau alias-ul valorii ale cărei date vor fi utilizate (Aplicați pentru valori). Tipul de agregare a datelor (Aggregation) afectează rezultatul final al valorii, deci Last înseamnă că va fi selectată ultima valoare, avg este valoarea medie pentru perioada selectată în colțul din dreapta sus.
  • Praguri - parametrul valorii prag descrie logica aplicării culorii, adică culoarea selectată va fi aplicată elementelor din diagramă în funcție de datele metrice. În exemplul meu, dacă valoarea valorii este „0”, starea este „Ok”, culoarea va fi verde, dacă valoarea este „>1”, starea va fi Critică și culoarea va fi roșie.
  • Color/Tooltip Mappings” și „Label/Text Mappings” - selectarea unui element de schemă și a unui scenariu pentru comportamentul acestuia. În primul scenariu, obiectul va fi pictat, în al doilea va fi text pe el cu date din metrica. Pentru a selecta un obiect din diagramă, trebuie să faceți clic pe semnul circuitului și să faceți clic pe diagramă.

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
În acest exemplu, vopsesc pompa și săgeata ei în roșu dacă funcționează și în verde dacă nu.

Folosind pluginul de diagramă de flux, am reușit să desenez o diagramă a întregii linii, pe care:

  1. culoarea unităților se modifică în funcție de starea acestora
  2. exista o alarma pentru absenta produsului in recipiente
  3. este afișată setarea frecvenței motorului
  4. prima viteza de umplere/deversare a rezervorului
  5. se calculează numărul de cicluri de operare în linie (lot).

Grafana+Zabbix: Vizualizarea funcționării liniei de producție
Vizualizarea funcționării liniei de producție

Rezultat

Cel mai dificil lucru pentru mine a fost să obțin date de la controlori. Datorită versatilității Zabbix în ceea ce privește primirea datelor și flexibilității Grafana datorită pluginurilor, a durat doar câteva zile pentru a crea un ecran cuprinzător de monitorizare a liniei de producție. Vizualizarea a făcut posibilă vizualizarea graficelor și a statisticilor de stat, plus accesul ușor prin web pentru toți cei interesați - toate acestea au făcut posibilă identificarea rapidă a blocajelor și utilizarea ineficientă a unităților.

Concluzie

Mi-a plăcut foarte mult combinația Zabbix+Grafana și recomand să fii atent la ea dacă trebuie să procesezi rapid datele de la controlere sau senzori fără a programa sau implementa produse comerciale complexe. Desigur, acest lucru nu va înlocui sistemele SCADA profesionale, dar va fi suficient ca instrument de monitorizare centralizată a întregii producții.

Sursa: www.habr.com

Adauga un comentariu