Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής

Σε αυτό το άρθρο, θέλω να μοιραστώ την εμπειρία μου από τη χρήση συστημάτων ανοιχτού κώδικα Zabbix και Grafana για να οπτικοποιήσω το έργο των γραμμών παραγωγής. Οι πληροφορίες μπορεί να είναι χρήσιμες σε όσους αναζητούν έναν γρήγορο τρόπο οπτικής εμφάνισης ή ανάλυσης των συλλεγόμενων δεδομένων σε έργα βιομηχανικού αυτοματισμού ή IoT. Το άρθρο δεν είναι ένας λεπτομερής οδηγός, αλλά μάλλον μια ιδέα ενός συστήματος παρακολούθησης που βασίζεται σε λογισμικό ανοιχτού κώδικα για μια μεταποιητική επιχείρηση.

Εργαλειοθήκη

Zabbix – το χρησιμοποιούμε εδώ και πολύ καιρό για την παρακολούθηση της υποδομής πληροφορικής του εργοστασίου. Το σύστημα αποδείχθηκε τόσο βολικό και ευέλικτο που αρχίσαμε να εισάγουμε δεδομένα από γραμμές παραγωγής, αισθητήρες και ελεγκτές σε αυτό. Αυτό μας επέτρεψε να συλλέξουμε όλα τα δεδομένα μετρήσεων σε ένα μέρος, να κάνουμε απλά γραφήματα κατανάλωσης πόρων και απόδοσης εξοπλισμού, αλλά μας έλειπαν πραγματικά τα αναλυτικά στοιχεία και τα όμορφα γραφήματα.

Γκράφανα είναι ένα ισχυρό εργαλείο για ανάλυση και οπτικοποίηση δεδομένων. Ένας μεγάλος αριθμός πρόσθετων σάς επιτρέπει να λαμβάνετε δεδομένα από διάφορες πηγές (zabbix, clickhouse, influxDB), να τα επεξεργάζεστε αμέσως (υπολογίστε τον μέσο όρο, άθροισμα, διαφορά κ.λπ.) και να σχεδιάζετε όλα τα είδη γραφημάτων (από απλές γραμμές, ταχύμετρα , πίνακες σε σύνθετα διαγράμματα ).

draw.io - μια υπηρεσία που σας επιτρέπει να σχεδιάσετε σε έναν διαδικτυακό επεξεργαστή από ένα απλό μπλοκ διάγραμμα σε μια κάτοψη. Υπάρχουν πολλά έτοιμα πρότυπα και σχεδιασμένα αντικείμενα. Τα δεδομένα μπορούν να εξαχθούν σε όλες τις κύριες μορφές γραφικών ή xml.

Βάζοντας όλα μαζί

Έχουν γραφτεί πολλά άρθρα σχετικά με τον τρόπο εγκατάστασης και διαμόρφωσης των Grafana και Zabbix, θα μιλήσω για τα κύρια σημεία της διαμόρφωσης.

Δημιουργείται ένας «κόμβος δικτύου» (host) στον διακομιστή Zabbix, στον οποίο θα ανήκουν «στοιχεία δεδομένων» (στοιχείο) με μετρήσεις από τους αισθητήρες μας. Συνιστάται να σκεφτούμε εκ των προτέρων τα ονόματα των κόμβων και των στοιχείων δεδομένων και να τα κάνουμε όσο το δυνατόν πιο δομημένα, καθώς θα έχουμε πρόσβαση σε αυτά από το graphana μέσω κανονικών εκφράσεων. Αυτή η προσέγγιση είναι βολική επειδή μπορείτε να λάβετε δεδομένα από μια ομάδα στοιχείων με ένα μόνο αίτημα.

Για να διαμορφώσετε το grafana, θα χρειαστεί να εγκαταστήσετε πρόσθετα πρόσθετα:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) - ενσωμάτωση με zabbix
  • natel-discrete-panel - πρόσθετο για διακριτή απεικόνιση σε οριζόντιο γράφημα
  • pierosavi-imageit-panel - πρόσθετο για την εμφάνιση δεδομένων πάνω από την εικόνα σας
  • agenty-flowcharting-panel - πρόσθετο για οπτικοποίηση δυναμικού διαγράμματος από το draw.io

Η ενοποίηση με το ίδιο το Zabbix έχει ρυθμιστεί στο grafana, στοιχείο μενού ConfigurationData sourcesZabbix. Εκεί πρέπει να καθορίσετε τη διεύθυνση api του διακομιστή zabbix, έχω αυτό http://zabbix.local/zabbix/api_jsonrpc.php, και μια σύνδεση με κωδικό πρόσβασης για πρόσβαση. Εάν όλα γίνονται σωστά, κατά την αποθήκευση των ρυθμίσεων, θα εμφανιστεί ένα μήνυμα με τον αριθμό έκδοσης api: Έκδοση zabbix API: 5.0.1

Δημιουργία πίνακα ελέγχου

Εδώ ξεκινά η μαγεία του grafana και των πρόσθετων του.

πρόσθετο natel-discrete-panel
Έχουμε δεδομένα για την κατάσταση των κινητήρων στις γραμμές (λειτουργεί = 1, δεν λειτουργεί = 0). Χρησιμοποιώντας το διακριτό γράφημα, μπορούμε να σχεδιάσουμε μια κλίμακα που θα δείχνει: την κατάσταση του κινητήρα, πόσα λεπτά / ώρες ή % έχει λειτουργήσει και πόσο συχνά έχει ξεκινήσει.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Οπτικοποίηση κατάστασης κινητήρα

Κατά τη γνώμη μου, αυτό είναι ένα από τα καλύτερα γραφήματα για την απεικόνιση της απόδοσης του υλικού. Μπορείτε να δείτε αμέσως πόσο καιρό είναι σε αδράνεια, σε ποιες λειτουργίες λειτουργεί πιο συχνά. Μπορεί να υπάρχουν πολλά δεδομένα, είναι δυνατή η άθροισή τους κατά εύρη, η μετατροπή κατά τιμές (αν η τιμή είναι "1", τότε εμφανίζεται ως "ON")

πρόσθετο pierosavi-imageit-panel

Η εικόνα είναι βολική στη χρήση όταν έχετε ήδη σχεδιάσει ένα διάγραμμα ή σχέδιο του δωματίου στο οποίο θέλετε να εφαρμόσετε δεδομένα από αισθητήρες. Στις ρυθμίσεις οπτικοποίησης, πρέπει να καθορίσετε τη διεύθυνση url για την εικόνα και να προσθέσετε τα στοιχεία αισθητήρα που χρειάζεστε. Το στοιχείο εμφανίζεται στην εικόνα και μπορεί να τοποθετηθεί στη σωστή θέση με το ποντίκι.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Σχέδιο του κλιβάνου με μετρήσεις θερμοκρασίας και πίεσης

πρόσθετο agenty-flowcharting-panel

Θα ήθελα να σας πω περισσότερα σχετικά με τη δημιουργία μιας οπτικοποίησης FlowCharting, καθώς είναι ένα απίστευτα λειτουργικό εργαλείο. Σας επιτρέπει να δημιουργήσετε μια δυναμική μνημονική, τα στοιχεία της οποίας θα ανταποκρίνονται στις τιμές των μετρήσεων (αλλαγή χρώματος, θέσης, ονόματος κ.λπ.).

Λήψη δεδομένων

Η δημιουργία οποιουδήποτε στοιχείου οπτικοποίησης στο grafana ξεκινά με ένα αίτημα για δεδομένα από την πηγή, στην περίπτωσή μας είναι το zabbix. Χρησιμοποιώντας ερωτήματα, πρέπει να λάβουμε όλες τις μετρήσεις που θέλουμε να χρησιμοποιήσουμε στο διάγραμμα. Οι λεπτομέρειες μετρήσεων είναι τα ονόματα των στοιχείων δεδομένων στο Zabbix, μπορείτε να καθορίσετε τόσο μια ξεχωριστή μέτρηση όσο και ένα σύνολο με φιλτράρισμα μέσω μιας τυπικής έκφρασης. Στο παράδειγμά μου, το πεδίο Στοιχείο περιέχει την έκφραση: "/(^γραμμή 1)|(διαθεσιμότητα)|(κολοκυθάκια)/" - αυτό σημαίνει: επιλέξτε όλες τις μετρήσεις των οποίων το όνομα αρχίζει αυστηρά με "γραμμή 1" ή περιέχει τη λέξη "διαθεσιμότητα ή περιέχει τη λέξη "κολοκυθάκια"

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Παράδειγμα δημιουργίας αιτήματος για δεδομένα για τους κινητήρες της πρώτης γραμμής και τη διαθεσιμότητα πρώτων υλών

Μετατροπή δεδομένων

Τα δεδομένα προέλευσης μπορεί να μην είναι πάντα στη μορφή που πρέπει να τα εμφανίσουμε. Για παράδειγμα, έχουμε δεδομένα λεπτό προς λεπτό για το βάρος ενός προϊόντος σε ένα δοχείο (kg) και θέλουμε να εμφανίσουμε τον ρυθμό πλήρωσης σε t/h. Το κάνω ως εξής: Παίρνω τα δεδομένα βάρους και τα μετατρέπω με τη συνάρτηση delta graphana, η οποία υπολογίζει τη διαφορά μεταξύ των μετρικών τιμών, έτσι το τρέχον βάρος μετατρέπεται σε kg / λεπτό. Μετά πολλαπλασιάζω με 0.06 για να φέρω το αποτέλεσμα σε τόνους/ώρα. Εφόσον η μέτρηση βάρους χρησιμοποιείται σε πολλαπλά ερωτήματα, θα της δώσω ένα νέο ψευδώνυμο (setAlias) και θα το χρησιμοποιήσω στον κανόνα απόδοσης.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Ένα παράδειγμα χρήσης της παραμέτρου δέλτα και ενός πολλαπλασιαστή και μετονομασίας μιας μέτρησης σε ένα ερώτημα

Ακολουθεί ένα άλλο παράδειγμα μετασχηματισμού δεδομένων: Χρειάστηκε να υπολογίσω τον αριθμό των παρτίδων (εκκίνηση κύκλου = εκκίνηση κινητήρα). Η μέτρηση υπολογίζεται με βάση την κατάσταση κινητήρα "γραμμή 1 - αντλία δεξαμενής 1 (κατάσταση)". Μετασχηματισμός: αλλάζουμε τα δεδομένα της αρχικής μέτρησης με τη συνάρτηση δέλτα (διαφορά τιμής), έτσι η μέτρηση θα έχει την τιμή "+1" για να ξεκινήσει ο κινητήρας, "-1" για να σταματήσει και "0" όταν ο κινητήρας δεν αλλάξει την κατάστασή του. Στη συνέχεια αφαιρώ όλες τις τιμές μικρότερες από 1 και τις συνοψίζω. Το αποτέλεσμα είναι ο αριθμός των εκκινήσεων του κινητήρα.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Παράδειγμα μετατροπής δεδομένων από την τρέχουσα κατάσταση σε αριθμό εκκινήσεων

Τώρα για την ίδια την οπτικοποίηση

Στις ρυθμίσεις της οθόνης υπάρχει ένα κουμπί "Επεξεργασία σχεδίασης", εκκινεί ένα πρόγραμμα επεξεργασίας στο οποίο μπορείτε να σχεδιάσετε ένα διάγραμμα. Κάθε αντικείμενο στο διάγραμμα έχει τις δικές του παραμέτρους. Για παράδειγμα, εάν καθορίσετε ρυθμίσεις γραμματοσειράς στο πρόγραμμα επεξεργασίας, θα εφαρμοστούν στην οπτικοποίηση δεδομένων στο grafana.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Έτσι φαίνεται ο επεξεργαστής στο Draw.io

Μετά την αποθήκευση του σχήματος, θα εμφανιστεί στο graphana και θα είναι δυνατή η δημιουργία κανόνων για την αλλαγή στοιχείων.

Στις παραμέτρους () καθορίζουμε:

  • Επιλογές - ορίστε το όνομα του κανόνα (Όνομα κανόνα), το όνομα ή το ψευδώνυμο της μέτρησης της οποίας τα δεδομένα θα χρησιμοποιηθούν (Εφαρμογή στις μετρήσεις). Ο τύπος συγκέντρωσης δεδομένων (Συγκέντρωση) επηρεάζει το τελικό αποτέλεσμα της μέτρησης, επομένως το Last σημαίνει ότι θα επιλεγεί η τελευταία τιμή, το μέσο όρο σημαίνει τη μέση τιμή για την περίοδο που έχει επιλεγεί στην επάνω δεξιά γωνία.
  • Thresholds - παράμετρος τιμής κατωφλίου, περιγράφει τη λογική της εφαρμογής χρώματος, δηλαδή, το επιλεγμένο χρώμα θα εφαρμοστεί στα στοιχεία του διαγράμματος, ανάλογα με τα μετρικά δεδομένα. Στο παράδειγμά μου, εάν η τιμή των μετρήσεων είναι "0", η κατάσταση θα είναι "Ok", το χρώμα θα είναι πράσινο, εάν η τιμή είναι ">1", η κατάσταση θα είναι Κρίσιμη και το χρώμα θα είναι κόκκινο.
  • Αντιστοιχίσεις χρώματος/επεξήγησης εργαλείου" και "Αντιστοιχίσεις ετικετών/κειμένου" — επιλογή ενός στοιχείου κυκλώματος και το σενάριο συμπεριφοράς του. Στο πρώτο σενάριο, το αντικείμενο θα ζωγραφιστεί, στο δεύτερο - θα έχει κείμενο με δεδομένα από τη μέτρηση. Για να επιλέξετε ένα αντικείμενο στο διάγραμμα, πρέπει να πατήσετε το σύμβολο του κυκλώματος και να κάνετε κλικ στο διάγραμμα με το ποντίκι.

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Σε αυτό το παράδειγμα, βάφω την αντλία και το βέλος της κόκκινο αν λειτουργεί και πράσινο αν δεν λειτουργεί.

Με τη βοήθεια του πρόσθετου διαγράμματος ροής, κατάφερα να σχεδιάσω ένα διάγραμμα ολόκληρης της γραμμής, στο οποίο:

  1. το χρώμα των αδρανών αλλάζει ανάλογα με την κατάστασή τους
  2. υπάρχει συναγερμός για έλλειψη προϊόντος σε δοχεία
  3. εμφανίζεται η ρύθμιση συχνότητας κινητήρα
  4. ρυθμός πλήρωσης/εκφόρτισης της πρώτης δεξαμενής
  5. μετράται ο αριθμός των κύκλων λειτουργίας γραμμής (παρτίδα).

Grafana+Zabbix: Οπτικοποίηση της γραμμής παραγωγής
Οπτικοποίηση της γραμμής παραγωγής

Αποτέλεσμα

Το πιο δύσκολο μέρος για μένα ήταν να πάρω τα δεδομένα από τους ελεγκτές. Χάρη στην ευελιξία του Zabbix όσον αφορά την απόκτηση δεδομένων και την ευελιξία του Grafana μέσω προσθηκών, χρειάστηκαν μόνο μερικές ημέρες για να δημιουργηθεί μια ολοκληρωμένη οθόνη για την παρακολούθηση της γραμμής παραγωγής. Η οπτικοποίηση κατέστησε δυνατή την προβολή γραφημάτων και στατιστικών κατάστασης, καθώς και εύκολη πρόσβαση μέσω του ιστού σε οποιονδήποτε ενδιαφερόμενο - όλα αυτά κατέστησαν δυνατό τον γρήγορο εντοπισμό των σημείων συμφόρησης και της αναποτελεσματικής χρήσης των συγκεντρωτικών στοιχείων.

Συμπέρασμα

Μου άρεσε πολύ η δέσμη Zabbix + Grafana και συνιστώ να την προσέχετε εάν χρειάζεται να επεξεργάζεστε γρήγορα δεδομένα από ελεγκτές ή αισθητήρες χωρίς προγραμματισμό ή εφαρμογή σύνθετων εμπορικών προϊόντων. Φυσικά, αυτό δεν θα αντικαταστήσει τα επαγγελματικά συστήματα SCADA, αλλά θα είναι αρκετό ως εργαλείο για την κεντρική παρακολούθηση ολόκληρης της παραγωγής.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο