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


von stefan (Gast)


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)


Lesenswert?

> Bin für jeden Tip dankbar.

bash, gnuplot

HTH

von bingo (Gast)


Lesenswert?

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

von Rudi Rüssel (Gast)


Lesenswert?

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

von TR.0LL (Gast)


Lesenswert?

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

von Sebastian S. (amateur)


Lesenswert?

Schon mal mit snake oil oder Basic versucht?

von Christoph db1uq K. (christoph_kessler)


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:

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)


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)


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)


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)


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)


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)


Lesenswert?

Nachdem der TE von ComVisu und SerialcomGrapher redet, will er wohl eine 
graphische Darstellung

von Stefan (Gast)


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)


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)


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)


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)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.