Βίντεο: Κονσόλα διαχειριστή Habr. Σας επιτρέπει να ρυθμίζετε το κάρμα, να αξιολογείτε και να απαγορεύετε τους χρήστες.
TL? DR: Σε αυτό το άρθρο θα προσπαθήσω να δημιουργήσω έναν πίνακα ελέγχου κόμικ Habr χρησιμοποιώντας το περιβάλλον ανάπτυξης βιομηχανικής διεπαφής Webaccess/HMI Designer και το τερματικό WebOP.
Η διεπαφή ανθρώπου-μηχανής (HMI) είναι ένα σύνολο συστημάτων για ανθρώπινη αλληλεπίδραση με ελεγχόμενες μηχανές. Συνήθως αυτός ο όρος εφαρμόζεται σε βιομηχανικά συστήματα που διαθέτουν χειριστή και πίνακα ελέγχου.
WebOP — ένα αυτόνομο βιομηχανικό τερματικό για τη δημιουργία διεπαφών ανθρώπου-μηχανής. Χρησιμοποιείται για τη δημιουργία πινάκων ελέγχου παραγωγής, συστημάτων παρακολούθησης, δωματίων ελέγχου, ελεγκτών έξυπνου σπιτιού κ.λπ. Υποστηρίζει απευθείας σύνδεση με βιομηχανικό εξοπλισμό και μπορεί να λειτουργήσει ως μέρος ενός συστήματος SCADA.
Τερματικό WebOP - υλικό
Το τερματικό WebOP είναι ένας υπολογιστής χαμηλής κατανάλωσης που βασίζεται σε επεξεργαστή ARM, σε μία θήκη με οθόνη και οθόνη αφής, σχεδιασμένος να εκτελεί ένα πρόγραμμα με γραφική διεπαφή που δημιουργήθηκε στο HMI Designer. Ανάλογα με το μοντέλο, τα τερματικά διαθέτουν διάφορες βιομηχανικές διεπαφές επί του σκάφους: RS-232/422/485, CAN bus για σύνδεση σε συστήματα αυτοκινήτων, θύρα USB Host για σύνδεση πρόσθετων περιφερειακών, θύρα USB Client για σύνδεση του τερματικού σε υπολογιστή, ήχος είσοδος και έξοδος ήχου, συσκευή ανάγνωσης καρτών MicroSD για μη πτητική μνήμη και μεταφορά ρυθμίσεων.
Οι συσκευές τοποθετούνται ως αντικατάσταση προϋπολογισμού για υπολογιστές all-in-one, για εργασίες που δεν απαιτούν ισχυρούς επεξεργαστές και τους πόρους ενός πλήρους επιτραπέζιου υπολογιστή. Το WebOP μπορεί να λειτουργήσει ως αυτόνομο τερματικό για έλεγχο και εισαγωγή/εξαγωγή δεδομένων, σε σύζευξη με άλλα WebOP ή ως μέρος ενός συστήματος SCADA.
Το τερματικό WebOP μπορεί να συνδεθεί απευθείας με βιομηχανικές συσκευές
Παθητική ψύξη και προστασία IP66
Λόγω της χαμηλής απαγωγής θερμότητας, ορισμένα μοντέλα WebOP έχουν σχεδιαστεί εξ ολοκλήρου χωρίς ενεργή ψύξη αέρα. Αυτό επιτρέπει στις συσκευές να τοποθετούνται σε περιοχές που είναι ευαίσθητες στα επίπεδα θορύβου και μειώνει την ποσότητα της σκόνης που εισέρχεται μέσα στο περίβλημα.
Ο μπροστινός πίνακας είναι κατασκευασμένος χωρίς κενά ή αρμούς, έχει επίπεδο προστασίας IP66 και επιτρέπει την άμεση είσοδο νερού υπό πίεση.
Πίσω πίνακας του ακροδέκτη WOP-3100T
Μη-πτητική μνήμη
Για να αποφευχθεί η απώλεια δεδομένων, το WebOP διαθέτει 128 Kb μη πτητική μνήμη, η οποία μπορεί να εργαστεί με τον ίδιο τρόπο όπως και με τη μνήμη RAM. Μπορεί να αποθηκεύσει ενδείξεις του μετρητή και άλλα κρίσιμα δεδομένα. Σε περίπτωση διακοπής ρεύματος, τα δεδομένα θα αποθηκευτούν και θα αποκατασταθούν μετά από επανεκκίνηση.
Απομακρυσμένη ενημέρωση
Το πρόγραμμα που εκτελείται στο τερματικό μπορεί να ενημερωθεί εξ αποστάσεως μέσω δικτύου Ethernet ή μέσω σειριακών διεπαφών RS-232/485. Αυτό απλοποιεί τη συντήρηση, καθώς εξαλείφει την ανάγκη μετάβασης σε όλα τα τερματικά για ενημέρωση του λογισμικού.
Μοντέλα WebOP
Περιβάλλον ανάπτυξης WebAccess/HMI Designer
Από το κουτί, το τερματικό WebOP είναι απλώς ένας υπολογιστής ARM χαμηλής κατανάλωσης στον οποίο μπορείτε να εκτελέσετε οποιοδήποτε λογισμικό, αλλά το όλο νόημα αυτής της λύσης είναι το ιδιόκτητο περιβάλλον ανάπτυξης βιομηχανικής διεπαφής WebAcess/HMI. Το σύστημα αποτελείται από δύο στοιχεία:
- Σχεδιαστής HMI — περιβάλλον για την ανάπτυξη διεπαφών και λογικής προγραμματισμού. Εκτελείται υπό Windows στον υπολογιστή του προγραμματιστή. Το τελικό πρόγραμμα μεταγλωττίζεται σε ένα αρχείο και μεταφέρεται στο τερματικό για εκτέλεση κατά το χρόνο εκτέλεσης. Το πρόγραμμα είναι διαθέσιμο στα ρωσικά.
- HMI Runtime — χρόνος εκτέλεσης για την εκτέλεση του μεταγλωττισμένου προγράμματος στο τελικό τερματικό. Μπορεί να λειτουργήσει όχι μόνο σε τερματικά WebOP, αλλά και σε Advantech UNO, MIC και κανονικούς επιτραπέζιους υπολογιστές. Υπάρχουν εκδόσεις χρόνου εκτέλεσης για Linux, Windows, Windows CE.
Γεια σου κόσμο - δημιουργία έργου
Ας ξεκινήσουμε τη δημιουργία μιας δοκιμαστικής διεπαφής για τον πίνακα ελέγχου Habr. Θα τρέξω το πρόγραμμα στο τερματικό
Δημιουργία νέου έργου και επιλογή αρχιτεκτονικής
Επιλέγοντας το πρωτόκολλο επικοινωνίας μέσω του οποίου το μεταγλωττισμένο πρόγραμμα θα φορτωθεί στο WebOP. Σε αυτό το βήμα, μπορείτε να επιλέξετε μια σειριακή διεπαφή ή να καθορίσετε τη διεύθυνση IP του τερματικού.
Διεπαφή δημιουργίας έργου. Στην αριστερή πλευρά υπάρχει ένα δενδρικό διάγραμμα των στοιχείων του μελλοντικού προγράμματος. Προς το παρόν, μας ενδιαφέρει μόνο το στοιχείο Οθόνες, αυτές είναι απευθείας οι οθόνες με στοιχεία γραφικής διεπαφής που θα εμφανίζονται στο τερματικό.
Αρχικά, ας δημιουργήσουμε δύο οθόνες με το κείμενο "Hello World" και τη δυνατότητα εναλλαγής μεταξύ τους χρησιμοποιώντας κουμπιά. Για να γίνει αυτό, θα προσθέσουμε μια νέα οθόνη, την οθόνη #2, και σε κάθε οθόνη θα προσθέσουμε ένα στοιχείο κειμένου και δύο κουμπιά για εναλλαγή μεταξύ οθονών (Screen Buttons). Ας διαμορφώσουμε κάθε κουμπί για μετάβαση στην επόμενη οθόνη.
Διεπαφή για τη ρύθμιση του κουμπιού για εναλλαγή μεταξύ οθονών
Το πρόγραμμα Hello World είναι έτοιμο, τώρα μπορείτε να το μεταγλωττίσετε και να το εκτελέσετε. Στο στάδιο της μεταγλώττισης μπορεί να υπάρχουν σφάλματα σε περίπτωση εσφαλμένα καθορισμένων μεταβλητών ή διευθύνσεων. Οποιοδήποτε σφάλμα θεωρείται μοιραίο· το πρόγραμμα θα μεταγλωττιστεί μόνο εάν δεν υπάρχουν σφάλματα.
Το περιβάλλον παρέχει τη δυνατότητα προσομοίωσης ενός τερματικού, ώστε να μπορείτε να διορθώσετε το πρόγραμμα στον υπολογιστή σας τοπικά. Υπάρχουν δύο τύποι προσομοίωσης:
- Online προσομοίωση — θα χρησιμοποιηθούν όλες οι εξωτερικές πηγές δεδομένων που καθορίζονται στο πρόγραμμα. Αυτά μπορεί να είναι USO ή συσκευές συνδεδεμένες μέσω σειριακών διεπαφών ή Modbus TCP.
- Προσομοίωση εκτός σύνδεσης — προσομοίωση χωρίς τη χρήση εξωτερικών συσκευών.
Ενώ δεν έχουμε εξωτερικά δεδομένα, χρησιμοποιούμε προσομοίωση εκτός σύνδεσης, έχοντας προηγουμένως μεταγλωττίσει το πρόγραμμα. Το τελικό πρόγραμμα θα βρίσκεται στο φάκελο του έργου, με το όνομα ProjectName_ProgramName.px3
Το πρόγραμμα που εκτελείται στην προσομοίωση μπορεί να ελεγχθεί με τον κέρσορα του ποντικιού με τον ίδιο τρόπο που θα γινόταν στην οθόνη αφής ενός τερματικού WebOP. Βλέπουμε ότι όλα λειτουργούν όπως πρέπει. Εξαιρετική.
Για να κάνετε λήψη του προγράμματος σε ένα φυσικό τερματικό, απλώς κάντε κλικ στο κουμπί Λήψη. Όμως, επειδή δεν διαμόρφωσα τη σύνδεση του τερματικού στο περιβάλλον ανάπτυξης, μπορείτε απλώς να μεταφέρετε το αρχείο χρησιμοποιώντας μια μονάδα flash USB ή μια κάρτα μνήμης MicroSD.
Η διεπαφή του προγράμματος είναι διαισθητική, δεν θα περάσω από κάθε μπλοκ γραφικών. Η δημιουργία φόντου, σχημάτων και κειμένου θα είναι σαφής σε οποιονδήποτε έχει χρησιμοποιήσει προγράμματα παρόμοια με το Word. Για να δημιουργήσετε μια γραφική διεπαφή, δεν απαιτούνται δεξιότητες προγραμματισμού· όλα τα στοιχεία προστίθενται σύροντας το ποντίκι στη φόρμα.
Εργασία με τη μνήμη
Τώρα που ξέρουμε πώς να δημιουργούμε γραφικά στοιχεία, ας μάθουμε πώς να εργαζόμαστε με δυναμικό περιεχόμενο και μια γλώσσα σεναρίου. Ας δημιουργήσουμε ένα γράφημα ράβδων που εμφανίζει δεδομένα από μια μεταβλητή U $ 100. Στις ρυθμίσεις γραφήματος, επιλέξτε τον τύπο δεδομένων: ακέραιος 16-bit και το εύρος τιμών γραφήματος: από 0 έως 10.
Το πρόγραμμα υποστηρίζει τη σύνταξη σεναρίων σε τρεις γλώσσες: VBScript, JavaScript και τη δική του γλώσσα. Θα χρησιμοποιήσω την τρίτη επιλογή γιατί υπάρχουν παραδείγματα για αυτήν στην τεκμηρίωση και τη βοήθεια αυτόματης σύνταξης απευθείας στον επεξεργαστή.
Ας προσθέσουμε μια νέα μακροεντολή:
Ας γράψουμε έναν απλό κώδικα για να αλλάξουμε σταδιακά δεδομένα σε μια μεταβλητή που μπορεί να παρακολουθηθεί σε ένα γράφημα. Θα προσθέσουμε 10 στη μεταβλητή και θα τη μηδενίσουμε όταν είναι μεγαλύτερη από 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Για να εκτελέσετε το σενάριο σε βρόχο, ορίστε το στις ρυθμίσεις Γενικής εγκατάστασης ως Main Macro, με διάστημα εκτέλεσης 250ms.
Ας μεταγλωττίσουμε και να εκτελέσουμε το πρόγραμμα στον προσομοιωτή:
Σε αυτό το στάδιο, μάθαμε να χειριζόμαστε δεδομένα στη μνήμη και να τα εμφανίζουμε οπτικά. Αυτό είναι ήδη αρκετό για τη δημιουργία ενός απλού συστήματος παρακολούθησης, λήψης δεδομένων από εξωτερικές συσκευές (αισθητήρες, ελεγκτές) και εγγραφή τους στη μνήμη. Διάφορα μπλοκ εμφάνισης δεδομένων είναι διαθέσιμα στο HMI Designer: με τη μορφή κυκλικών καντράν με βέλη, διάφορα γραφήματα και γραφήματα. Χρησιμοποιώντας σενάρια JavaScript, μπορείτε να κάνετε λήψη δεδομένων από εξωτερικές πηγές μέσω HTTP.
Πίνακας ελέγχου Habr
Χρησιμοποιώντας τις αποκτηθείσες δεξιότητες, θα φτιάξουμε μια διεπαφή κόμικ για την κονσόλα διαχειριστή Habr.
Το τηλεχειριστήριό μας θα πρέπει να μπορεί:
- Αλλαγή προφίλ χρήστη
- Αποθηκεύστε το κάρμα και τα δεδομένα αξιολόγησης
- Αλλάξτε τις τιμές κάρμα και βαθμολογίας χρησιμοποιώντας ρυθμιστικά
- Όταν κάνετε κλικ στο κουμπί "απαγόρευση", το προφίλ πρέπει να επισημανθεί ως αποκλεισμένο, το avatar θα πρέπει να αλλάξει σε διαγραμμένο
Θα εμφανίσουμε κάθε προφίλ σε ξεχωριστή σελίδα, επομένως θα δημιουργήσουμε μια σελίδα για κάθε προφίλ. Θα αποθηκεύσουμε το κάρμα και τη βαθμολογία σε τοπικές μεταβλητές στη μνήμη, οι οποίες θα αρχικοποιηθούν χρησιμοποιώντας το Setup Macro όταν ξεκινήσει το πρόγραμμα.
Προσαρμογή κάρμα και βαθμολογία
Για να ρυθμίσουμε το κάρμα θα χρησιμοποιήσουμε το ρυθμιστικό (Slide Switch). Καθορίζουμε τη μεταβλητή που έχει αρχικοποιηθεί στο Setup Macro ως διεύθυνση εγγραφής. Ας περιορίσουμε το εύρος των τιμών του ρυθμιστικού από 0 έως 1500. Τώρα, όταν το ρυθμιστικό μετακινηθεί, νέα δεδομένα θα εγγραφούν στη μνήμη. Σε αυτήν την περίπτωση, η αρχική κατάσταση του ρυθμιστικού θα αντιστοιχεί στις τιμές της μεταβλητής στη μνήμη.
Για να εμφανίσουμε τις αριθμητικές τιμές του κάρμα και της βαθμολογίας, θα χρησιμοποιήσουμε το στοιχείο Αριθμητική εμφάνιση. Η αρχή της λειτουργίας του είναι παρόμοια με το διάγραμμα από το παράδειγμα του προγράμματος "Hello World", απλώς υποδεικνύουμε τη διεύθυνση της μεταβλητής στη Διεύθυνση παρακολούθησης.
Κουμπί απαγόρευσης
Το κουμπί «απαγόρευση» υλοποιείται χρησιμοποιώντας το στοιχείο Εναλλαγής διακόπτη. Η αρχή της αποθήκευσης δεδομένων είναι παρόμοια με τα παραπάνω παραδείγματα. Στις ρυθμίσεις, μπορείτε να επιλέξετε διαφορετικό κείμενο, χρώμα ή εικόνα, ανάλογα με την κατάσταση του κουμπιού.
Όταν πατηθεί το κουμπί, το avatar πρέπει να διαγράφεται με κόκκινο χρώμα. Αυτό είναι εύκολο να εφαρμοστεί χρησιμοποιώντας το μπλοκ Picture Display. Σας επιτρέπει να καθορίσετε πολλές εικόνες που σχετίζονται με την κατάσταση του κουμπιού Εναλλαγή διακόπτη. Για να γίνει αυτό, δίνεται στο μπλοκ την ίδια διεύθυνση με το μπλοκ με το κουμπί και τον αριθμό των καταστάσεων. Η εικόνα με τις πινακίδες κάτω από το avatar έχει ρυθμιστεί με παρόμοιο τρόπο.
Συμπέρασμα
Συνολικά, μου άρεσε το προϊόν. Προηγουμένως, είχα εμπειρία χρησιμοποιώντας ένα tablet Android για παρόμοιες εργασίες, αλλά η ανάπτυξη μιας διεπαφής για αυτό είναι πολύ πιο δύσκολη και τα API του προγράμματος περιήγησης δεν επιτρέπουν την πλήρη πρόσβαση στα περιφερειακά. Ένα τερματικό WebOP μπορεί να αντικαταστήσει έναν συνδυασμό tablet Android, υπολογιστή και ελεγκτή.
Το HMI Designer, παρά τον αρχαϊκό σχεδιασμό του, είναι αρκετά προηγμένο. Χωρίς ειδικές δεξιότητες προγραμματισμού, μπορείτε να σχεδιάσετε γρήγορα μια διεπαφή εργασίας. Το άρθρο δεν εξετάζει όλα τα μπλοκ γραφικών, από τα οποία υπάρχουν πολλά: κινούμενοι σωλήνες, κύλινδροι, γραφήματα, διακόπτες εναλλαγής. Υποστηρίζει πολλούς δημοφιλείς βιομηχανικούς ελεγκτές εκτός συσκευασίας και περιέχει συνδέσμους βάσης δεδομένων.
παραπομπές
Μπορείτε να κατεβάσετε το περιβάλλον ανάπτυξης WebAccess/HMI Designer και Runtime
→
Πηγή: www.habr.com