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
Was spricht dagegen, die Daten CSV kodiert zu senden, also
1 | 3.5,2.4,...<NEWLINE> |
2 | 4.4,3.2,...<NEWLINE> |
3 | ... |
Eine solche Datei kannst du dann direkt in Excel laden.
aber wie verarbeite die Daten von meinem µC am PC ? Wie kann ich das im Excel Laden ? mfg Mathias
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....
messen steuern regeln mit m$ office oder so ähnlich gibts auch
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 kann ich aus die daten direkt aus dem Hyper Terminal abspeichern ?
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
wie kann ich die empfangenen Daten in eine Datei Speichern ?
wenn ich jetzt werte gespeichert habe z.B. : a=1,b=2... und es kommen neue werte z.B. a=3,b=1... was geschieht dann mit den alten wertden ?
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
Ich nehm' ProfiLab dazu, kostet 99€ und ist recht einfach zu bedienen. http://www.abacom-online.de/html/profilab-expert.html
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
gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt oder muss ich das jeden tag selbstständig machen ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.