LabVIEWForum.de
Zeitformat beim Speichern - 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: Zeitformat beim Speichern (/Thread-Zeitformat-beim-Speichern)



Zeitformat beim Speichern - JustinSane - 18.07.2012 12:03

Hallo allerseits!

Leider habe ich ein kleines Problem beim Speichern von Daten. Ich habe es mal als VI angehängt. Die ausgabe ist etwa folgende:

t0 01.01.1904 01:00:00,000000
delta t 0,001000

time Y
01.01.1904 01:00:00,000000 0,000000
01.01.1904 01:00:00,001000 0,003142
01.01.1904 01:00:00,002000 0,006283
...

Wobei die Zeit in einer Zeile steht und der Wert in der zweiten. Soweit ist auch alles in Ordnung, aber wie kann ich das Zeitformat ändern? Ich möchte die Daten später in einem anderen Programm importieren und hätte dafür die Zeit gern als einfache Zahl (Anzahl der Sekunden seit ...), da es sonst wegen der Punkte, Leerzeichen und Doppelpunkte in der Zeitinformation unnötig kompliziert mit dem einlesen wird.

Könnte mir dazu jemand einen Tip geben? Vielen Dank im Voraus!

Justin


RE: Zeitformat beim Speichern - GerdW - 18.07.2012 13:21

Hallo Justin,

du verwendest eine vorgefertigte Funktion und beschwerst dich über deren Ergebnis. Warum benutzt du sie dann erst?

Tipp:
Wenn dir das Datenformat insgesamt gefällt, nur die Timestamps anders formatiert werden sollen, legst du eine Kopie der verwendeten Speicherfunktion (mitsamt der enthaltenen subVIs!) an. Diese Kopie guckst du dir dann an und änderst das eine subVI (von dem du auch eine Kopie angelegt hast!!!), damit es die Zeitstempel anders formatiert...


RE: Zeitformat beim Speichern - Lucki - 19.07.2012 09:13

Ja, ich muss gestehen: Als ich mich vor Jahren autodidaktisch in LV einarbeitetete, wusste ich auch lange Zeit nicht, wie man einen Zeitstempel in eine Zahl umwandelt. Wie sich dann herausstellte, bestand das Problem darin, dass die Konvertierung so unsäglich einfach ist, dass es unmöglich war von selbst darauf zu kommen.
Hier ist die Lösung. Wie Du die Zeit in der Datei abspeicherst, ob in Gleitkommaziffern mit drei Stellen nach dem Komma, oder als normales Datum, ist egal. Hauptsache du weißt wie man hin- und zurück konvertiert.

[attachment=40722]


RE: Zeitformat beim Speichern - JustinSane - 20.07.2012 17:54

Danke für die Antworten. Das Konvertieren mittels DBL-Konverter hatte ich schon versucht - hat aber bei mir nur bei einfachen Time Stamps funktioniert und nicht bei Signalverläufen. Ich habe mich jetzt mal daran begeben, die Speicher-Funktion selbst zu ändern.
Zu der Frage von GerdW:
Bin einfach mal davon ausgegangen, dass so ein banales Feature wie eine Änderung der Zeitachse über Parameter bzw. Einstellungen möglich ist und ich die entsprechende Option einfach noch nicht gefunden habe - scheint aber ja nicht der Fall zu sein.

Naja, ich hoffe mal, dass ich so weiterkomme. Momentan klappt das Speichern mit neuer Zeitangabe schon, leider weigert sich Matlab, diese Einzulesen...
Jetzt ist aber erstmal Wochenende Smile


RE: Zeitformat beim Speichern - Lucki - 21.07.2012 07:55

(20.07.2012 17:54 )JustinSane schrieb:  Ich habe mich jetzt mal daran begeben, die Speicher-Funktion selbst zu ändern.
Da muß man sich nicht erst mit Anlauf "daran begeben", das ist ganz einfach.
In der Speicher-Funktion gibt es ein SubVI "Signalverlaufzeit in Datum/Zeit-String konvertieren":
[attachment=40769]
Das wäre zu ersetzen durch das selbst zu erstellende SubVI "Signalverlaufszeit in Numerischen String konvertieren":
[attachment=40770]


RE: Zeitformat beim Speichern - GerdW - 21.07.2012 09:09

Hallo Justin,

Zitat:Das Konvertieren mittels DBL-Konverter hatte ich schon versucht - hat aber bei mir nur bei einfachen Time Stamps funktioniert und nicht bei Signalverläufen. ... Bin einfach mal davon ausgegangen, dass so ein banales Feature wie eine Änderung der Zeitachse über Parameter bzw. Einstellungen möglich ist
Beide Bemerkungen zeigen einen gewissen Mangel an Wissen über Signalverläufe (aka waveforms): Waveforms stellen (einfach betrachtet) einen Cluster aus 3 Daten dar: t0, dt und [Y]. Die Änderung der Zeitachse erreicht man durch Ändern von t0 und dt - das sind zwei einfache skalare Werte. Das Konvertieren der Timestamps kann man ebenfalls ausgehend von t0 und dt erledigen - oder man nutzt die Funktion "Signalverlauf in XY-Paare" (wobei diese mMn schlecht implementiert ist, da sie mögliche Rechenungenauigkeiten von DBL-Werten forciert)...