LabVIEWForum.de
Intervallmessungen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Intervallmessungen (/Thread-Intervallmessungen)



Intervallmessungen - Wtjn - 13.05.2021 08:18

Moinmoin liebes LabviewForum,

für Messungen mit einem Körperschallsensor habe ich eine VI erstellt, die folgende Intervallfunktion erfüllen soll:

1. Neue TDMS-Datei erstellen
2. Signal für XXX Sekunden aufzeichnen und auf TDMS schreiben
3. TDMS speichern
4. YYY Sekunden pausieren (Sensor soll keine Daten sammeln geschweige denn auf TDMS schreiben)
... und dann alles wieder von vorne.

Aktuell besteht folgendes Problem:
Die Dauer der Pause die ich im Frontpanel einstelle wird ab dem zweiten Schleifendurchlauf zur Messzeit dazu addiert. Könnt ihr mir erklären wo mein Denkfehler liegt? Bitte habt Nachsicht mit mir, ich benutze Labview erst seit wenigern Tagen 2hands

Liebe Grüße Cool


RE: Intervallmessungen - jg - 13.05.2021 09:22

Hallo und willkommen im LabVIEWForum,
(13.05.2021 08:18 )Wtjn schrieb:  Aktuell besteht folgendes Problem:
Die Dauer der Pause die ich im Frontpanel einstelle wird ab dem zweiten Schleifendurchlauf zur Messzeit dazu addiert. Könnt ihr mir erklären wo mein Denkfehler liegt? Bitte habt Nachsicht mit mir, ich benutze Labview erst seit wenigern Tagen 2hands
Kann ich nicht nachvollziehen, dein Simulate-Signal-Step läuft bei mir immer solange, wie der aktuelle Wert der Messzeit (bzw. minimal mehr).

Verbesserungsvorschlag: Für Dateipfad-Manipulationen gibt es die Funktionen "Strip Path" und "Build Path", verwende lieber die anstatt Pfade mithilfe von Strings zusammenzubauen. Dann bist du unabhängig vom OS.

Gruß, Jens


RE: Intervallmessungen - GerdW - 13.05.2021 13:28

Hallo Wetjen,

ebenfalls herzlich willkommen im Forum!

Zitat:für Messungen mit einem Körperschallsensor habe ich eine VI erstellt, die folgende Intervallfunktion erfüllen soll:
1. Neue TDMS-Datei erstellen
2. Signal für XXX Sekunden aufzeichnen und auf TDMS schreiben
3. TDMS speichern
4. YYY Sekunden pausieren (Sensor soll keine Daten sammeln geschweige denn auf TDMS schreiben)
... und dann alles wieder von vorne.
Sowas nennt sich üblicherweise nicht "Intervallfunktion", sondern Ablauf/Zustandsautomat/Statemachine.
Und LabVIEW bringt Beispiel-VIs zu Statemachines schon mit…

Zitat:Aktuell besteht folgendes Problem:
Die Dauer der Pause die ich im Frontpanel einstelle wird ab dem zweiten Schleifendurchlauf zur Messzeit dazu addiert.
Ich muss Jens zustimmen: ich sehe dieses Problem auch nicht!

Du solltest aber, gerade als LabVIEW-Einsteiger, auch die entsprechenden Einsteigerkurse durcharbeiten!
Schau mal in meine Signatur, da findest du jede Menge Links…

Vorschlag zu deinem VI:
[attachment=61849]
Immer noch die gleiche Funktion, nur viel einfacher umgesetzt.
Merke:
- Sequenz-Strukturen sind fast immer unnötig - THINK DATAFLOW!
- "komplizierte" Abfolgen von NumToString und ConcatString lassen sich sehr einfach mit nur einem FormatIntoString erledigen
- wie Jens schon sagte: wenn du Pfade bearbeiten/erstellen willst, solltest du auch Pfad-Funktionen verwenden!


RE: Intervallmessungen - Wtjn - 14.05.2021 08:38

Vielen Dank schonmal für eure Antworten,

ich habe nochmal auf zwei Screenshots festgehaltenes was genau ich meine (Exemplarisch für 2s Messung - 8s Pause).

Die erste Messung läuft wie gewollt 2s Sekunden (data0000, blau).
Ab Messung zwei ist das aufgenomme Signal plötzlich 10s lang (bsp data0001, orange).

Verstehe ich das etwa richtig, dass das Problem bei euch nicht auftritt?? Huh

LG


RE: Intervallmessungen - GerdW - 14.05.2021 08:55

Hallo Wetjen,

Zitat:Verstehe ich das etwa richtig, dass das Problem bei euch nicht auftritt??
Ja, mit deinem ExpressVI kann ich das Problem bestätigen.
Wenn man auf ExpressVIs verzichtet, dann tritt das Problem aber nicht auf:
[attachment=61854]
Was sagt dir das?
(Und bedenke dazu die ganzen Kommentare zu ExpressVIs in vielen anderen Threads hier im Forum…)


RE: Intervallmessungen - Martin.Henz - 14.05.2021 09:43

Das Express-VI simuliert eine kontinuierliche Datenerfassung. Bei der ersten Iteration der inneren Schleife musst du den Reset Eingang auf TRUE setzen, sonst werden auch für die Zeit der Pause Daten ausgegeben.


RE: Intervallmessungen - Wtjn - 14.05.2021 09:57

Hey Gerd,

Zitat:Was sagt dir das?
Dass die ExpressVIs Müll sind Big Grin

Ich wollte damit nur im Home Office das Signal simulieren und wusste nicht, dass es da zu so Problemen kommen kann. Wie gesagt ich benutze Labview erst seit 4 Tagen und habe noch einiges aufzuholen Smile

Das Problem ist, dass das Signal am Prüfstand über den DAQ Assistant abgegriffen wird, was ja auch wieder eine Express VI ist. Werde also vor Ort am Sensor testen müssen wie sich die VI verhält Big Grin

LG
Hallo Martin,
(14.05.2021 09:43 )Martin.Henz schrieb:  Bei der ersten Iteration der inneren Schleife musst du den Reset Eingang auf TRUE setzen, sonst werden auch für die Zeit der Pause Daten ausgegeben.

auch wenn ich den Reset Signal auf True setze besteht das Problem leider weiterhin.

LG


RE: Intervallmessungen - Martin.Henz - 14.05.2021 11:12

Hallo Wetjen,

ah ok, sehe ich auch gerade. Ich befasse mich normalerweise nicht mit diesen Express-VIs, weil sie meist nicht das tun, was sie tun sollten und wenn doch, dann ist das Verhalten oft gar nicht erwünscht.

In dem Fall stimmt das Timing im Express-VI nicht. Das setzt das interne timing nicht zurück. Da wird dann ab der zweiten Iteration für eine immer größer werdende Anzahl Iterationen nicht mehr gewartet und damit steigt die Anzahl der Samples die in deiner TDMS Datei landen.

Ein Grund mehr, diese Katastrophen-VIs zu meiden. Oh, Tippfehler - da sollte "Express-VIs" stehen. Blush