Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon

Sa artikulong ito gusto kong ibahagi ang aking karanasan sa paggamit ng mga open source system na Zabbix at Grafana upang mailarawan ang operasyon ng mga linya ng produksyon. Maaaring maging kapaki-pakinabang ang impormasyon sa mga naghahanap ng mabilis na paraan para makita o masuri ang mga nakolektang data sa industriyal na automation o mga proyekto ng IoT. Ang artikulo ay hindi isang detalyadong tutorial, ngunit sa halip ay isang konsepto para sa isang monitoring system batay sa open source software para sa isang manufacturing plant.

Toolkit

Zabbix – matagal na namin itong ginagamit para mamonitor ang IT infrastructure ng planta. Ang sistema ay naging maginhawa at unibersal na nagsimula kaming magpasok ng data mula sa mga linya ng produksyon, sensor at controllers dito. Nagpahintulot ito sa amin na kolektahin ang lahat ng data ng sukatan sa isang lugar, gumawa ng mga simpleng graph ng pagkonsumo ng mapagkukunan at pagganap ng kagamitan, ngunit talagang kulang kami sa analytics at magagandang graph.

grafana ay isang mahusay na tool para sa analytics at data visualization. Ang isang malaking bilang ng mga plugin ay nagbibigay-daan sa iyo na kumuha ng data mula sa iba't ibang mga mapagkukunan (zabbix, clickhouse, influxDB), iproseso ito sa mabilisang (kalkulahin ang average na halaga, kabuuan, pagkakaiba, atbp.) at gumuhit ng lahat ng uri ng mga graph (mula sa mga simpleng linya, speedometer, mga talahanayan hanggang sa mga kumplikadong diagram ).

Draw.io – isang serbisyong nagbibigay-daan sa iyong gumuhit mula sa isang simpleng block diagram hanggang sa isang floor plan sa isang online na editor. Mayroong maraming mga yari na template at iginuhit na mga bagay. Maaaring i-export ang data sa lahat ng pangunahing graphic na format o xml.

Pinagsama ang lahat

Mayroong maraming mga artikulo na nakasulat sa kung paano i-install at i-configure ang Grafana at Zabbix, sasabihin ko sa iyo ang tungkol sa mga pangunahing punto ng pagsasaayos.

Ang isang "network node" (host) ay ginawa sa server ng Zabbix, na magmamay-ari ng "mga elemento ng data" (mga item) na may mga sukatan mula sa aming mga sensor. Maipapayo na pag-isipan ang mga pangalan ng mga node at elemento ng data nang maaga at gawin ang mga ito bilang istruktura hangga't maaari, dahil maa-access namin ang mga ito mula sa grafana sa pamamagitan ng mga regular na expression. Ang diskarte na ito ay maginhawa dahil maaari kang makakuha ng data mula sa isang pangkat ng mga elemento na may isang kahilingan.

Upang i-configure ang grafana kakailanganin mong mag-install ng mga karagdagang plugin:

  • Zabbix ni Alexander Zobnin (alexanderzobnin-zabbix-app) – pagsasama sa zabbix
  • natel-discrete-panel – plugin para sa discrete visualization sa isang pahalang na graph
  • pierosavi-imageit-panel – plugin para sa pagpapakita ng data sa itaas ng iyong larawan
  • agenty-flowcharting-panel – plugin para sa dynamic na visualization ng isang diagram mula sa draw.io

Ang integration sa Zabbix mismo ay naka-configure sa grafana, menu item ConfigurationData sourcesZabbix. Doon kailangan mong tukuyin ang address ng server ng api zabbix, ito ang mayroon ako http://zabbix.local/zabbix/api_jsonrpc.php, at mag-login gamit ang password para sa pag-access. Kung tama ang lahat, kapag nagse-save ng mga setting ay magkakaroon ng mensahe na may numero ng bersyon ng api: bersyon ng zabbix API: 5.0.1

Paggawa ng Dashboard

Dito nagsisimula ang magic ng Grafana at ang mga plugin nito.

Natel-discrete-panel na plugin
Mayroon kaming data sa katayuan ng mga motor sa mga linya (gumagana = 1, hindi gumagana =0). Gamit ang discrete graph, maaari tayong gumuhit ng iskala na magpapakita ng: ang katayuan ng makina, kung gaano karaming minuto/oras o % ito gumana at kung gaano kadalas ito sinimulan.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Visualization ng mga katayuan ng engine

Sa aking opinyon, ito ay isa sa mga pinakamahusay na graph para sa paggunita sa pagganap ng hardware. Makikita mo kaagad kung gaano katagal ito naging idle at sa anong mga mode ito gumagana nang mas madalas. Maaaring magkaroon ng maraming data, posibleng pagsama-samahin ang mga ito ayon sa mga hanay, ibahin ang anyo ng mga ito ayon sa mga halaga (kung ang halaga ay "1", pagkatapos ay ipakita ito bilang "ON")

Plugin pierosavi-imageit-panel

Maginhawa itong gamitin kapag mayroon ka nang iginuhit na diagram o floor plan kung saan mo gustong maglapat ng data mula sa mga sensor. Sa mga setting ng visualization, kailangan mong tukuyin ang URL sa larawan at idagdag ang mga elemento ng sensor na kailangan mo. Lumilitaw ang elemento sa larawan at maaaring ilagay sa nais na lugar gamit ang mouse.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Diagram ng hurno na may mga sukatan ng temperatura at presyon

Agenty-flowcharting-panel plugin

Gusto kong makipag-usap nang mas detalyado tungkol sa paglikha ng FlowCharting visualization, dahil ito ay isang hindi kapani-paniwalang functional na tool. Pinapayagan ka nitong gumawa ng isang dynamic na mnemonic diagram, ang mga elemento nito ay tutugon sa mga halaga ng mga sukatan (pagbabago ng kulay, posisyon, pangalan, atbp.).

Pagtanggap ng data

Ang paglikha ng anumang elemento ng visualization sa Grafana ay nagsisimula sa isang kahilingan para sa data mula sa pinagmulan, sa aming kaso ito ay zabbix. Gamit ang mga query, kailangan nating makuha ang lahat ng sukatan na gusto nating gamitin sa diagram. Ang mga detalye ng sukatan ay ang mga pangalan ng mga elemento ng data sa Zabbix; maaari mong tukuyin ang alinman sa isang indibidwal na sukatan o isang set na na-filter sa pamamagitan ng isang regular na expression. Sa aking halimbawa, ang field ng Item ay naglalaman ng expression na: β€œ/(^line 1)|(availability)|(zucchini)/” - ibig sabihin: piliin ang lahat ng metrics na ang pangalan ay mahigpit na nagsisimula sa β€œline 1” o naglalaman ng salitang β€œavailability ” o naglalaman ng salitang "zucchini"

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Isang halimbawa ng pag-set up ng isang kahilingan para sa data sa mga unang linya ng makina at ang pagkakaroon ng mga hilaw na materyales

Conversion ng Data

Maaaring hindi palaging nasa form ang source data kung saan kailangan namin itong ipakita. Halimbawa, mayroon kaming minuto-by-minutong data sa bigat ng isang produkto sa isang lalagyan (kg), at kailangan naming ipakita ang rate ng pagpuno sa t/oras. Ginagawa ko ito sa sumusunod na paraan: Kinukuha ko ang data ng timbang at binago ko ito gamit ang grafana delta function, na kinakalkula ang pagkakaiba sa pagitan ng mga halaga ng sukatan, kaya ang kasalukuyang timbang ay nagiging kg/min. Pagkatapos ay i-multiply ko sa 0.06 para makuha ang resulta sa tonelada/oras. Dahil ginagamit ang sukatan ng timbang sa ilang query, tumukoy ako ng bagong alias para dito (setAlias) at gagamitin ko ito sa panuntunan sa visualization.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Halimbawa ng paggamit ng parameter ng delta at multiplier at pagpapalit ng pangalan ng sukatan sa isang query

Narito ang isa pang halimbawa ng conversion ng data: Kailangan kong bilangin ang bilang ng mga batch (simula ng cycle = engine start). Ang sukatan ay kinakalkula batay sa katayuan ng engine na "linya 1 - pump pump mula sa tangke 1 (status)". Pagbabagong-anyo: binabago namin ang data ng orihinal na sukatan gamit ang delta function (pagkakaiba ng mga value), kaya ang sukatan ay magkakaroon ng value na "+1" para sa pagsisimula ng engine, "-1" para sa paghinto at "0" kapag ang engine ay gumagana. huwag baguhin ang katayuan nito. Pagkatapos ay tinanggal ko ang lahat ng mga halaga na mas mababa sa 1 at isama ang mga ito. Ang resulta ay ang bilang ng pagsisimula ng makina.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Isang halimbawa ng pag-convert ng data mula sa kasalukuyang katayuan sa bilang ng mga pagsisimula

Ngayon tungkol sa visualization mismo

Sa mga setting ng display mayroong isang pindutang "I-edit ang Draw"; naglulunsad ito ng isang editor kung saan maaari kang gumuhit ng isang diagram. Ang bawat bagay sa diagram ay may sariling mga parameter. Halimbawa, kung tutukuyin mo ang mga setting ng font sa editor, ilalapat ang mga ito sa visualization ng data sa Grafana.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Ito ang hitsura ng editor sa Draw.io

Pagkatapos i-save ang diagram, lalabas ito sa grafana at maaari kang lumikha ng mga panuntunan para sa pagbabago ng mga elemento.

Sa mga parameter() tinukoy namin:

  • Mga Opsyonβ€”itakda ang pangalan ng panuntunan, ang pangalan o alyas ng sukatan na ang data ay gagamitin (Ilapat sa mga sukatan). Ang uri ng pagsasama-sama ng data (Pagsasama-sama) ay nakakaapekto sa panghuling resulta ng sukatan, kaya ang Huli ay nangangahulugan na ang huling halaga ang pipiliin, ang avg ay ang average na halaga para sa panahong pinili sa kanang sulok sa itaas.
  • Mga Threshold - ang parameter ng mga halaga ng threshold ay naglalarawan sa lohika ng application ng kulay, iyon ay, ang napiling kulay ay ilalapat sa mga elemento sa diagram depende sa metric data. Sa aking halimbawa, kung ang value ng mga sukatan ay "0", ang status ay "Ok", ang kulay ay magiging berde, kung ang value ay ">1", ang status ay magiging Kritikal at ang kulay ay magiging pula.
  • Color/Tooltip Mappings" at "Label/Text Mappings" - pagpili ng elemento ng schema at isang senaryo para sa gawi nito. Sa unang senaryo, ang bagay ay ipininta sa ibabaw, sa pangalawa, magkakaroon ng teksto dito na may data mula sa sukatan. Upang pumili ng isang bagay sa diagram, kailangan mong mag-click sa circuit sign at mag-click sa diagram.

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Sa halimbawang ito, pininturahan ko ang pump at ang arrow nito sa pula kung ito ay gumagana at berde kung hindi.

Gamit ang flowcharting plugin, nagawa kong gumuhit ng diagram ng buong linya, kung saan:

  1. ang kulay ng mga yunit ay nagbabago alinsunod sa kanilang katayuan
  2. mayroong isang alarma para sa kawalan ng produkto sa mga lalagyan
  3. ipinapakita ang setting ng dalas ng motor
  4. unang bilis ng pagpuno/paglalaglag ng tangke
  5. ang bilang ng mga cycle ng pagpapatakbo ng linya (batch) ay kinakalkula

Grafana+Zabbix: Visualization ng pagpapatakbo ng linya ng produksyon
Visualization ng operasyon ng linya ng produksyon

Resulta

Ang pinakamahirap na bagay para sa akin ay ang pagkuha ng data mula sa mga controllers. Salamat sa versatility ng Zabbix sa mga tuntunin ng pagtanggap ng data at ang flexibility ng Grafana dahil sa mga plugin, tumagal lamang ng ilang araw upang lumikha ng isang komprehensibong screen ng pagsubaybay sa linya ng produksyon. Ginawang posible ng visualization na tingnan ang mga graph at istatistika ng estado, kasama ang madaling pag-access sa pamamagitan ng web sa lahat ng interesado - lahat ng ito ay naging posible upang mabilis na matukoy ang mga bottleneck at hindi mahusay na paggamit ng mga unit.

Konklusyon

Talagang nagustuhan ko ang kumbinasyon ng Zabbix+Grafana at inirerekumenda kong bigyang pansin ito kung kailangan mong mabilis na magproseso ng data mula sa mga controller o sensor nang walang programming o pagpapatupad ng mga kumplikadong komersyal na produkto. Siyempre, hindi nito papalitan ang mga propesyonal na sistema ng SCADA, ngunit ito ay magiging sapat bilang isang tool para sa sentralisadong pagsubaybay sa buong produksyon.

Pinagmulan: www.habr.com

Magdagdag ng komento