Von SMS zu AWS: Projektspezifische Auswahlmöglichkeiten für die Steuerungstechnologie

Der Beitrag richtet sich an Personen, die über die Schaffung des ersten Managementsystems nachdenken. Erfahrene Spezialisten könnten an der "Top-down" -Ansicht verschiedener Steuerungstechnologien des "Internet der Dinge", Schlussfolgerungen und einer kurzen Prognose in der Schlussfolgerung interessiert sein.







Aufgabe



Im Synergy-Team entwickeln und fertigen wir industrielle Steuerungen. Sie sind für die Ressourcenabrechnung, das Energieanlagenmanagement und andere Anwendungen konzipiert, die allgemein als Internet der Dinge (Internet of Things, IoT) bezeichnet werden. Oft brauchen unsere Kunden nicht nur Controller. Sie benötigen eine Komplettlösung mit einem Steuerungssystem.



Und dieses System sollte nahezu optimal sein: schnell, leicht und zuverlässig. Nach der bekannten Anekdote ist es jedoch unmöglich, alle diese Anforderungen gleichzeitig zu erfüllen. Wir müssen nach einem Gleichgewicht suchen, das von der Aufgabe abhängt, die wir versucht haben.





In diesem Beitrag haben wir uns auf die Aufgabenklasse beschränkt, wenn IoT-Controller direkt mit dem Steuerungssystem verbunden sind ( direkt verbundenes IoT ). Unsere Aufgabe ist es daher, ein Managementsystem zu entwickeln, das:

  • Daten von Sensoren übertragen, die an Steuerungen angeschlossen sind,
  • Ereignisse senden (z. B. über Temperaturanstieg, Türöffnung, Kommunikationsverlust usw.),
  • Steuerbefehle an Aktuatoren übertragen,


Wenn das System aus einer großen Anzahl von Objekten besteht und / oder kritische Aufgaben ausführt, muss es zusätzlich:

  • ständig das Vorhandensein von Kommunikation mit Objekten überwachen,
  • Sammeln Sie Statistiken über Ihre Arbeit,
  • Aktualisieren Sie die Controller-Einstellungen und die Software (auf Anfrage).
  • vor unbefugtem Zugriff geschützt sein. Für staatliche und große private Unternehmen muss das System auch den Rechtsvorschriften für die Arbeit mit kritischer Informationsinfrastruktur (CII) entsprechen. Insbesondere die Anforderungen von 187-FZ, FSB, FSTEC, Anordnungen des Ministeriums für Telekommunikation und Massenkommunikation usw.


Verwaltung ohne dedizierten Server



Für mehrere Objekte wird das Problem einfach durch die Steuerung des GSM-Netzes mittels SMS-Befehlen oder Anrufen gelöst. Dieser Ansatz war Anfang der 2010er Jahre beliebt, und seine Vor- und Nachteile werden beispielsweise hier beschrieben . Für die meisten seriösen Systeme verliert dieser Ansatz heute an Relevanz.





Etwas komplizierter ist die „manuelle“ Steuerung der Steuerungen über dedizierte IP über das WEB oder die Kommandozeile (CLI). Controller müssen dauerhaft mit dem Netzwerk verbunden sein und statische "weiße" oder "graue" IP-Adressen haben. Alternativ können Sie dynamische IP mit Bindung an statische Domänennamen mithilfe der DynDNS- Technologie oder ähnlichem verwenden . Dies funktioniert gut, wenn nur wenige Objekte vorhanden sind und keine besonderen Anforderungen an die Zuverlässigkeit gestellt werden.



Nachteile:

  • , WEB () ;
  • IP ;
  • , NAT;
  • IP . , GSM APN ;
  • , «»;
  • ().


Für schnelle Demonstrationen und die Kontrolle über mehrere Objekte reicht es aus, die Kontrolle über IP, SMS oder Telefonanrufe zu verwenden.



Hier haben wir die Situation nicht berücksichtigt, in der der Dispatcher auf demselben Computer ausgeführt wird und das Steuerungssystem installiert ist, da wir dies als einen entarteten Fall des nächsten Elements betrachten.



Dedizierte Serververwaltung



In den übrigen Fällen benötigen Sie einen Server mit einer dedizierten IP, über den Controller, Dispatcher und Systeme von Drittanbietern eine Verbindung herstellen.



Wenn die Steuerungen Daten nur in Richtung des Servers übertragen, z. B. Wasserzähler oder die einfachsten Navigationsgeräte (Tracker), ist eine unidirektionale Verbindung ausreichend. In diesem Fall müssen die Controller nur die Server-IP kennen.



In unserer Aufgabe ist ein bidirektionaler Datenaustausch erforderlich, um die Steuerungssoftware zu aktualisieren und Befehle zu übertragen. Um einen solchen Austausch zu organisieren, müssen Sie:

  • Regelmäßiges Lesen von Einstellungen oder Befehlen vom Server auf Initiative des Controllers (akzeptabel, wenn Sie keine schnelle Antwort auf Befehle benötigen) oder
  • Verwenden statischer IP- oder Domänennamen auf den Controllern, damit der Server sie selbst "erreichen" kann, oder
  • , . , MQTT, EGTS ( ). IP. , .






Wenn es um ein Steuerungssystem geht, das auf einer bewährten und zuverlässigen Lösung basiert, ist SCADA das erste, an das Sie sich erinnern sollten. Und dies ist völlig gerechtfertigt, wenn es um die Automatisierung der Produktion oder einer großen Energieanlage geht. Mit einem Wort, wenn das System eine große Anzahl von Sensoren und Aktoren verschiedener Typen enthält. Solche Systeme erfordern die Entwicklung von Mnemonikdiagrammen und Algorithmen für die Geräteinteraktion, die für jedes Objekt einzigartig sind, was in SCADA perfekt durchdacht ist.



Wenn Sie Objekte desselben Typs überwachen und / oder verwalten müssen (wie in der vorgeschlagenen Aufgabe), kann die Verwendung von SCADA die Lösung aufgrund der Komplexität der Konfiguration, des mühsamen Hinzufügens von Standardobjekten und der erhöhten Anforderungen an die Serverleistung zu "schwer" machen. Verwenden Sie am besten eines der für diese Aufgabe am besten geeigneten Spezialkastensysteme auf dem Markt. Zum Beispiel:

  • Überwachungs- und Steuerungssystem für Netzwerkgeräte - Netzwerkmanagementsystem (SNMP, TR-069, CLI);
  • automatisiertes Messsystem für Wärme, Strom, Gas, Wasser. Der Kürze halber - ASKUE;
  • Navigationsverfolgungssystem für mobile Objekte mit Bordsystemsteuerung;
  • Klimatisierungssystem (Lüftung, Klimaanlage und Heizung) - HLK;
  • Smart Home / Büro / Gebäudesystem;
  • : , () , ;
  • - , ..


Diese Systeme überschneiden sich häufig gegenseitig. Zum Beispiel ist es auf der Grundlage von ASKUE möglich, die Steuerung der Außenbeleuchtung und auf der Grundlage des "Smart House" die Steuerung des Klimas und des Zugangs zu implementieren. Die Erweiterung der Funktionalität "lebender" Systeme ist im Gange. Es entstehen neue APIs für die Integration von Boxed-Produkten in Kundenlösungen sowie für die Unterstützung benutzerdefinierter Funktionen in Boxed-Software. Ein großer Vorteil von verpackten Produkten ist die Tatsache, dass sie gekauft und auf Ihren Server gestellt werden können, nachdem sie eine entfremdete Lösung erhalten haben, die in einem geschlossenen Kundenkreislauf funktioniert.



Wenn Sie vorhaben, Ihr eigenes System auf dem freien Markt zu verkaufen, müssen Sie verstehen, dass ein Konkurrent morgen aus dem heutigen Boxed-Software-Anbieter herauswachsen kann. Darüber hinaus birgt die Verwendung von Boxensystemen zusätzliche Risiken wie:

  • Erhöhung des Lizenzpreises,
  • schwache Kontrolle über das System (es gibt keinen Quellcode, auch wenn dies der Fall ist, ist die Wartung äußerst schwierig),
  • Viele Systeme können nur als Cloud-Service verwendet werden, was für große und / oder staatliche Projekte möglicherweise nicht akzeptabel ist.


Entwicklung basierend auf IoT-Plattformen



Wenn die Verwendung von Box-Software nicht möglich ist, empfiehlt es sich, auf einer der beliebten IoT-Plattformen zu entwickeln . Solche Plattformen enthalten universelle Module, die in jedem IoT-System erforderlich sind für:

  • Registrierung und Löschung von IoT-Geräten,
  • sichere Authentifizierung von IoT-Geräten und Aufrechterhaltung der Kommunikation mit ihnen,
  • mit Daten arbeiten (Datenbanken für verschiedene Aufgaben optimiert),
  • Registrierung von Benutzern und Verwaltung von Zugriffsrechten,
  • Bildung von Analysen basierend auf den gesammelten Daten,
  • Generieren von Benachrichtigungen für Benutzer (SMS, E-Mail, Push-Nachrichten, ...),
  • Speichern der neuesten Daten, die von IoT-Geräten gelesen wurden,
  • verschiedene Aktionen für Ereignisse ausführen,
  • Datenvisualisierung usw.


Die Architektur eines Systems auf einer IoT-Plattform ist praktisch unabhängig von seiner Größe. Alle Aufgaben im Zusammenhang mit dem Lastausgleich, dem Eliminieren von Datenbank- "Bremsen" und "schweren" Funktionen werden von der Plattform übernommen. Darüber hinaus wird die Serverseite der Anwendung schnell aus "Cubes" - Microservices - zusammengesetzt. Sowohl die Markteinführungszeit als auch die Kosten der Lösung, die direkt von der Bezahlung der Arbeit der Programmierer abhängen, werden reduziert.



Ein System auf einer IoT-Plattform kann in kürzester Zeit entwickelt werden. Seine Architektur wird sich mit zunehmender Größe nicht wesentlich ändern.



Vorteile der Entwicklung auf einer Cloud-basierten IoT-Plattform:

  • . AWS . . .
  • , , , MQTT- – . , .
  • IoT . ( ) ( IoT ).
  • .
  • Die primäre Entwicklungsaufgabe kann ausgelagert werden. In Zukunft wird die Lösung nicht nur die Entwickler des ursprünglichen Systems unterstützen können, wie dies normalerweise der Fall ist. Schließlich verfügen IoT-Plattformen über leistungsstarken technischen Support, sind gut dokumentiert und die Anzahl der Entwickler, die mit ihnen arbeiten können, wächst stetig.


Nachteile:



  • Komponenten von IoT-Plattformen arbeiten nur in den Einrichtungen ihrer Eigentümer. Sie schaffen ein vollständig veräußerliches System, das möglicherweise in seltenen Fällen im Rechenzentrum des Kunden funktioniert.
  • Die Kosten für die Verwendung einer IoT-Plattform für große Projekte können höher sein als die Kosten für die Anmietung virtueller Maschinen in einem Rechenzentrum.
  • Bei der Migration von einer IoT-Plattform auf eine andere muss eine angemessene Menge Code geändert werden. Obwohl es jetzt einen Trend zur API-Standardisierung gibt;
  • Auf keinen Fall werden alle IoT-Plattformen in Rechenzentren in Russland bereitgestellt, was es unmöglich macht, sie im Interesse von Regierungskunden zu verwenden.


Völlig eigene Entwicklung



Wenn die Mängel früherer Lösungen kritisch sind, müssen Sie Ihre eigene Lösung entwickeln. Und egal wie gut der Plan ist, die ersten Versionen des Systems werden schief sein.



Eigene Lösungen werden häufig auf der Basis von Open-Source-Systemen wie ThingsBoard, OpenSCADA, MajorDoMo, Home Assistant, iobroker und Nokia Glial implementiert. Für kleine Projekte können sie zu "schwer" sein, weil:

  • lange Entwicklungszeit und entsprechende finanzielle Kosten. Normalerweise ist die Zählung in Personenjahren;
  • Mit zunehmender Anzahl von Objekten treten Engpässe in Form von langsamen Datenbanken, Sammlern, Berichtsgeneratoren usw. auf, für deren Auflösung die Architektur geändert und durch Balancer und doppelte Ressourcen ergänzt werden muss.
  • Kosten für laufende Verwaltung und technischen Support.


Gleichzeitig:

Eigene Entwicklung ist entweder für Regierungsaufträge oder Projekte mit ehrgeizigen Plänen und großen Budgets gerechtfertigt oder wenn Unabhängigkeit und Sicherheit von entscheidender Bedeutung sind.



Wenn Sie eine schnelle Demonstration ( MVP ) benötigen , können Sie diese auf einer IoT-Plattform oder einer Box-Software unter Verwendung bewährter Ansätze durchführen und gleichzeitig Ihre eigene große Lösung entwickeln.



Fazit



Basierend auf der Analyse verschiedener Systeme schlagen wir den folgenden Auswahlalgorithmus für Steuerungssysteme vor.







Für Demonstrationen und kleine IoT-Projekte für mehrere Objekte können Sie die direkte Steuerung über IP, SMS oder über GSM-Anrufe verwenden. Andernfalls ist ein System der obersten Ebene erforderlich. Der Einsatz von SCADA ist in der industriellen Automatisierung und in großen Energieanlagen gerechtfertigt. Für Ressourcenabrechnung, Verwaltung von Netzwerkgeräten, Nachverfolgung, Sicherheit, „Smart Home“ usw. Es ist zweckmäßig, eine Box-Lösung mit der erforderlichen Spezialisierung zu verwenden. Die Entwicklung von Systemen auf IoT-Plattformen ist schwieriger, bietet jedoch mehr Perspektive und Flexibilität. Lösungen auf ausländischen IoT-Plattformen sind in Russland in Bezug auf Umfang und Anwendungsbereiche stark eingeschränkt. Das Schwierigste ist die völlig eigene Entwicklung. Und es ist nur für Regierungsaufträge und die ehrgeizigsten Projekte gerechtfertigt.Gleichzeitig ist es für schnelle Demonstrationen und das Kopieren von Best Practices hilfreich, parallel zu Ihrer eigenen Entwicklung einen Entwurfsentwurf auf der IoT-Plattform zu erstellen.



Schließlich möchten wir eine kleine Prognose teilen:



  • In Cloud-IoT-Plattformen lohnt es sich, auf das Erscheinen vorkonfigurierter Vorlagen für "Smart Home", AMR, NMS, ACS usw. zu warten. Dies wird die Verwendung von IoT-Plattformen weiter vereinfachen und ein noch größeres Publikum anziehen.
  • Traditionelle Entwickler von SCADA und anderen Boxed-Lösungen bieten mehr Tools für externe Entwickler, die sich auf IoT-Plattformen bewährt haben. Closed-Box-Lösungen halten dem Wettbewerb auf dem Markt wahrscheinlich nicht stand.
  • Inländische IoT-Plattformen für öffentliche und große Privatkunden werden sich noch aktiver entwickeln.
  • Die APIs verschiedener IoT-Plattformen werden sich im Laufe der Zeit ähnlicher. Aus diesem Grund wird der Übergang von einer IoT-Plattform zu einer anderen vereinfacht.


In der nächsten, technischeren Veröffentlichung werden wir über unser Projekt zur Überwachung von Kommunikationssystemen auf der AWS-Plattform und GIC- Controllern sprechen .



Schreiben Sie unbedingt in die Kommentare, wenn wir etwas Wichtiges verpasst haben. Eines der Ziele unseres Blogs ist es, konstruktives Feedback zu erhalten.



All Articles