Hallo
Ich führe mit meinem AtMega einige messungen durch und würde gerne die
messdaten über RS232 an meinem PC senden und am PC mit den Daten eine
Visualisierung durchführen. Die Daten die ich an den PC gesendet habe
möchte ich dann noch am PC archivieren.
kann mir jemand helfen ?
Danke
mfg Mathias
> Die Daten die ich an den PC gesendet habe> möchte ich dann noch am PC archivieren.
Sende deine Daten einfach als ASCII, mach in einer Shell
eine Pipe auf und kopiere sie gleich in einer Textdatei.
> kann mir jemand helfen ?
Gern geschehen.
Olaf
ASCII ??
Shell ??
Pipe ??
ich möchte immer ganze datenpakete schicken die wie folgt aussehen:
a = 3.5, b = 2.4 ......
und diese daten möche ich dann auswerten und ein diagramm im Excel damit
erstellen oder eine richtige visu machen.
mfg
Die Daten sendest du vom AVR (wie das mit dem AVR geh weiß ich nicht der
wirt aber auch eine serielle Schnittstelle haben):
Dan bindest du in VB die Sierielle Schnittstelle ein (ist in der Toolbox
(zumindest in C#)) dan kannst du die Daten einfach einlesen in einem
Array Speichern.
Und wenns du unbedingt grafisch haben willscht nimmst eine Picturebox
und von dere das Pain Event und zeichnest die Punkte die du im Array
hast.
Wenns undbedingt Excel sein muss wird warscheinlich nicht ganz so
einfach da man mit VBA nicht so einfach auf die Serielle Schnittstelle
zugreifen kann.
du könntest die Punkte aus dem Array versuchen in CSV abzuspeichern und
anschliesend in Excel laden und dan manuell ein Diagramm machen.
Es gibt viele Möglichkeiten.....
Grüße Lukas
also am µC must du die daten halt wie im tutorial beschrieben versenden
....
am pc must du sie entweder mit hyperterm empfangen und dann als text
datei speichern und weiterverarbeiten oder ein vba plugin(direkt in
exel) benutzen was die serielle schnitstelle abfagt...oder in vb ein
entsprechendes objekt nutzen das die serielle auf macht die daten
empfängt und und ein programm schreiben das die werte auswertet....
ok vb ist ein mal schlecht weil ich nur C kann.
könnte mir Vl jemand sagen wie ich die serielle schnittstelle im
Programm einbinde ?
ich habe bis jetzt nur über das Hyper terminal mit dem AVR kommuniziert.
mfg Mathias
Wie es schon gesagt wurde, sende die Daten im Ascci Format.
Um Die Taten in Excel zu bekommen, verwende am Bessten
Tabulator-getrennten Text.
Dass ist eine normale Text-Datei, bei der mittels Tabulator in die
nächste Spalte und mit Zeilenvorschub + Enter in die nächste Zeile
gesprungen wird.
Wenn du nichts selbst Programmieren oder basteln willst, kannst du
einfach den Hyperterminal verwenden welches serienmäßig bei jedem
Windows dabei ist.
(Außer bei Vista, da fehlt's)
Da kannst du die empfangenen Daten einfach in eine Datei speichern.
Wenn du die Daten als Tabulator getrennten Text sendest, brauchst du die
Datei nur IRGENDWAS.XLS nennen und schon kann Excel die Daten ohne
Probleme verwenden.
Mathais schrieb:
> wie kann ich aus die daten direkt aus dem Hyper Terminal abspeichern ?
Transfer --> Capture Text?
Naja, soo viele Optionen bietet Hyperterminal nunn gerade nicht an, dass
man sich im Menu verlieren wuerde...
EDIT:
Es gibt auch andere (bessere) Terminal Emulationen Fuer Windows:
- TeraTerm
- Br@y Terminal
- putty
Wenn Du alles schon fertig haben möchtest, dann kannst dafür Labview
verwenden. Wenn Du es selber machen möchtest, kannst Gtk+ Libary
verwenden. Quäl mich auch gerade durch GtkDatabox :-)
Michael
Hi Thilo,
das sieht echt gut aus. Leider nur für Windows zu haben :-( So eine
Library hätt ich gerne für C.
Beim reinen Zusammenklicken bin ich immer ein wenig skeptisch. Wie
zerlegst du da den String, welchen du über die RS232 schickst?
Michael
Mathais schrieb:
> gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt> oder muss ich das jeden tag selbstständig machen ?
Dein Shift-Tast scheint defekt zu sein.
Wenn Du ein Makro in Excel dazu schreibst, kannst du für solche Zwecke
die "Date" Funktion nutzen.
Michael
Michael Steinbauer schrieb:
> Hi Thilo,>> das sieht echt gut aus. Leider nur für Windows zu haben :-( So eine> Library hätt ich gerne für C.>> Beim reinen Zusammenklicken bin ich immer ein wenig skeptisch. Wie> zerlegst du da den String, welchen du über die RS232 schickst?>> Michael
Das funktioniert mit den enthaltenen Funktionen recht gut, teilweise
braucht's etwas Pahantasie. ;)
Man kann dort auch leicht eigene DLLs einbinden,was das Ganze sehr
flexibel macht. Es sind wohl noch einige Bugs drin, auch die Bedienung
lässt etwas zu wünschen übrig (keine 'Rückgängig' Funktion z.B.), aber
für den Preis finde ich es echt OK!
Hallo,
Mathais schrieb:
> gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt> oder muss ich das jeden tag selbstständig machen ?
Kannst Du auch ganz altmodisch machen...
echo > d:Datei_%date%.txt
in eine DOS-Batch geschrieben und diese jeden Tag um 00:01 vom
Taskplaner aufrufen lassen.
Schon hast Du jeden Tag eine leere Datei mit Namen
Datei_26.97.2009.txt auf Laufwerk D liegen...
Gruß aus Berlin
Michael
aber ich muss im Hyper Terminal festlegen in welche Datei er die Daten
schreiben soll.
und die Daten werden erst geschrieben ernn ich die aufzeichnung beende.
kann man das auch automatisieren ?
mfg
>kann man das auch automatisieren ?
Ja
Frage aber doch bitte einmal Google / Bing,... nach:
Ascii
Tabulator getrennter Text
Batch Datei
Man kann zwar auch mittels Excel-Makro Daten von der RS232 aufzeichnen.
Aber da muß man dann das Makro nach jedem Wechsel der Office-Version
quasi neu schreiben.
Es gibt mehrere Möglichkeiten wie du automatisiert die Daten aufzeichnen
kannst.
1.: Du schreibst dir eine Batch-Datei (*.bat)
2.: Du kaufst / lädst dir ein Programm herunter dass das kann.
3.: Du schreibst dir ein Programm mit C/C++ selbst.
Für RS232 gibt es unter C/C++ genügend Beispiele wie man dass macht.
Und von Microsoft gibt's sogar eine kostenlose Version von Visual Studio
mit der man sich so ein Programm schreiben kann.
Hallo!
Um die Auswertung zu erleichtern, kannst Du auch mal hier vorbeischauen:
Beitrag "Visualisierung von geloggten Daten"
(bis unten durchscrollen), ist mittlerweile (glaub ich) ganz brauchbar
geworden.
mfG ingo
harpalykos schrieb:> wie würde der Batch programmcode ungefähr aussehen ?
Im folgenden Beispiel werden die an com7 ankommenden Daten in die Datei
d:\test(datum_zeit).txt geschrieben, wobei Datum und Zeit für die
jeweils aktuelle Zeit gelten, damit wird ein Überschreiben der Datei
vermieden. Mit dem Schalter /B vermeidet man eine Pufferung, die Daten
werden sofort in die Datei geschrieben. Die der Kopiervorgang läuft so
lange, bis er "hart" abgebrochen wird (Im Taskplaner Start- und
Endzeitpunkt). Wenn die Datei jeden Tag, für 24 Stunden gestartet wird,
hast Du für jeden Tag eine Datei
REM Die Schnittstelle einstellen:
mode com7: BAUD=9600 PARITY=N DATA=8 STOP=1
REM ankommende Daten kopieren
copy com7 /B d:\test%date%_%time%.txt
Korrektur: %time% kann in den Dateinamen leider nicht rein, da sind mit
den deutschen Landeseinstellungen die Zehntelsekunden mit Komma
angehängt und das ist für Dateinamen nicht zulässig:
d:\tools\batch>echo %time%
19:11:37,67
mfG ingo