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.

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.ioUm ü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/QSimpleScadaUm auch vorkonfigurierte Widgets hinzuzufügen, klonen Sie:
https://github.com/IndeemaSoftware/EEIoTUnd 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/releasesSchritt 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:

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 WidgetsWir 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/QSimpleScadaSampleRichten 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:
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, uaund klicken Sie auf die Schaltfläche
Senden .
Dadurch werden Temperatur, Luftfeuchtigkeit und Druck für Ihre Region aktualisiert.

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:

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.

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.