LabVIEWForum.de
Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren (/Thread-Zeitliche-Messwertaufnahme-Wo-Write-to-spreedsheet-file-vi-platzieren)

Seiten: 1 2 3


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - GerdW - 06.11.2012 16:24

Hallo Body,

Zitat:Hat hier jemand eine Idee wie ich diese die noch bekomme könnten?
Hast du dir schon mal angeschaut, wie die ExportWaveform-Funktion das macht? Dann einfach verstehen und nachprogrammieren... Big Grin


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Body Lotion - 07.11.2012 06:45

Hallo GerdW,

die Idee kam mir gestern Abend auch schon doch dann war es zu spät damit anzufangen. So habe ich den ganzen Morgen verbraten um diese Funktion nach zu programmieren. Es ist mir teilweise gelungen nur hänge ich an einem kleinen Problem. Und zwar brauche ich zur Weiterverarbeitung der Daten diese in einem einzigen String. Doch so richtig gelingt es mir nicht die Daten in einem String hintereinander aufzuschlüsseln. Bisher ist es mir nur gelungen die Daten in einem Array zu packen, doch dann stehen sie bei einer weiteren Verarbeitung in einer Zelle das sieht dann ungefähr so aus:

|00:00:00, 0,000000|
|00:00:01, 0,309017|
|00:00:02, 0,587785|
|00:00:03, 0,809017|

Möchte sie aber in zwei Zellen aufgeteilt haben:

|00:00:00, | 0,000000|
|00:00:01, | 0,309017|
|00:00:02, | 0,587785|
|00:00:03, | 0,809017|

In dem angehängten Bild erzeuge ich im ersten Teil (1) die fortlaufende Zeit und füge diese an die jeweiligen Messwerte an. Im zweiten Teil (2) wollte ich dann die beiden zusammenhängenden Teile auf jeweils eine Spalte aufteilen. Das funktioniert auch aber logischerweise und auch dummerweise nur mit dem letzten Wert. Der String wird ja immer wieder von dem aktuellen Wert überschrieben!

Ich versuche gerade noch eine Lösung zu finden, wenn ich aber wieder von jemanden einen heißen Tipp bekommen könnte, wäre ich sehr dankbar.


Viele Grüße
Body


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Y-P - 07.11.2012 07:39

So?
[attachment=42135]

Gruß Markus

(07.11.2012 06:45 )Body Lotion schrieb:  doch dann stehen sie bei einer weiteren Verarbeitung in einer Zelle das sieht dann ungefähr so aus:

|00:00:00, 0,000000|
|00:00:01, 0,309017|
|00:00:02, 0,587785|
|00:00:03, 0,809017|

Möchte sie aber in zwei Zellen aufgeteilt haben:

|00:00:00, | 0,000000|
|00:00:01, | 0,309017|
|00:00:02, | 0,587785|
|00:00:03, | 0,809017|



RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Body Lotion - 07.11.2012 08:51

Hallo Markus,

JA Smile

Vielen Dank für die Lösung meines Problems. In der Zwischenzeit konnte ich das Problem ebenfalls lösen, jedoch nicht so elegant und sauber. Ich hatte es mit der Concatenate Funktion und dem Feedback Node realisiert. Hatte hier jedoch das Problem, dass die Daten bei einem erneuten Start immer wieder am Ende der alten Daten angehangen wurden.
Problem gelöst vielen DANK!

Nur noch eine Sache. In dem Beispiel was du mir zugeschickt hast wird mir meine 1,0000 in Excel immer als 1.000.000 dargestellt. Hattest du dieses Problem auch?

Viele Grüße
Body


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Y-P - 07.11.2012 09:06

Dann musst Du in Excel mal die Eigenschaften Deiner Zelle umstellen, oder hier den String so formatieren, dass Excel ihn versteht.

Gruß Markus

(07.11.2012 08:51 )Body Lotion schrieb:  Nur noch eine Sache. In dem Beispiel was du mir zugeschickt hast wird mir meine 1,0000 in Excel immer als 1.000.000 dargestellt. Hattest du dieses Problem auch?



RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Body Lotion - 07.11.2012 10:17

Hallo Markus,

bei Excel konnte ich rumstellen wie ich wollte, dass hatte nichts gebracht. Und auch die Wahl verschiedener Formate brachte mich nicht weiter.

Meine 1,000000 wird mir bei:
%f als 1.000.000
%.2f als 1,00
und bei %.3f als 1.000 dargestellt.

Erst als ich %#.3f ausprobiert habe hat es mehr oder weniger gut geklappt. Jetzt habe ich eine glatte 1 stehen. Für das Auge wäre mir eine 1,000 lieber gewesen aber aber daran will ich mich zunächst erst einmal nicht weiter stören.

Vielen Dank und viele Grüße
Body


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - GerdW - 07.11.2012 10:22

Hallo Body,

- Welche Regionaleinstellungen benutzt du in Windows (bzgl. Dezimaltrennzeichen und 1000er Trennzeichen)?
- Welche erwartet Excel?
- Welche verwendest du in LabVIEW?
- Was passiert, wenn du in LabVIEW die csv-Dateien mit der Endung "*.txt" speicherst und diese dann in Excel mittels des Importassistenten einliest?


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - Body Lotion - 07.11.2012 18:05

Hallo Zusammen,

ich habe gemerkt das der Thread verschoben wurde. Vielen Dank dafür hatte mir schon Gedanken gemacht ob ich hier überhaupt noch richtig bin mit meinen Fragen.

Nun zu den Fragen: Ich befinde mich zurzeit in China jedoch sind meine Regionaleinstellungen von Windows unverändert die von Deutschland. Trennzeichen ist also ein Komma usw.. Bei den Einstellungen von LabView und Excel habe ich jetzt keinen Hinweis darauf gefunden um welche regionale Einstellung es sich handelt.

Der Import einer als *.txt in Excel hat problemlos geklappt und die Zahlen wurden auch richtig dargestellt. Ich verwende allerdings die ActiveX-Lösung und greife dabei auf ein vorhandenes Excel-Sheet zu. Manche Daten interpretiert Excel allerdings dann als Standard und manche als Zahl.

Moment habe ich aber ein neues Problem, an dem ich jetzt den ganzen Abend gesessen habe. Es ist wirklich zum verzweifeln, da ich heute gedacht hatte fertig zu werden doch immer wieder eine neue Baustelle.

Inzwischen habe ich mein VI mit dem DAQ Assistenten aufgebaut und mein NI USB 6009 angeschlossen. An dessen Analogeingang habe ich erst einmal einen Frequenzgenerator mit 50Hz und Sinus 8Vpp angeklemmt. Mit erschrecken musste ich feststellen, dass meine Messung immer nur solange dauert bis meine zuvor eingestellte Anzahl an Sample erreicht ist. Womit ich bei einem Problem bin, dass ich in meinem ersten Post schon geschildert hatte. Nach bspw. 1,39s sind alle 100 Sample aufgezeichnet und die Messung beendet. Ich war eigentlich der Meinung, dass wenn man den DAQ Assistenten kontinuierlich aufnehmen lassen will, dass man mit der Anzahl der Samples die Puffergröße angibt.
Huh
[Auszug Hilfe]: Number of samples: "For continuous tasks, NI-DAQmx uses this value to determine the buffer size and the number of samples to read from the buffer."
Wie bekommt man es hin das alle Daten in einem Zeitraum aufgezeichnet werden?

Und ein weiteres Problem ist, dass ich meine Aufzeichnung gerne bei Null beginnen möchte. Doch alle versuche mit triggern sind gescheitert.
Ich habe es jetzt mit der Trigger & Gate Funktion probiert: Problem war hier ich zeichne wieder nur eine bestimmte Anzahl von Samples auf und nicht kontinuierlich.
Ich habe es mir DAQmax Trigger probiert: Problem ich weiß nicht wie ich den zum feuern bekomme. Habe hierzu das Beispiel von NI studiert gehabt aber nicht zum laufen bekommen.
Und ich habe es mit einem Basic Level Trigger Detection versucht, diesen an einen CASE angeschlossen und gesagt, wenn TRUE dann aufzeichnen - das hat auch nicht funktioniert. Sehr deprimierend das Ganze.
Gibt es da so etwas wie ein Standardvorgehen bei solchen Sachen?

Ich bin hier leider auf mich allein gestellt und bemühe mich sehr so weit es geht alleine auf eine Lösung zu kommen.

Viele Grüße
Body

Ich habe nochmal meine aktuelle Version angefügt!!!


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - jg - 07.11.2012 18:21

Bei der Übergabe von Zahlen an Excel per ActiveX will Excel heim zu Mama (sprich USA) und erwartet dann die Zahlen auch mit einem Punkt als Kommatrennzeichen.

Zu deinem DAQmx-Problem, das passt nicht zu dem ganzen Speichern als csv oder Excel, mach dafür vielleicht einen eigenen Thread unter DAQmx auf. Ansonsten springen wir hier dauernd zwischen Speichern und Datenerfassung hin und her, und es blickt keiner mehr durch.

Gruß, Jens


RE: Zeitliche Messwertaufnahme: Wo Write-to-spreedsheet-file-vi platzieren - GerdW - 07.11.2012 21:14

Hallo Body,

wo in China genau?

Zitat:mein VI mit dem DAQ Assistenten aufgebaut und mein NI USB 6009 angeschlossen. An dessen Analogeingang habe ich erst einmal einen Frequenzgenerator mit 50Hz und Sinus 8Vpp angeklemmt. Mit erschrecken musste ich feststellen, dass meine Messung immer nur solange dauert bis meine zuvor eingestellte Anzahl an Sample erreicht ist.
Dann lass doch mal diese ExpressVIs sein und programmiere vernünftig. Es gibt fertige Beispiele zum kontinuierlich Datenerfassen mit AI, die sollten auch mit der USB6009 laufen. Ist echt nicht schwierig, sich die 3 oder 4 DAQmx-Funktionen zurechtzuschieben!

Zitat:Wie bekommt man es hin das alle Daten in einem Zeitraum aufgezeichnet werden?
Mit DAQmx-Timing die Samplerate und "kontinuierliche Messung" vorgeben - wie in den Beispielen gezeigt!

Zitat:meine Aufzeichnung gerne bei Null beginnen möchte
??? Null auf der X- oder der Y-Achse?
Null auf der X-Achse: Startzeit merken und von Messzeit subtrahieren...
Null auf der Y-Achse: Ersten Wert merken und von den restlichen Werten subtrahieren...