Signalüberwachungs- und Aufzeichnungssystem für Arduino und nicht nur

Hallo an alle. Ein weiterer Versuch, ein normales System zur Anzeige eines Diagramms von Datenwerten zu erstellen.

Ich präsentiere meine Entwicklung - "SVisual" -Software -, die Signale online überwacht und das Archiv auf die Festplatte schreibt. Sie können alle Signale sehen / aufnehmen, nicht nur mit Arduino.

Direktwalze


Die Idee begann vor etwa 7 Jahren zu schweben, als sie noch in der Automatisierung tätig war. Kräfte erschienen beide in der Entwicklung auf hohem Niveau.

Das Projekt ist mehr als ein Jahr alt. Alles wurde auf dem Weg geschrieben und die Verfügbarkeit von Zeit, zuerst ein Monolith - ein Server und nur Anzeige, dann ein Archiv, ein Monitor ... Also kam ich zu Arduinki.

Ich wollte zuerst einen Cent von diesem Geschäft bekommen, aber Werbung ist überhaupt ein anderes Thema, und das Produkt, für das es keine Schande ist, etwas zu nehmen, ist weit weg. Deshalb habe ich mich entschlossen, einen Beitrag zu opensrc zu leisten, der sich zumindest ein wenig auszahlt.

Teilweise plattformübergreifende Software - Windows und Linux (CentOS). Alles ist in C ++ geschrieben, Visualisierung in Qt. Schnittstelle und Handbuch in russischer Sprache. Ich habe angefangen ins Englische zu übersetzen, ja ...

Das SVisual-System besteht aus drei Teilen:

  • SVMonitor - eine grafische Anwendung zum Online-Anzeigen und Aufzeichnen von Archiven;
  • SVViewer - eine grafische Anwendung zum Anzeigen eines Archivs von Datensätzen;
  • SVClient ist eine Benutzerbibliothek zum Senden von Daten. Für Arduino-Skizze.

Eine etwas trockene Beschreibung der Möglichkeiten.

Funktionen von SVMonitor:


- Verbindung zu MK über COM-Port (USB für Arduino), TCP-Protokoll über Ethernet oder Wi-Fi;
- eine Übersicht der Signalwerte in Echtzeit mit einer Frequenz von 100 Hz (nach unten, diese 100 Hz - maximal 10 Hz standardmäßig), die Anzahl der Geräte und Signale wird vom Benutzer ausgewählt;
- Die zulässige Anzahl von Signalen für die Aufzeichnung beträgt 2048, die Anzahl der Module beträgt 8 (bei Überschreitung geschieht nichts, es wird nur eine Warnung ausgegeben, es wird eine Reserve bereitgestellt).
- Ausgabewerte der ausgewählten Signale auf dem Monitorbildschirm in Echtzeit;
- Aufzeichnen des Signalarchivs auf der PC-Festplatte;
- Anzeigen des Archivs mit der optionalen SVViewer-Software;
- die Möglichkeit, Warnungen über ein Ereignis (Auslöser) festzulegen und einen Benutzerprozess zu starten, wenn ein Auslöser ausgelöst wird;
- Hinzufügen eines Signals zum Anzeigen / Aufzeichnen nur durch den Kunden, es sind keine zusätzlichen Bewegungen erforderlich.

Softwarearchitektur




Hier denke ich im Prinzip alles klar. Ich werde ein paar Worte sagen.

Clients übertragen Daten an den Monitor, der Monitor überträgt sie an den Datenverarbeitungsserver (SVServer.dll). Der Server ist mit dem Puffern, Schreiben auf die Festplatte und Verarbeiten von Triggern beschäftigt - Benutzerbezeichnungen. Alles im Inneren ist asynchron.

Die Daten werden alle 10 Minuten auf die Festplatte übertragen und mit zlib komprimiert. Archivdateien werden in Stunden empfangen, der Standardwert ist 2 Stunden.

Der Datenverarbeitungsserver kann beispielsweise unabhängig vom Monitor lediglich als Dienst zur Aufzeichnung des Archivs verwendet werden.

Beispiel für Arduino



#include <SVClient.h> void setup() { bool ok = svisual::connectOfCOM("test"); } int cnt = 0; void loop() { svisual::addIntValue("dfv", cnt); ++cnt; if (cnt > 10) cnt = 0; bool odd_cnt = cnt % 2; svisual::addBoolValue("bFW", odd_cnt ); svisual::addBoolValue("bBW", !odd_cnt ); delay(200); } 


Als Ergebnis werden Sie sehen:



Die Software ist frei verbreitet, MIT-Lizenz.

Vielen Dank.

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


All Articles