Forum: Mikrocontroller und Digitale Elektronik Software zur Erfassung von Zeitreihen aus mehreren Quellen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael G. (mjgraf)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe hier mehrere Messgeräte, die ihre Messergebnisse an einen PC 
übermitteln können, z.B.

- ein Multimeter, das alle halbe Sekunde die aktuelle Anzeige über eine 
serielle Schnittstelle schickt

- ein zweites Multimeter, das in etwa das gleiche macht, aber mit 
anderem Protokoll und in einem etwas anderen Intervall

- ein Labornetzteil, das über Modbus angesprochen wird, und auf Anfrage 
Spannung und Stromstärke zurückmeldet,

- eine elektronische Last mit proprietärem Protokoll

Für jedes dieser Geräte gibt es eine Software, die mir die Messwerte des 
jeweiligen Gerätes - und nur dieses Gerätes - am PC anzeigt. Was ich 
gerne hätte, wäre eine Software, die es mir erlaubt, die Messwerte 
mehrerer Geräte zusammenzuführen.

Mindestanforderung wäre, die Werte jedes Geräts mit Zeitstempel 
aufzuzeichnen. Interpolieren, plotten, etc. wäre nice-to-have. 
Idealerweise wäre die ganze Software open source, zumindest sollte es 
aber möglich sein, selbst Plug-Ins für einzelne Meßgeräte zu schreiben.

Gibt es soetwas?

Gruß & Dank
Michael

: Bearbeitet durch User
von Harry L. (mysth)


Bewertung
0 lesenswert
nicht lesenswert
Sigrok dürfte deinen Anforderungen noch am nächsten kommen:

https://sigrok.org/

von STK500-Besitzer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sind die Geräte geheim?
Vielleicht gib es dazu ja bspw. LabView-Treiber.

von Michael G. (mjgraf)


Bewertung
0 lesenswert
nicht lesenswert
STK500-Besitzer schrieb:
> Sind die Geräte geheim?
> Vielleicht gib es dazu ja bspw. LabView-Treiber.

Die Geräte sind nicht geheim, aber mir geht es nicht darum, eine 
Software zu finden, die genau diese Geräte unterstützt, sondern eine 
Software, die sich über ein Plug-In-Modell an beliebige Geräte anpassen 
lässt.

Konkret sind es aktuell:

- Multimeter Voltcraft GDM 704, Uni-Tech UT61 D
- Labornetzteil auf Basis von Riden DPS-Modulen
- Last Atorch DL24

von Michael G. (mjgraf)


Bewertung
0 lesenswert
nicht lesenswert
Harry L. schrieb:
> Sigrok dürfte deinen Anforderungen noch am nächsten kommen:
>
> https://sigrok.org/

Sigrok hatte ich mir vor einiger Zeit schon mal angeschaut. Da war es 
mir nicht gelungen (unter Windows), dass sich eine Instanz von Sigrok 
mit mehreren Geräten gleichzeitig verbindet und die Daten 
"zusammenfährt"; Sigrok scheint das Prinzip "ein Gerät zur Zeit" zu 
verfolgen. Was beim Hauptzweck - Auswertung schneller Signale - auch 
durchaus sinnvoll ist.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:

> Für jedes dieser Geräte gibt es eine Software, die mir die Messwerte des
> jeweiligen Gerätes - und nur dieses Gerätes - am PC anzeigt. Was ich
> gerne hätte, wäre eine Software, die es mir erlaubt, die Messwerte
> mehrerer Geräte zusammenzuführen.
>
> Mindestanforderung wäre, die Werte jedes Geräts mit Zeitstempel
> aufzuzeichnen.

Da würde ich eine relationale Datenbank empfehlen. Die kann nicht nur 
die Speicherung der Messdaten erledigen, sondern auch die Metadaten zur 
Beschreibung der aufgezeichneten Signale. Außerdem erlaubt sie beliebige 
Verknüpfungen der Daten, beliebige Auswahlen und sogar einige wichtige 
und typische Filter kann man damit problemlos umsetzen.

Man muss nur SQL lernen und hat damit sofort für lau Zugriff auf mehrere 
durchgestylte und hochoptimierte DB-Backends...

Bleibt nur die Aufgabe, für jede Quelle einen "Adapter" zu schreiben, 
der halt den vom Messgerät gelieferten Scheiß in die DB wegschreibt.

von Harry L. (mysth)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Bleibt nur die Aufgabe, für jede Quelle einen "Adapter" zu schreiben,
> der halt den vom Messgerät gelieferten Scheiß in die DB wegschreibt.

Das macht Sigrok.
Nur, daß die nicht in eine DB schreiben, sondern das einfach nach stdout 
ausgeben.
Diee Ausgabe mit Konsole-Tools in eine DB umzuleiten ist dann kein 
Hexenwerk mehr.
Für jedes Gerät so ein Prozess und...voilà.....

von c-hater (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Harry L. schrieb:

> Nur, daß die nicht in eine DB schreiben, sondern das einfach nach stdout
> ausgeben.

Oh Gott, cmdline-Technologie aus dem letzten Jahrtausend. Aber ja, so 
kann man es auch machen, wenn man es besonders ineffizient haben will. 
Funktionieren wird es, wird nur sehr viel langsamer sein als nötig.

Und nichtmal einfacher zu programmieren. Die "Adapter" braucht man ja 
trotzdem, nur das sie halt nicht direkt aus der Meßgerät-Ausgabe das 
SQL-Kommando erzeugen, sondern aus der Sigrok-Ausgabe. Mehr involvierte 
Komplexität, mehr Fehlermöglichkeiten, geringere Performance. So einfach 
ist das.

von Stephan S. (uxdx)


Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:
> Mindestanforderung wäre, die Werte jedes Geräts mit Zeitstempel
> aufzuzeichnen. Interpolieren, plotten, etc. wäre nice-to-have.
> Idealerweise wäre die ganze Software open source, zumindest sollte es
> aber möglich sein, selbst Plug-Ins für einzelne Meßgeräte zu schreiben.

Genau das kann sigrok!

Und dann mit einem geeigneten Grafik-Tool (ich nehme für so etwas 
gnuplot) zusammen anzeigen.

von Harry L. (mysth)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Oh Gott, cmdline-Technologie aus dem letzten Jahrtausend. Aber ja, so
> kann man es auch machen, wenn man es besonders ineffizient haben will.
> Funktionieren wird es, wird nur sehr viel langsamer sein als nötig.
Blödsinn!
1. sind alle o.g. Geräte, die die Daten liefern selbst "schnarchlahm"

und 2.: Wenn ich die Teile (sigrok, db-Adaper usw.) per pipe in der 
shell verbinde, ist das ein Einzeiler, und "lahm" ist da gar nix.

von Stephan S. (uxdx)


Bewertung
0 lesenswert
nicht lesenswert
Harry L. schrieb:
> per pipe in der
> shell verbinde

Windows !!! :(

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Stephan S. schrieb:
> Harry L. schrieb:
>> per pipe in der
>> shell verbinde
>
> Windows !!! :(

Was soll das jetzt? Windows hat auch eine Konsole. Und natürlich kann 
die auch Pipes, konnte sie seit Anbeginn der Zeit...

Das heißt aber nicht, dass man das Feature auch immer verwenden 
sollte...

Heißt es übrigens auch unter *x nicht...

Es macht schlicht keinen Sinn, Daten vielfach aufwendig hin- und 
herzukonvertieren. Insbesondere dann nicht, wenn die Zwischenstufe 
"lesbarer Text" eigentlich garnicht verwendet werden soll...

von Adam P. (adamap)


Bewertung
1 lesenswert
nicht lesenswert
Hab ich zwar noch nie gemacht,
würde es wohl in C oder C++ / C# probieren...doch es gibt das:

https://github.com/Protocentral/AFE4490_Oximeter

als Visualisierung (G4P / openview pulseox):
https://processing.org/download/

Ist in Java geschrieben, aber da könntest du die Output Funktionen 
nutzen...müsstest halt deine Gerät per Java anbinden.

Wollte es nur vorschalgen, da ich es eigentlich ganz schlicht fand, aber 
habe noch nie weitere Geräte per Java angebunden.

von Harry L. (mysth)


Bewertung
-1 lesenswert
nicht lesenswert
c-hater schrieb:
> eigentlich garnicht verwendet werden soll...
diese Anforderung steht wo genau?

Es geht um eine simple Problemlösung, und nicht darum den Preis für den 
performatesten Weg zu gewinnen.

von Stephan S. (uxdx)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Es macht schlicht keinen Sinn, Daten vielfach aufwendig hin- und
> herzukonvertieren. Insbesondere dann nicht, wenn die Zwischenstufe
> "lesbarer Text" eigentlich garnicht verwendet werden soll...

3 Geräte sind 3 Dateien -> gnuplot -> Grafik

Da brauche ich keine Datenbank, die ich noch erlernen muss, gnuplot geht 
sauschnell auch bei 10^6 Messwerten (gut, hier scheint das (noch) nicht 
der Fall zu sein) und ist leicht zu erlernen, 3 Dateien sind 4-5 Zeilen 
für eine schnelle Übersicht, für etwas "schöner" sind es weitere 3-5 
Zeilen

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Stephan S. schrieb:

> 3 Geräte sind 3 Dateien -> gnuplot -> Grafik
>
> Da brauche ich keine Datenbank, die ich noch erlernen muss, gnuplot geht
> sauschnell auch bei 10^6 Messwerten (gut, hier scheint das (noch) nicht
> der Fall zu sein) und ist leicht zu erlernen, 3 Dateien sind 4-5 Zeilen
> für eine schnelle Übersicht, für etwas "schöner" sind es weitere 3-5
> Zeilen

Und was wird, wenn du mehr Geräte einbeziehen willst? Oder interaktiv 
Darstellungszeiträume festlegen willst? Oder andere Filter auf die Daten 
anwenden willst? Oder die Daten miteinander auf eine neue Art verknüpfen 
willst, um z.B. Abhängigkeiten darzustellen?

Mit den Werkzeugen der Erwachsenen alles kein Problem...

von 100Ω W. (tr0ll) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Geht eventuell SMU-View?

von Norbert S. (norproz)


Bewertung
1 lesenswert
nicht lesenswert
ich würde mich mal im bereich ELK-Stack oder prometheus/grafana 
umschauen.

so generell, für zeitreihen eine relationale datenbank... ich weiss 
nicht. influx wäre da das mittel der wahl wenns um richtig viele daten 
geht, hört sich aber grad nicht so an.

wenn diese software der unterschiedlichen datenquellen files hinschreibt 
wäre allenfalls die ablage in einer mongodb denkbar, map reduce kann 
dann auch einiges bieten zur auswertung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.