LabVIEWForum.de
Kleines Problem beim Datenloggen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Kleines Problem beim Datenloggen (/Thread-Kleines-Problem-beim-Datenloggen)

Seiten: 1 2


Kleines Problem beim Datenloggen - hulk - 05.04.2017 06:32

Guten Morgen,

ich möchte Druck erfassen und habe dazu zwei kleine Probleme:
1) Beim Schreiben in eine Datei werden die Sekunden nicht mitgeschrieben.Im Frontpanel werdern Sie aber angezeigt. (Formatierung stimmt noch nicht.Die Lösung kenne ich aber)
2) Meine Methode bei einer Schalterstellung Daten mitzuschreiben funktioniert nicht. Wenn ich den Teil außerhalb der While Schleife nehme klappt es. Aber ich hätte es gern bei BEdarf und nicht nur bei Programmende


RE: Kleines Problem beim Datenloggen - Freddy - 05.04.2017 10:06

Hallo Hulk,
in der While Schleife wird bei jedem Durchgang die Daten an das Array gehängt.
Es ist egal wann Du es schreiben wirst.
Das Anhängen an das Array muss in die If Anweisung gleich true. In False mus direkt vom While Eingang an den Wheil Ausgang.

Es gibt da noch ein einen Punkt den verstehe ich nicht ganz.
Bei jedem Schreiben hast Du auch den Arrayteil des vorherigen mit dabei.

Wenn Du nur die Phase Schalter gleich true aufnehmen willst, muss im false Fall ein leeres Array übergeben werden damit das Schieberegister für neue Aufnahmen wieder leer ist.

Gruß
Freddy


RE: Kleines Problem beim Datenloggen - hulk - 05.04.2017 15:40

Hallo Freddy,

nach der Verschiebung der Array Bildung in das True Case funktioniert es. Es sieht eigentlich gut aus.
Das Problem mit den nicht angezeigten Sekunden besteht noch.
Ich habe außerdem den Rat mit dem Nullen des Arrays befolgt. Jedoch bekomme ich nur an true UND false ein leeres Array angehängt.
Folgende Punkte habe ich jetzt noch offen:

1) Wie bekomme ich eine Messnummer erstellt. Den Schleifendurchgang zu nehmen erscheint mir nicht optimal. Ich hätte gern -->Messung starten und die Nummerierung beginnt bei 1.
2) Eine Frage zur Samplegeschiwndigkeit. Liege ich richtig in der Annahme, dass wenn ich einen Drucksensor mit 2ms Ansprechzeit habe, dies 500Sample/sek bzw 500Hz entspricht? Die Rate habe ich gemäß der Empfehlung in der Hilfe auf 1/10 gesetzt. Kommt da eigentlich das Schrieben in eine Tabelle hinterher?

MfG
Steffen


RE: Kleines Problem beim Datenloggen - Freddy - 05.04.2017 17:29

Hi Steffen,
ich habe dir mal so eine Möglichkeit angehängt.

Mit dem Sample hab ich es nicht so. Da kommt aber bestimmt noch was von GerdW.

Gruß
Freddy


RE: Kleines Problem beim Datenloggen - hulk - 10.04.2017 10:20

Hallo Freddy,

so sieht es gut aus. Ich habe es nur etwas angepaßt, so dass der Messpunktecounter bei Start immer bei Null beginnt.


RE: Kleines Problem beim Datenloggen - GerdW - 10.04.2017 10:37

Hallo Hulk,

Zitat:Da kommt aber bestimmt noch was von GerdW.
Big Grin

- Warum machst du den ErrorOut per PropertyNode unsichtbar? Einfach einen Rechtsklick auf sein Terminal und dies dauerhaft einstellen! (Wozu überhaupt eine Anzeige, die nicht sichtbar sein soll?)
- Wozu ein Schieberegister, dessen Daten NIE in der nächsten Iteration verwendet werden?
- GetDateTimeString verwendet standardmäßig die aktuelle Zeit, GetDateTimeInSeconds ist also unnötig.
- Per Rechtsklick auf den Chart kannst du eine Zahlenanzeige sichtbar machen, es wird also keine extra Anzeige für "Pressure live" benötigt.
- Dein DAQmxTask wird zwar gestartet, aber nirgends (sauber) gestoppt oder gar gelöscht…
- Profil_ergaenzen, wenn du jetzt mit LV2016 arbeitest…


RE: Kleines Problem beim Datenloggen - hulk - 07.05.2017 19:48

Hallo GerdW. und Freddy,

ich habe das ganze noch einmal bearbeiten müssen.

Zitat:- Warum machst du den ErrorOut per PropertyNode unsichtbar? Einfach einen Rechtsklick auf sein Terminal und dies dauerhaft einstellen! (Wozu überhaupt eine Anzeige, die nicht sichtbar sein soll?)

Ich hab da mal was verbunden. Zumindest bin ich da jetzt etwas etwas schlauer. Ist, glaube ich, gar nicht so verkehrt.

Zitat:GetDateTimeString verwendet standardmäßig die aktuelle Zeit, GetDateTimeInSeconds ist also unnötig.
Ich denke, du meintest die Formatierungsoption....erledigt

-
Zitat: Wozu ein Schieberegister, dessen Daten NIE in der nächsten Iteration verwendet werden?
entfällt

Zitat:Dein DAQmxTask wird zwar gestartet, aber nirgends (sauber) gestoppt oder gar gelöscht…
geändert

Zitat:Per Rechtsklick auf den Chart kannst du eine Zahlenanzeige sichtbar machen, es wird also keine extra Anzeige für "Pressure live" benötigt
War nur testweise

Generell sieht es jetzt anders aus. Jedoch hat sich wohl der Datentyp geändert. Leider schaffe ich es nicht, zu jeder Mesung einen Timestamp zu ergänzen.
Das csv speichern habe ich erstmal entfernt, aber schon erfolgreich (ohne die Zeit) getestet.
Ich wäre um Hilfe sehr dankbar.
lv14_img und 16 in Verwendung. Sorry
Aktuell 14.


RE: Kleines Problem beim Datenloggen - GerdW - 08.05.2017 07:27

Hallo Hulk,

Zitat:Dein DAQmxTask wird zwar gestartet, aber nirgends (sauber) gestoppt oder gar gelöscht…
geändert
Auf äußerst komplizierte Weise…
Warum beendest du den DAQmxTask nicht einfach nach deiner Messschleife???
THINK DATAFLOW…

Jedoch hat sich wohl der Datentyp geändert.
Sowas passiert eigentlich nicht von allein, da hast DU wohl etwas geändert!

Zitat:Leider schaffe ich es nicht, zu jeder Mesung einen Timestamp zu ergänzen.
Wo ist das Problem?
Du liest 100 Samples pro DAQmxRead ein und musst dann eben 100 Timestamps dazu erstellen…

Tipp: Samples als Waveforms einlesen. Dann mal die Funktion GetWaveformTimeArray anschauen…

Zitat:LV2014 und LV2016 in Verwendung.
Dann erst recht: Profil_ergaenzen

Zum VI:
Die Kanalzuordnung sieht "komisch" aus: es werden die Kanäle ai2, ai1 und ai0 in genau dieser Reihenfolge in den Task aufgenommen. Später liest du Werte und sortierst um: der erste Channel im Task heißt dann Channel 2, der zweite Kanal wird zu Channel1 und der dritte zu Channel2. "Intuitiv"/"gut mit Kommentaren versehen" ist etwas anderes… Big Grin


RE: Kleines Problem beim Datenloggen - hulk - 08.05.2017 09:36

Guten Morgen Gerd,
du hast recht. Ein wenig Chaos in der Zuordnung.

1)
Zitat:Warum beendest du den DAQmxTask nicht einfach nach deiner Messschleife???
Das war die erste Variante. Leider hatte ich da folgendes Problem:
Messung gestartet, Messung gestoppt, etwas gewartet, und dann kam die Meldung, dass die Anwendung nicht Schritt halten kann. Also dachte ich mir, stoppe den Task mit dem Pausieren der Messung.


2) Der Datentyp hat sich durch mich geändert...Multiple Channel+samples

3)
Zitat:Leider schaffe ich es nicht, zu jeder Mesung einen Timestamp zu ergänzen.
Wo ist das Problem?
Du liest 100 Samples pro DAQmxRead ein und musst dann eben 100 Timestamps dazu erstellen…

Tipp: Samples als Waveforms einlesen. Dann mal die Funktion GetWaveformTimeArray anschauen…
Da bin ich leider nicht schlau draus geworden.sorry

Profil ist angepaßt


RE: Kleines Problem beim Datenloggen - GerdW - 08.05.2017 09:45

Hallo hulk,

Zitat:Messung gestartet, Messung gestoppt, etwas gewartet, und dann kam die Meldung, dass die Anwendung nicht Schritt halten kann. Also dachte ich mir, stoppe den Task mit dem Pausieren der Messung.
Wenn du den Task mit einer Pause stoppst, musst du ihn aber auch wieder nach Beenden der Pause starten…

Besser wäre aber:
Du hast den Task doch als "Kontinuierlich" angelegt: dann solltest du die Messdaten auch kontinuierlich lesen!
Niemand hindert dich doch daran, die Daten, die du nicht benötigst (z.B. in einer Pause), einfach zu verwerfen!

Zitat:Da bin ich leider nicht schlau draus geworden.
So sähe das aus:
[attachment=57764]