Grafana+Zabbix: Visualisering av produktionslinjedrift

I den här artikeln vill jag dela med mig av min erfarenhet av att använda öppna källkodssystem Zabbix och Grafana för att visualisera driften av produktionslinjer. Informationen kan vara användbar för dem som letar efter ett snabbt sätt att visuellt visa eller analysera insamlad data i industriell automation eller IoT-projekt. Artikeln är inte en detaljerad handledning, utan snarare ett koncept för ett övervakningssystem baserat på programvara med öppen källkod för en tillverkningsanläggning.

Verktyg

Zabbix – vi har använt det länge för att övervaka anläggningens IT-infrastruktur. Systemet visade sig vara så bekvämt och universellt att vi började lägga in data från produktionslinjer, sensorer och styrenheter i det. Detta gjorde det möjligt för oss att samla alla mätdata på ett ställe, göra enkla grafer över resursförbrukning och utrustningsprestanda, men vi saknade verkligen analyser och vackra grafer.

grafana är ett kraftfullt verktyg för analys och datavisualisering. Ett stort antal plugins låter dig ta data från olika källor (zabbix, clickhouse, influxDB), bearbeta det i farten (beräkna medelvärde, summa, skillnad, etc.) och rita alla typer av grafer (från enkla linjer, hastighetsmätare, tabeller till komplexa diagram).

Draw.io – en tjänst som låter dig rita från ett enkelt blockschema till en planlösning i en onlineredigerare. Det finns många färdiga mallar och ritade föremål. Data kan exporteras till alla större grafiska format eller xml.

Att sätta allt ihop

Det finns många artiklar skrivna om hur man installerar och konfigurerar Grafana och Zabbix, jag kommer att berätta om de viktigaste konfigurationspunkterna.

En "nätverksnod" (värd) skapas på Zabbix-servern, som kommer att äga "dataelement" (objekt) med mätvärden från våra sensorer. Det är tillrådligt att tänka igenom namnen på noder och dataelement i förväg och göra dem så strukturerade som möjligt, eftersom vi kommer åt dem från grafana genom reguljära uttryck. Detta tillvägagångssätt är bekvämt eftersom du kan få data från en grupp av element med en begäran.

För att konfigurera grafana måste du installera ytterligare plugins:

  • Zabbix av Alexander Zobnin (alexanderzobnin-zabbix-app) – integration med zabbix
  • natel-discrete-panel – plugin för diskret visualisering på en horisontell graf
  • pierosavi-imageit-panel – plugin för att visa data ovanpå din bild
  • agenty-flowcharting-panel – plugin för dynamisk visualisering av ett diagram från draw.io

Integrationen med Zabbix själv konfigureras i grafana, menyalternativet ConfigurationData sourcesZabbix. Där måste du ange adressen till api zabbix-servern, det här är vad jag har http://zabbix.local/zabbix/api_jsonrpc.php, och logga in med lösenord för åtkomst. Om allt är gjort korrekt, när du sparar inställningarna kommer det att visas ett meddelande med api-versionsnumret: zabbix API version: 5.0.1

Skapa en instrumentpanel

Det är här magin med Grafana och dess plugins börjar.

Natel-diskret-panel-plugin
Vi har data om status för motorerna på ledningarna (fungerar = 1, fungerar inte =0). Med hjälp av den diskreta grafen kan vi rita en skala som visar: motorns status, hur många minuter/timmar eller % den fungerade och hur ofta den startades.

Grafana+Zabbix: Visualisering av produktionslinjedrift
Visualisering av motorstatus

Enligt min mening är detta en av de bästa graferna för att visualisera hårdvarans prestanda. Du kan direkt se hur länge den har varit inaktiv och i vilka lägen den fungerar oftare. Det kan finnas mycket data, det är möjligt att aggregera dem efter intervall, omvandla dem efter värden (om värdet är "1", visa det som "PÅ")

Plugin pierosavi-imageit-panel

Imageit är bekvämt att använda när du redan har ett ritat diagram eller planritning där du vill applicera data från sensorer. I visualiseringsinställningarna måste du ange webbadressen till bilden och lägga till de sensorelement du behöver. Elementet visas på bilden och kan placeras på önskad plats med musen.

Grafana+Zabbix: Visualisering av produktionslinjedrift
Ugnsdiagram med temperatur- och tryckmått

Agenty-flowcharting-panel plugin

Jag skulle vilja prata mer i detalj om att skapa FlowCharting-visualisering, eftersom det är ett otroligt funktionellt verktyg. Det låter dig göra ett dynamiskt mnemoniskt diagram, vars element kommer att reagera på värdena för mått (ändra färg, position, namn, etc.).

Tar emot data

Skapandet av alla visualiseringselement i Grafana börjar med en begäran om data från källan, i vårt fall är det zabbix. Med hjälp av frågor måste vi få alla mätvärden som vi vill använda i diagrammet. Metriska detaljer är namnen på dataelement i Zabbix; du kan ange antingen en enskild måttenhet eller en uppsättning filtrerad genom ett reguljärt uttryck. I mitt exempel innehåller fältet Objekt uttrycket: "/(^rad 1)|(tillgänglighet)|(zucchini)/" - detta betyder: välj alla mätvärden vars namn strikt börjar med "rad 1" eller innehåller ordet "tillgänglighet" " eller innehåller ordet "zucchini"

Grafana+Zabbix: Visualisering av produktionslinjedrift
Ett exempel på att ställa in en begäran om data om första linjens motorer och tillgången på råvaror

Datakonvertering

Källdata kanske inte alltid är i den form som vi behöver visa dem. Till exempel har vi minut-för-minut-data om vikten av en produkt i en behållare (kg), och vi måste visa fyllnadshastigheten i t/timme. Jag gör det på följande sätt: Jag tar viktdata och transformerar den med grafana delta-funktionen, som beräknar skillnaden mellan de metriska värdena, så att den aktuella vikten blir kg/min. Sedan multiplicerar jag med 0.06 för att få resultatet i ton/timme. Eftersom viktmåttet används i flera frågor, anger jag ett nytt alias för det (setAlias) och kommer att använda det i visualiseringsregeln.

Grafana+Zabbix: Visualisering av produktionslinjedrift
Exempel på att använda parametern delta och multiplikator och byta namn på måttet i en fråga

Här är ett annat exempel på datakonvertering: Jag behövde räkna antalet batcher (start av cykel = motorstart). Mätvärdet beräknas utifrån motorstatus "linje 1 - pumppump från tank 1 (status)". Transformation: vi ändrar data för det ursprungliga måttet med deltafunktionen (skillnad mellan värden), så måttet kommer att ha värdet "+1" för att starta motorn, "-1" för att stoppa och "0" när motorn gör det inte ändra dess status. Sedan tar jag bort alla värden mindre än 1 och summerar dem. Resultatet är antalet motorstarter.

Grafana+Zabbix: Visualisering av produktionslinjedrift
Ett exempel på att konvertera data från aktuell status till antalet starter

Nu om själva visualiseringen

I displayinställningarna finns en "Redigera ritning"-knapp; den startar en redigerare där du kan rita ett diagram. Varje objekt i diagrammet har sina egna parametrar. Om du till exempel anger teckensnittsinställningar i editorn kommer de att tillämpas på datavisualisering i Grafana.

Grafana+Zabbix: Visualisering av produktionslinjedrift
Så här ser redigeraren ut i Draw.io

Efter att ha sparat diagrammet kommer det att dyka upp i grafana och du kan skapa regler för att ändra element.

I parameters() specificerar vi:

  • Alternativ – ange regelnamnet, namnet eller aliaset för måttet vars data kommer att användas (Tillämpa på mätvärden). Typen av dataaggregation (Aggregation) påverkar det slutliga resultatet av måttet, så Last betyder att det sista värdet kommer att väljas, avg är medelvärdet för perioden som valts i det övre högra hörnet.
  • Tröskelvärden - parametern tröskelvärden beskriver logiken för färgapplikation, det vill säga den valda färgen kommer att tillämpas på element i diagrammet beroende på metriska data. I mitt exempel, om måttenhetsvärdet är "0", är statusen "Ok", färgen kommer att vara grön, om värdet är ">1", kommer statusen att vara Kritisk och färgen blir röd.
  • Färg-/verktygstipsmappningar" och "etikett-/textmappningar" - välj ett schemaelement och ett scenario för dess beteende. I det första scenariot kommer objektet att målas över, i det andra kommer det att finnas text på det med data från måtten. För att välja ett objekt på diagrammet måste du klicka på kretsskylten och klicka på diagrammet.

Grafana+Zabbix: Visualisering av produktionslinjedrift
I det här exemplet målar jag pumpen och dess pil röd om den fungerar och grön om den inte gör det.

Med hjälp av plugin för flödesdiagram kunde jag rita ett diagram över hela linjen, där:

  1. färgen på enheterna ändras i enlighet med deras status
  2. det finns ett larm för frånvaro av produkt i behållare
  3. motorfrekvensinställningen visas
  4. första tankfyllnings-/tömningshastighet
  5. antalet cykler av linjedrift (batch) beräknas

Grafana+Zabbix: Visualisering av produktionslinjedrift
Visualisering av produktionslinjens drift

Resultat

Det svåraste för mig var att få data från kontrollanterna. Tack vare mångsidigheten hos Zabbix när det gäller att ta emot data och flexibiliteten hos Grafana på grund av plugins, tog det bara ett par dagar att skapa en heltäckande skärm för produktionslinjeövervakning. Visualisering gjorde det möjligt att se grafer och statistisk statistik, plus enkel åtkomst via webben för alla intresserade – allt detta gjorde det möjligt att snabbt identifiera flaskhalsar och ineffektiv användning av enheter.

Slutsats

Jag gillade verkligen kombinationen Zabbix+Grafana och jag rekommenderar att du uppmärksammar den om du snabbt behöver bearbeta data från styrenheter eller sensorer utan att programmera eller implementera komplexa kommersiella produkter. Detta kommer naturligtvis inte att ersätta professionella SCADA-system, men det kommer att räcka som ett verktyg för centraliserad övervakning av hela produktionen.

Källa: will.com

Lägg en kommentar