Video: Habr-Administratorkonsole. Ermöglicht Ihnen, Karma zu regulieren, Benutzer zu bewerten und zu sperren.
TL; DR: In diesem Artikel werde ich versuchen, ein Comic-Habr-Bedienfeld mit der Entwicklungsumgebung für die Industrieschnittstelle Webaccess/HMI Designer und dem WebOP-Terminal zu erstellen.
Bei der Mensch-Maschine-Schnittstelle (HMI) handelt es sich um eine Reihe von Systemen für die menschliche Interaktion mit gesteuerten Maschinen. Typischerweise wird dieser Begriff für Industriesysteme verwendet, die über einen Bediener und ein Bedienfeld verfügen.
WebOP — ein autonomes Industrieterminal zur Erstellung von Mensch-Maschine-Schnittstellen. Wird zur Erstellung von Produktionsschalttafeln, Überwachungssystemen, Kontrollräumen, Smart-Home-Controllern usw. verwendet. Unterstützt den direkten Anschluss an Industrieanlagen und kann als Teil eines SCADA-Systems arbeiten.
WebOP-Terminal – Hardware
Das WebOP-Terminal ist ein stromsparender Computer auf Basis eines ARM-Prozessors in einem einzigen Gehäuse mit Monitor und Touchscreen, der für die Ausführung eines Programms mit einer in HMI Designer erstellten grafischen Oberfläche konzipiert ist. Je nach Modell verfügen die Terminals über verschiedene Industrieschnittstellen an Bord: RS-232/422/485, CAN-Bus zum Anschluss an Automotive-Systeme, USB-Host-Port zum Anschluss weiterer Peripheriegeräte, USB-Client-Port zum Anschluss des Terminals an einen Computer, Audio Eingang und Audioausgang, MicroSD-Kartenleser für nichtflüchtigen Speicher und Einstellungsübertragung.
Die Geräte sind als preisgünstiger Ersatz für All-in-One-PCs positioniert, für Aufgaben, die keine leistungsstarken Prozessoren und die Ressourcen eines vollwertigen Desktop-Computers erfordern. WebOP kann als eigenständiges Terminal zur Steuerung und Dateneingabe/-ausgabe, gepaart mit anderen WebOPs oder als Teil eines SCADA-Systems arbeiten.
Das WebOP-Terminal kann direkt mit Industriegeräten verbunden werden
Passive Kühlung und IP66-Schutz
Aufgrund der geringen Wärmeableitung sind einige WebOP-Modelle komplett ohne aktive Luftkühlung konzipiert. Dies ermöglicht die Montage der Geräte in geräuschempfindlichen Bereichen und reduziert die Staubansammlung im Inneren des Gehäuses.
Die Frontplatte ist fugen- und fugenlos gefertigt, verfügt über die Schutzart IP66 und ermöglicht das direkte Eindringen von Wasser unter Druck.
Rückseite des WOP-3100T-Terminals
Nichtflüchtiger Speicher
Um Datenverlust zu verhindern, verfügt WebOP über 128 KB nichtflüchtigen Speicher, mit dem wie mit RAM gearbeitet werden kann. Es kann Zählerstände und andere kritische Daten speichern. Bei einem Stromausfall werden die Daten gespeichert und nach einem Neustart wiederhergestellt.
Remote-Update
Das auf dem Terminal laufende Programm kann über ein Ethernet-Netzwerk oder über die seriellen RS-232/485-Schnittstellen aus der Ferne aktualisiert werden. Dies vereinfacht die Wartung, da es nicht mehr erforderlich ist, alle Terminals aufzusuchen, um die Software zu aktualisieren.
WebOP-Modelle
WebAccess/HMI Designer-Entwicklungsumgebung
Im Auslieferungszustand ist das WebOP-Terminal nur ein ARM-Computer mit geringem Stromverbrauch, auf dem Sie jede Software ausführen können. Der Kern dieser Lösung ist jedoch die proprietäre WebAcess/HMI-Entwicklungsumgebung für industrielle Schnittstellen. Das System besteht aus zwei Komponenten:
- HMI-Designer — Umgebung zur Entwicklung von Schnittstellen und Programmierlogik. Läuft unter Windows auf dem Computer des Programmierers. Das endgültige Programm wird in einer Datei kompiliert und zur Laufzeit zur Ausführung auf das Terminal übertragen. Das Programm ist auf Russisch verfügbar.
- HMI-Runtime – Laufzeit zum Ausführen des kompilierten Programms auf dem endgültigen Terminal. Es funktioniert nicht nur auf WebOP-Terminals, sondern auch auf Advantech UNO, MIC und normalen Desktop-Computern. Es gibt Laufzeitversionen für Linux, Windows, Windows CE.
Hallo Welt – ein Projekt erstellen
Beginnen wir mit der Erstellung einer Testschnittstelle für unser Habr-Bedienfeld. Ich werde das Programm auf dem Terminal ausführen
Ein neues Projekt erstellen und eine Architektur auswählen
Auswahl des Kommunikationsprotokolls, über das das kompilierte Programm in WebOP geladen wird. In diesem Schritt können Sie eine serielle Schnittstelle auswählen oder die IP-Adresse des Terminals angeben.
Schnittstelle zur Projekterstellung. Auf der linken Seite befindet sich ein Baumdiagramm der Komponenten des zukünftigen Programms. Im Moment interessiert uns nur der Punkt „Bildschirme“, dabei handelt es sich direkt um die Bildschirme mit grafischen Oberflächenelementen, die auf dem Terminal angezeigt werden.
Erstellen wir zunächst zwei Bildschirme mit dem Text „Hello World“ und der Möglichkeit, mithilfe von Schaltflächen zwischen ihnen zu wechseln. Dazu fügen wir einen neuen Bildschirm, Bildschirm Nr. 2, hinzu und fügen auf jedem Bildschirm ein Textelement und zwei Schaltflächen zum Wechseln zwischen Bildschirmen (Bildschirmschaltflächen) hinzu. Lassen Sie uns jede Schaltfläche so konfigurieren, dass sie zum nächsten Bildschirm wechselt.
Schnittstelle zum Einstellen der Schaltfläche zum Wechseln zwischen Bildschirmen
Das Hello World-Programm ist fertig, jetzt können Sie es kompilieren und ausführen. Bei der Kompilierung kann es bei falsch angegebenen Variablen oder Adressen zu Fehlern kommen. Jeder Fehler gilt als schwerwiegend; das Programm wird nur dann kompiliert, wenn keine Fehler vorliegen.
Die Umgebung bietet die Möglichkeit, ein Terminal zu simulieren, sodass Sie das Programm lokal auf Ihrem Computer debuggen können. Es gibt zwei Arten von Simulationen:
- Online-Simulation — Es werden alle im Programm angegebenen externen Datenquellen verwendet. Dies können USOs oder über serielle Schnittstellen oder Modbus TCP angeschlossene Geräte sein.
- Offline-Simulation — Simulation ohne Verwendung externer Geräte.
Obwohl wir keine externen Daten haben, verwenden wir eine Offline-Simulation, nachdem wir das Programm zuvor kompiliert haben. Das endgültige Programm befindet sich im Projektordner mit dem Namen Projektname_Programmname.px3
Das in der Simulation laufende Programm kann mit dem Mauszeiger genauso gesteuert werden wie mit dem Touchscreen eines WebOP-Terminals. Wir sehen, dass alles wie vorgesehen funktioniert. Großartig.
Um das Programm auf ein physisches Terminal herunterzuladen, klicken Sie einfach auf die Schaltfläche „Herunterladen“. Da ich die Anbindung des Terminals an die Entwicklungsumgebung aber nicht konfiguriert habe, kann man die Datei einfach per USB-Stick oder MicroSD-Speicherkarte übertragen.
Die Programmoberfläche ist intuitiv, ich werde nicht jeden Grafikblock durchgehen. Das Erstellen von Hintergründen, Formen und Texten wird jedem klar sein, der bereits mit Word-ähnlichen Programmen gearbeitet hat. Um eine grafische Oberfläche zu erstellen, sind keine Programmierkenntnisse erforderlich; alle Elemente werden durch Ziehen mit der Maus auf das Formular hinzugefügt.
Arbeiten mit dem Gedächtnis
Nachdem wir nun wissen, wie man grafische Elemente erstellt, lernen wir, wie man mit dynamischen Inhalten und einer Skriptsprache arbeitet. Lassen Sie uns ein Balkendiagramm erstellen, das Daten aus einer Variablen anzeigt U $ 100. Wählen Sie in den Diagrammeinstellungen den Datentyp: 16-Bit-Ganzzahl und den Bereich der Diagrammwerte: von 0 bis 10.
Das Programm unterstützt das Schreiben von Skripten in drei Sprachen: VBScript, JavaScript und einer eigenen Sprache. Ich werde die dritte Option verwenden, da es dafür Beispiele in der Dokumentation und automatische Syntaxhilfe direkt im Editor gibt.
Fügen wir ein neues Makro hinzu:
Schreiben wir einen einfachen Code, um Daten in einer Variablen, die in einem Diagramm verfolgt werden kann, schrittweise zu ändern. Wir addieren 10 zur Variablen und setzen sie auf Null zurück, wenn sie größer als 100 ist.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Um das Skript in einer Schleife auszuführen, legen Sie es in den allgemeinen Setup-Einstellungen als Hauptmakro mit einem Ausführungsintervall von 250 ms fest.
Lassen Sie uns das Programm kompilieren und im Simulator ausführen:
In diesem Stadium haben wir gelernt, Daten im Speicher zu manipulieren und visuell anzuzeigen. Dies reicht bereits aus, um ein einfaches Überwachungssystem zu erstellen, das Daten von externen Geräten (Sensoren, Controller) empfängt und im Speicher aufzeichnet. Im HMI Designer stehen verschiedene Datenanzeigeblöcke zur Verfügung: in Form von Rundskalen mit Pfeilen, verschiedenen Diagrammen und Grafiken. Mithilfe von JavaScript-Skripten können Sie Daten von externen Quellen über HTTP herunterladen.
Habr-Bedienfeld
Mit den erworbenen Fähigkeiten werden wir eine Comic-Oberfläche für die Habr-Administratorkonsole erstellen.
Unsere Fernbedienung sollte in der Lage sein:
- Benutzerprofile wechseln
- Speichern Sie Karma- und Bewertungsdaten
- Ändern Sie Karma- und Bewertungswerte mithilfe von Schiebereglern
- Wenn Sie auf die Schaltfläche „Verbieten“ klicken, sollte das Profil als gesperrt markiert werden und der Avatar sollte durchgestrichen angezeigt werden
Wir zeigen jedes Profil auf einer separaten Seite an, sodass wir für jedes Profil eine Seite erstellen. Wir werden Karma und Bewertung in lokalen Variablen im Speicher speichern, die beim Start des Programms mit dem Setup-Makro initialisiert werden.
Karma und Bewertung anpassen
Um das Karma anzupassen, verwenden wir den Schieberegler (Schiebeschalter). Als Aufnahmeadresse geben wir die im Setup-Makro initialisierte Variable an. Begrenzen wir den Wertebereich des Schiebereglers auf 0 bis 1500. Wenn sich nun der Schieberegler bewegt, werden neue Daten in den Speicher geschrieben. In diesem Fall entspricht der Anfangszustand des Schiebereglers den Werten der Variablen im Speicher.
Um die numerischen Werte von Karma und Bewertung anzuzeigen, verwenden wir das numerische Anzeigeelement. Das Funktionsprinzip ähnelt dem Diagramm aus dem Beispielprogramm „Hello World“, wir geben lediglich die Adresse der Variablen in Monitor Address an.
Schaltfläche „Verbieten“.
Die Schaltfläche „Verbot“ wird mithilfe des Toggle-Switch-Elements implementiert. Das Prinzip der Datenspeicherung ähnelt den obigen Beispielen. In den Einstellungen können Sie je nach Zustand des Buttons unterschiedliche Texte, Farben oder Bilder auswählen.
Wenn die Taste gedrückt wird, sollte der Avatar rot durchgestrichen sein. Dies lässt sich einfach mit dem Picture Display-Block umsetzen. Sie können damit mehrere Bilder angeben, die mit dem Status der Umschalttaste verknüpft sind. Dazu erhält der Baustein die gleiche Adresse wie der Baustein mit der Schaltfläche und die Anzahl der Zustände. Das Bild mit Namensschildern unter dem Avatar ist ähnlich aufgebaut.
Abschluss
Insgesamt hat mir das Produkt gefallen. Zuvor hatte ich Erfahrung mit der Verwendung eines Android-Tablets für ähnliche Aufgaben, aber die Entwicklung einer Schnittstelle dafür ist viel schwieriger und Browser-APIs ermöglichen keinen vollständigen Zugriff auf die Peripheriegeräte. Ein WebOP-Terminal kann eine Kombination aus Android-Tablet, Computer und Controller ersetzen.
HMI Designer ist trotz seines veralteten Designs recht fortschrittlich. Ohne besondere Programmierkenntnisse können Sie schnell eine funktionierende Benutzeroberfläche entwerfen. Der Artikel geht nicht auf alle Grafikblöcke ein, von denen es viele gibt: animierte Rohre, Zylinder, Diagramme, Kippschalter. Es unterstützt viele gängige Industriesteuerungen sofort und enthält Datenbankkonnektoren.
Referenzen
Die Entwicklungsumgebung WebAccess/HMI Designer und Runtime kann heruntergeladen werden