SCADA-Visualisierung für IoT-Projekte [Free Library]

Es gibt viele IoT SCADA-Lösungen für Fabriken und andere Fertigungsanforderungen. Es gibt jedoch Fälle (und ziemlich viele), in denen Sie Ihr eigenes SCADA-System entwickeln müssen, um die spezifischen Anforderungen Ihres Projekts abzudecken.

Originalartikel - IoT-Dashboard-Bibliothek: Visualisieren Sie SCADA im Handumdrehen [Kostenlose IoT-Bibliothek]

Wir verwenden oft ein fantastisches Qt-Framework für die Implementierung komplexer IoT-Lösungen. Bei einer Reihe von SCADA- und SCADA-ähnlichen Projekten haben wir festgestellt, dass ein schnelles Tool für die Entwicklung von Geräte-Dashboards erforderlich ist. Aus diesem Grund haben wir eine superleichte inoffizielle Qt-Bibliothek entwickelt. Die Bibliothek ist Open Source, anpassbar und kann unter MIT-Lizenz kostenlos verwendet werden. Wir teilen auch eine kleine Reihe von entwickelten Widgets.

Viel Spaß und benutze Qt;)

README : Diese Bibliothek wurde für Desktop-, Mobil- und eingebettete Projekte erstellt, die auf Qt entwickelt wurden. Um es zu verwenden, sollten Sie Qt / C ++ und QML kennen.

Einführung in QSimpleScada


Wir stellen Ihnen eine raffinierte Bibliothek für Ihre IoT-Projekte vor. Wir haben QSimpleScada entwickelt, um die Visualisierung von Daten zu beschleunigen und zu vereinfachen, damit wir (und Sie) uns auf die Entwicklung von Automatisierungsalgorithmen konzentrieren können, die rocken.

Es wurde hauptsächlich entwickelt, um die Kosten für IoT-Lösungen zu beschleunigen und folglich zu senken .

Was ist QSimpleScada?


Es ist eine Bibliothek, die die Verbindung zu und Bearbeitung von Widgets vollständig übernimmt. Mit QSimpleScada können Sie ganz einfach eine Visualisierung von IoT-Daten mit Ihrer Maus und einem kleinen Code erstellen. Wenn Sie mit dem Layout zufrieden sind, speichern Sie die generierte XML-Datei und verwenden Sie sie in Ihrem Projekt.

Die Bibliothek wird mit Qt / C ++ erstellt und das Basis-Widget basiert auf C ++. Es gibt eine Schnittstelle für QML, sodass Sie unabhängig voneinander einzelne Widgets in QML erstellen können (wie beim Erstellen klassischer QML-Benutzeroberflächen) und diese unterwegs in Ihre App hochladen können.

Warum brauche ich es?


Nun, Sie tun es, wenn Sie ein Qt-Entwickler oder ein Unternehmen sind und:

  • Halten Sie bei Ihrem Projekt strenge Fristen und komplexe Datenauswertungen ein
  • Mobile / Embedded / Desktop-IoT-Projekte müssen häufig prototypisiert werden
  • Benötigen Sie ein One-Stop-Tool für verschiedene Qt-Projekte
  • Sie möchten / haben keine Zeit / Ressourcen, um Dashboards von Grund auf neu zu entwickeln

Wenn es bei keinem der oben genannten Punkte um Sie geht, dann tun Sie es nicht.

Warum IoT-Dashboards erstellen?


Nun, es mag ein bisschen überflüssig klingen, also können Sie diesen Abschnitt überspringen, wenn diese Frage für Sie selbstverständlich ist. Ansonsten gibt es einige Gründe, Informationen aus dem Internet der Dinge zu visualisieren.

Es ist die grundlegende HMI-Komponente (Human-Machine Interface) für buchstäblich jedes IoT- oder Steuerungssystem. Weitaus besser als der Textansatz, wenn Benutzer relevante Daten unterwegs sehen sollen. Dies gilt sowohl für klassische SCADA- als auch für SCADA-Projekte.

In unserem UBreez haben wir beispielsweise QSimpleScada verwendet, um Luftwerte zu visualisieren. Vergleichen Sie das Display selbst. Was sieht also ordentlicher und klarer aus, selbst wenn es viele Sensor-Widgets enthält? L.

Text vs Visualisierung

Mithilfe von Dashboards können Sie Abweichungen von Standards sofort hervorheben, feststellen, wo eine Fehlfunktion auftritt, den Live-Standort verfolgen, Trends anzeigen und andere wertvolle Informationen anzeigen. Dies spart Benutzern Zeit beim Verständnis der Daten, die Ihr SCADA-System sammelt, und sie können reagieren und entscheiden, wie sie schneller handeln möchten.

Verwenden von QSimpleScada


Hier sind die Schritte zum Integrieren von QSimpleScada Version 0.9.x in Ihr Projekt:

Schritt 1: Installieren


Über Paketmanager:

Wenn Sie mit Qt versierte Lösungen erstellen, verwenden Sie höchstwahrscheinlich den qpm-Paketmanager, sodass kein weiterer Chat erforderlich ist. Falls Sie dies (noch) nicht tun, laden Sie es hier herunter: https://www.qpm.io

Um über qpm zu installieren, führen Sie Folgendes aus:

qpm install com.indeema.qsimplescada

Und füge hinzu:

include (../vendor/vendor.pri)

In die * .pro-Datei Ihres Projekts.

Probieren Sie als Bonus unser Widget-Preset aus:

qpm install com.indeema.eeiot

Vom Github:

Um das Repo zu klonen, gehen Sie zu:
https://github.com/IndeemaSoftware/QSimpleScada

Um auch vorkonfigurierte Widgets hinzuzufügen, klonen Sie:
https://github.com/IndeemaSoftware/EEIoT

Und füge hinzu:

 include($$PWD/com/indeema/QSimpleScada/com_indeema_QSimpleScada.pri) 

 include($$PWD/com/indeema/eeiot/com_indeema_eeiot.pri) 

In die * .pro-Datei.

Verwenden der Binärversion:

https://github.com/IndeemaSoftware/QSimpleScada/releases

Schritt 2: Konfigurieren


Sobald Sie die Bibliothek heruntergeladen und in Ihr Projekt installiert haben:

1. Erstellen Sie ein neues Gerät, das in Ihrem Dashboard dargestellt werden soll. Geben Sie ihm einen Namen und eine IP-Adresse:

 QScadaDeviceInfo *lDeviceInfo = new QScadaDeviceInfo(); 

 lDeviceInfo->setName("Test Device"); 

 lDeviceInfo->setIp(QHostAddress("127.0.0.1")); 

2. Erstellen Sie eine Controller-Klasse, die alle späteren Geräte und alle mit Geräten verbundenen Karten behandelt:

 QScadaBoardController *</code><code>mController</code><code> = new QScadaBoardController();  mController->appendDevice(lDeviceInfo) 

3. Rufen Sie die Methode initBoardForDeviceIp auf, um eine neue Karte für das bereits angehängte Gerät zu erstellen. Wenn sich kein Gerät mit einer bestimmten IP befindet, wird die Karte nicht erstellt.

 mController->initBoardForDeviceIp("127.0.0.1"); 

4. Stellen Sie den bearbeitbaren Modus für Ihren Controller ein, um das Erstellen, Verschieben und Ändern der Größe der Controller zu ermöglichen.

 mController->setEditingMode(true); 

Wenn der Bearbeitungsmodus aktiviert ist, wird im modalen Fenster ein gepunkteter Hintergrund angezeigt:

IoT Dashboar Builder

5. Fügen Sie Ihrem Widget ein Rasterlayout hinzu und fügen Sie dann Ihren Controller zu diesem Widget hinzu:

QGridLayout * mainLayout = new QGridLayout(ui->centralWidget);

mainLayout->addWidget( mController );

Arbeiten mit Widgets

Wir haben auch eine EEIoT-Bibliothek mit einer Reihe vorkonfigurierter Widgets entwickelt. Sie können es unter https://github.com/IndeemaSoftware/EEIoT herunterladen und zunächst ausprobieren.

So verwenden Sie eine Widget-Sammlung:

Rufen Sie die Funktion mit URL zu QML-Ressourcen auf, um den Controller über den Speicherort von QML-Widgets zu informieren:
QMLConfig::instance.appendQMLPath(:/com/indeema/eeiot/EEIoT/);

Singletone QMLConfig befindet sich in "qscadaconfig.h"
Hier verwenden wir EEIoT als Gruppe für alle darin enthaltenen Widgets. Sie können eine oder mehrere Gruppen konfigurieren.
Hinweis: Wenn Sie zwei Ordner mit demselben Namen an verschiedenen Speicherorten erstellen, löscht der zweite (später erstellte) den ersten.

Sie können über QSimpleScada auf alle dynamischen Eigenschaften zugreifen, die QML bilden (in einer MetaData-Liste aufgeführt), sodass Sie schnell und einfach Ihre eigenen komplexen Dashboards erstellen können.

Schritt 3: Verwenden


Mit unserem einfachen Editor können Sie Ihr erstes Dashboard erstellen: https://github.com/IndeemaSoftware/QSimpleScadaSample
Richten Sie dann QScadaBoardController in Ihrer App ohne Geräte und Boards ein und rufen Sie an:
mController->openProject(QString <file>)
Dabei ist <Datei> ein vollständiger Pfad zu Ihrer Projektdatei (* .irp).

Zum Beispiel:

 mController->openProject(QString :/com/indeema/eeiot/EEIoT/) 


Sehen Sie QSimpleScada in Aktion


Besuchen Sie unser GitHub-Profil, um einfache Apps zu erkunden, die die Arbeit der QSimpleScada-Bibliothek zeigen:

  • Wetter App



Dies ist eine einfache App, die wetterbezogene Daten von 3 Widgets visualisiert:

  • Temperatur
  • Luftfeuchtigkeit
  • Druck

QSimpleScada und EEIoT werden verwendet, um die Anzeige und Konnektivität des Dashboards zu verwalten. Alle Wetter-Echtzeitdaten, die wir von der Openweathermap-API erhalten. Sie können den Code unter https://github.com/IndeemaSoftware/QSimpleScadaSample herunterladen

So zeigen Sie die aktuellen Messwerte für Ihre Stadt an:

Geben Sie Ihre Stadt gefolgt von Komma und Ländercode wie folgt ein:
Kiew, ua

und klicken Sie auf die Schaltfläche Senden .

Dadurch werden Temperatur, Luftfeuchtigkeit und Druck für Ihre Region aktualisiert.

Wetter Dasboard für Lviv

  • Builder App



Ein weiteres Beispiel für die Verwendung von QSimpleScada ist die Builder-Anwendung, mit der wir unsere Dashboards erstellen und in * .irp-Dateien speichern können. Ein einfacher Dashboard-Editor, der QSimpleScada verwendet, um das erforderliche Dashboard mit EEIoT-Widgets zu erstellen und das Dashboard-Setup für die spätere Verwendung zu speichern. In diesem Beispiel haben wir ein Dashboard erstellt, das in der oben genannten Wetteranwendung verwendet wurde.

Der Code ist auch unter https://github.com/IndeemaSoftware/QSimpleScadaSample verfügbar

Weitere Tools für Sie


Wir stellen fest, dass die Einführung des Internet der Dinge jede Branche beeinflusst und unseren Ansatz für den Einsatz von Technologie neu definiert. Wir haben dieses Thema in 6 vielversprechenden Anwendungen für den industriellen IoT- Artikel ausführlich behandelt, und es ist uns eine Freude, den Fortschritt bei der Automatisierung voranzutreiben, den die 4. industrielle Revolution mit sich bringt.

Verständnis und Kontext


Wenn alle Projekte in Stein gemeißelt würden, wäre die Entwicklungswelt eine Utopie. Je klarer das ursprüngliche Ziel und die Anforderungen sind und je besser das gesamte Team sie versteht, desto schlanker ist ein Projekt. Lesen Sie: Um Ihr Wissen über Besonderheiten und typische Fallstricke bei IoT-Projekten zu vertiefen:


Spoiler : Finden Sie die Vorlagen für die projektbezogene Dokumentation, damit Sie die Anforderungen kommunizieren und sie mit weniger Aufwand in umsetzbare Spezifikationen umwandeln können.

Schätzung der Kosten und der Zeit


Ein gründliches Verständnis der Zeit und der Ressourcen, die Sie benötigen, ist nahezu unmöglich. Um Ihnen einen Überblick über die Komplexität (berechnet in Zeit und Kosten) zu geben, finden Sie hier einen IoT-spezifischen Rechner:

Kostenrechner für IoT-Lösung

Entwicklungswerkzeuge


Wir teilen unser Toolkit für eine schnellere und effizientere Entwicklung von IoT-Projekten und laden unsere Qt- und IoT-bezogenen Open Source-Projekte unter https://github.com/IndeemaSoftware mit Q zu Beginn der Repo-Titel hoch. Dort finden Sie auch eine Reihe von Tools für die Entwicklung von React, Android und iOS.

Indeema und Github

Rückblick


Bei Indeema sind wir an enge Termine und herausfordernde Projekte gewöhnt. Als wir uns dazu verpflichtet fühlten, clevere Lösungen zu entwickeln, stellten wir nach und nach fest, dass:

  • Verständnis steht an erster Stelle.
    Sei neugierig. Klären Sie jede Anforderung, egal wie offensichtlich Sie sie finden. Stellen Sie sicher, dass Sie verstehen. Weil Sie eine logische und skalierbare Architektur entwerfen, fantastischen, sauberen Code schreiben und dennoch nicht das gewünschte Ergebnis erzielen können. Der Teufel steckt im Detail (stellen Sie also sicher, dass Sie keine Details unbemerkt lassen).
  • Das Fahrrad neu zu erfinden ist zwecklos.
    Jedes Projekt enthält einzigartige Herausforderungen und erfordert unkonventionelle Gedanken. Und es ist nicht nötig, alles von Grund auf neu zu entwickeln. Warum? Weil Sie nur die Zeit verkürzen müssen, die Sie benötigen, um wirklich herausfordernde Funktionen, Module und Architekturen zu finden und zu implementieren.
  • Qualität ist ein Standard .
    Sei verantwortlich für deine Arbeit. Sie sind damit beschäftigt, die Zukunft zu gestalten. Wenn Sie Entwickler sind, testen Sie Ihren Code anhand von Spezifikationen, Best Practices, gesundem Menschenverstand, Stabilität des Projekts usw. Gleiches gilt für jede andere Rolle.

Vielen Dank fürs Lesen und ich hoffe, Ihnen hat dieser Artikel gefallen. Abonnieren Sie Updates und teilen Sie uns Ihre Interessen mit.

Source: https://habr.com/ru/post/de462171/


All Articles