Forum: PC Hard- und Software Serielle Ausgabe aufzeichnen und visualisieren


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 stefan (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hi,

habe ich schon quer durchs Forum gelesen und Google bemüht aber nichts 
passendes gefunden.
Ich habe eine Füllstands Messtechnik für meinen Brunnen.
Diese stellt den Füllstand über ein Display dar.

Es gibt aber auch die Möglichkeit eine RS232 dort anzuschließen die dann 
fröhlich im 10min Tackt Daten mit 9600 Baut rausschiebt.

Sieht wie folgt aus

#00 200408113410 368 429 2380 68 5440 R1- ?
#00 200408114410 368 429 2380 68 5440 R1- ?
#00 200408115410 368 429 2380 68 5440 R1- ?

Habe mir schon ComVisu und SerialcomGrapher angeschaut, aber dort kann 
ich -wie ich es verstehe- nicht die Daten verabreiten wie sie wie oben 
dargstellt werden.


Mich würde von den Daten nur


-Datum/Zeit --> 200408122410
-Füllhöhe --> 2380

interessieren.

Bin für jeden Tip dankbar.

von g457 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Bin für jeden Tip dankbar.

bash, gnuplot

HTH

von bingo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachdem die Daten schon so schön in Spalten formatiert sind, schreit das 
nach Gnuplot

von Rudi Rüssel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich handle sowas immer mit einem Python script und pyplot.
Villeicht nicht der eleganteste, aber einfachste Weg.

von TR.0LL (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Daten mit einem Script in eine Datenbank schreiben (z.B.: influxDB) und 
die Daten dann mit Grafana visualisieren.

von Sebastian S. (amateur)


Bewertung
-1 lesenswert
nicht lesenswert
Schon mal mit snake oil oder Basic versucht?

von Christoph db1uq K. (christoph_kessler)


Bewertung
-1 lesenswert
nicht lesenswert
Ich würde es mit Hterm aufzeichnen und abspeichern, dann mit dem 
Hexeditor HxD die Leerzeichen durch TAB (0x09) ersetzen und das Hashtag 
durch 0D 0A, wenn das nicht sowieso schon drin steckt.
Danach kann man es in Excel oder Libre Office Calc importieren und 
Grafiken erstellen lassen.

http://www.der-hammer.info/pages/terminal.html
https://mh-nexus.de/en/hxd/
https://www.libreoffice.org/download/download/

: Bearbeitet durch User
von Gerhard (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Ich würde auch Gnuplot verwenden. Kann mit den obigen Daten umgehe ohne 
sie umzuformatieren. Hier ein Beispiel wobei ich deine Daten etwas 
interessanter gemacht habe. Folgendes in Datei test.dat:

#00 200408113410 368 429 2380 68 5440 R1- ?
#00 200408114410 368 429 2480 68 5440 R1- ?
#00 200408115410 368 429 2290 68 5440 R1- ?
#00 200408110411 368 429 2380 68 5440 R1- ?
#00 200408111411 368 429 2480 68 5440 R1- ?
#00 200408112411 368 429 2290 68 5440 R1- ?

und mit den folgenden Gnuplot Kommandos bekommst du das Bild im Anhang.
# ============================================================
# Kommentarzeichen der Datendatei umdefinieren
set datafile commentschars "§"

# siehe http://gnuplot.sourceforge.net/docs_4.2/node76.html
set xdata time
set timefmt "%Y%m%d%M%H"

set grid
set yrange [2100:2600]
set format x "%m.%d %H:%M"
plot "test.dat" using 2:5 wi linespoint lw 3
# ============================================================

von WIRO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Als Batch in einer Command Shell:
1
for /f "tokens=1-5" %%a in (x.dat) do @echo %%b %%e>y.dat

Gruß
WIRO

von Gerhard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
WIRO schrieb:
> for /f "tokens=1-5" %%a in (x.dat) do @echo %%b %%e>y.dat

könntest du mir nicht Windows Nutzer auch aufzeigen, was das bewirkt. Es 
kommt mir so vor als würdest du einfach eine Datei mit 2 Spalten 
erzeugen?! Was hat man davon? Das Datumformat ist immer noch zu 
interpretieren.

Gerhard

von WIRO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@Gerhard:
Genau, das hat der TO ja so gewollt.
Man kann den Datum-Zeit-String b. B. auch zerlegen:
1
for /f "tokens=1-5" %%a in (x.dat) do (
2
  set s=%%b
3
  echo %s:~4,2%.%s:~2,2%.20%s:~,2%,%s:~6,2%:%s:~8,2%:%s:~10,2%: %%e>y.dat
4
  )
ergibt:
1
08.04.2020,11:54:10: 2380

Gruß
WIRO

von WIRO (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hier noch eine Korrektur:
1
copy nul y.tmp
2
setlocal enabledelayedexpansion
3
for /f "tokens=1-5" %%a in (x.dat) do (
4
  set s=%%b
5
  echo !s:~4,2!.!s:~2,2!.20!s:~,2!,!s:~6,2!:!s:~8,2!:!s:~10,2!: %%e>>y.tmp
6
  )
7
endlocal

WIRO

von Gerhard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke!
Nun gut, ich hatte ihn so verstanden, dass er die Werte grafisch 
aufbereiten will. Wäre mit Gnuplot halt sehr einfach geworden ohne erst 
das bestehende Format umzumodeln. Aber da sich der TO nicht mehr meldet 
und auch nicht geschrieben hat, auf welcher Plattform er es macht ...

G

von bingo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachdem der TE von ComVisu und SerialcomGrapher redet, will er wohl eine 
graphische Darstellung

von Stefan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

sorry, habe jetzt erst wieder reingeschaut.

Habe mir nun GNUPlot mal angeschaut, habe auf Anhieb auch die Daten 
reinbekommen.
Das "Y" bei "set timefmt" musste nur klein, da das Jahr nur zweistellig 
reinkommt. Aber das hatte ich schnell gefunden.

Im Grunde also schon recht gut.
Daten sammele ich bisher noch über nen RS232 Daten logger in eine TXT.

Bisher habe ich leider noch keine möglichkeit gefunden im GNUPlott die 
Daten direkt von der COM auszulesen und weiter zuverarbeiten.

Gruß
Stefan

von Toby P. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Bisher habe ich leider noch keine möglichkeit gefunden im GNUPlott die
> Daten direkt von der COM auszulesen und weiter zuverarbeiten.

Hab da leider wenig Ahnung aber viel Bedarf.

Eine Suche nach "gnuplot realtime data" kommt über
https://stackoverflow.com/questions/44470965/how-can-you-watch-gnuplot-realtime-data-plots-as-a-live-graph-with-automatic-up

zu
http://hxcaine.com/blog/2013/02/28/running-gnuplot-as-a-live-graph-with-automatic-updates/

Gnuplot has some useful commands we can use:
pause
reread

Wenn man den COMx Datenstrom in eine Datei leitet könnte das funzen.

von Stefan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Toby P. schrieb:
> Hab da leider wenig Ahnung aber viel Bedarf.

Naja eigentlich ganz einfach ;-)

Ich würde gerne die Veränderung des Füllstandes loggen und Graphisch 
darstellen/auswerten können.
Ich stelle mir das grob vor wie bei den Aktien Charts.
Dort wird der Interday, also der aktuelle Tag dargestellt und mit ein 
Klick kann man zwischen Wochen/Monats/Jahres Übersicht umstellen.

Fakt ist ich kann Basteln, bin in der Lage Daten aus einer RS232 in 
Putty etc auszulesen und habe auch schon mit LogView rumgespielt. Aber 
Programmieren is bei mir leider nich. Ich brauche irgendwas OutOfTheBox.

Gruß
Stefan

von Toby P. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Ich würde gerne die Veränderung des Füllstandes loggen und Graphisch
> darstellen/auswerten können.

So etwas mache ich mit Excel via VBA. Funzt gut, aber ohne proggen geht 
das leider nicht. Auch ist es nicht für den Dauerbetrieb nutzbar.

Sind die Daten in Excel kann man sich über verschiedene Tabs das so 
einrichten wie man es braucht.



Dann gibt es Excel Datalogger. Out of the box ist der wohl der hier:

https://www.aggsoft.com/serial-data-logger/screenshots.htm
Kostet aber und hab ich auch nicht getestet.

Out of the Box kenne ich nur die Logo von Siemens. Die neuen Versionen 
schreiben über Netzwerk direkt nach Excel.

Je nach Datenmenge wird Excel aber immer langsamer und platzt 
irgendwann.


Alternativ gibt es die Möglichkeit den Datenstrom in eine Datenbank zu 
schreiben (z.B. SQlite) und dann mit MSquery per ODBC abzufragen. Dann 
platzt auch Excel nicht und die abfrage funzt ohne eine Zeile Code.

OpenOffice kann glaube ich auch OCBC abfragen, dann braucht nicht mal ne 
Excel Lizenz.

von Toby P. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Toby P. schrieb:
> Dann platzt auch Excel nicht und die Abfrage funzt ohne eine Zeile Code.

Nachtrag: Das schreiben in die Datenbank muss man aber proggen. Evtl 
über nen Freelancer. Sehr viel Aufwand wird das nicht sein.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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