INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

State Machine zum Speichern von TDMS



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.11.2015, 11:47 (Dieser Beitrag wurde zuletzt bearbeitet: 27.11.2015 13:58 von jg.)
Beitrag #1

gifo Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Nov 2015

2014
2014
DE



State Machine zum Speichern von TDMS
Hallo LabVIEWForum,

ich habe eine State-Machine zum Speichern von Messdaten (TDMS) erstellt.
Darüber hinaus soll in einem Diagramm das Messsignal wiedergegeben werden.
Um die Messung zeitlich zu begrenzen, soll es über ein Bedienelement möglich sein, eine Messdauer zu definiert.

Genau dort liegt mein Problem, denn das Programm speichert nicht so lange wie unter Messdauer eingestellt wird.
Stelle ich 20 sec. ein, dann werden nur 4 sec. gespeichert. Bei 40 sec. sind es 8 sec. und bei 60 sec. eingestellter Messdauer werden nur 12 sec. gespeichert.
Dazu kommt, dass mit dem Start der Messung das Signal im Diagramm merklich langsamer abläuft und nachdem die Messung beendet wurde, extrem schnell.
Nach einer gewissen Zeit läuft dann das Signal wieder in normaler Geschwindigkeit.

Könnte vielleicht jemand von euch einen Blick in das Programm werfen und mir einen Tipp geben woran das liegen könnte?

Viele Grüße,
Gifo

lv14_img
0.0 .rar  State Maschine Aufnahme 2.rar (Größe: 56,09 KB / Downloads: 202)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.11.2015, 16:19
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: State Machine zum Speichern von TDMS
Mehrere Fehler und Probleme:

1) Du schiebst einfach viel zu viele kleine Datenelemente in die Queue, die können dann bei aktivierter Filespeicherung gar nicht mehr so schnell abgearbeitet werden.
Lösung: Größere Waveforms aus DAQmx holen:
   

2) Was sollen die Race-Conditions im Aufnahme-Schritt? Wozu eine eigenen Überprüfung, ob die Zeit abgelaufen ist? Das liefert dir das VI "Verstrichene Zeit":
   

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 10:13
Beitrag #3

gifo Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Nov 2015

2014
2014
DE



RE: State Machine zum Speichern von TDMS
Hallo Jens,

vielen Dank für deinen Kommentar. Smile
Zitat:1) Du schiebst einfach viel zu viele kleine Datenelemente in die Queue, die können dann bei aktivierter Filespeicherung gar nicht mehr so schnell abgearbeitet werden.
Lösung: Größere Waveforms aus DAQmx holen:

Ja stimmt den Anschluss hatte ich total vergessen, danke für den Hinweis. Jetzt habe ich aber das Problem das mein Programm bei der Ausführung stockt. Im Task-Manager von Windows wird mir aber weder eine hohe CPU-Auslastung angezeigt noch ist der Arbeitsspeicher voll ausgelastet. Woran kann das liegen, bzw. wie kann ich dieses Problem abstellen?

Zitat:2) Was sollen die Race-Conditions im Aufnahme-Schritt? Wozu eine eigenen Überprüfung, ob die Zeit abgelaufen ist? Das liefert dir das VI "Verstrichene Zeit":

Ja da hast du vollkommen recht, der Teil ist total überflüssig und ich hätte es eigentlich besser wissen müssen. Wall

   

In dem Bereich habe ich leider auch noch ein Problem. Wie muss ich das anstellen, dass die verstrichene Zeit wieder auf 0 gesetzt wird, bevor eine neue Messung beginnt?
Denn bisher ist es so, dass beim ersten Start einer Messung noch alles funktioniert aber bei nachfolgenden Messungen gibt es Probleme, die sich wie folgt äußern:

- Messbutton wird betätigt -> eine neue Datei wird erstellt und anschließend die Aufnahme beendet noch bevor die Elapsed Time startet
- Messbutton wird erneut betätigt -> die Datei wird wie gewollt gespeichert

Viele Grüße,

Gifo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2015 10:19 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: State Machine zum Speichern von TDMS
Du hast offenbar Änderungen an deinem VI vorgenommen und stellst dazu Fragen...
Dann her mit dem VI!

Gruß, Jens

EDIT: Wieso ist da im Screenshot immer noch eine lokale Variable (inkl. Race Condition)?

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 11:25
Beitrag #5

gifo Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Nov 2015

2014
2014
DE



RE: State Machine zum Speichern von TDMS
(30.11.2015 10:18 )jg schrieb:  Du hast offenbar Änderungen an deinem VI vorgenommen und stellst dazu Fragen...
Dann her mit dem VI!
Hier ist die neue Version.

0.0 .rar  State Maschine Aufnahme 3.rar (Größe: 56,14 KB / Downloads: 210)


Zitat:EDIT: Wieso ist da im Screenshot immer noch eine lokale Variable (inkl. Race Condition)?

Ich glaube dann musst du mir vielleicht doch mal erklären, was du mit "Race Condition" in dem Fall meinst?

Gruß,

Gifo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2015 11:43 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: State Machine zum Speichern von TDMS
Hallo gifo,

Zitat:Ich glaube dann musst du mir vielleicht doch mal erklären, was du mit "Race Condition" in dem Fall meinst?
Jens verweist auf meine Signatur.
Meine Signatur verweist in ROT auf Einträge in der LabVIEW-Hilfe!

Jens meint die lokale Variable "Time has elapsed", die hier die RaceCondition erzeugt - und nebenbei vollkommen unnötig ist, wenn du einfach mehr DRAHT verwenden würdest…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.11.2015, 11:45
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: State Machine zum Speichern von TDMS
Wie Gerd schon schreibt, das hier:
   
Du kannst nicht vorhersagen, was LabVIEW zuerst abarbeitet. Das Schreiben des Terminal oder das Lesen der lokalen Variable...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 12:47
Beitrag #8

gifo Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Nov 2015

2014
2014
DE



RE: State Machine zum Speichern von TDMS
Hallo GerdW, hallo Jens,

danke für den Hinweis.
Durch verwenden von "Draht" arbeite ich mit dem Data-Flow Prinzip und durch Verwendung von "Lokalen Variablen" unterbreche ich dieses Prinzip.
Also meine Aussage ist jetzt auf mein Programm bezogen und nicht verallgemeinert! Aber habe ich das so richtig verstanden?

Hättet ihr denn einen Tipp für mich, wie ich meine anderen beiden Probleme lösen kann?

Gruß,

Gifo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 13:27
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: State Machine zum Speichern von TDMS
(30.11.2015 10:13 )gifo schrieb:  Ja stimmt den Anschluss hatte ich total vergessen, danke für den Hinweis. Jetzt habe ich aber das Problem das mein Programm bei der Ausführung stockt. Im Task-Manager von Windows wird mir aber weder eine hohe CPU-Auslastung angezeigt noch ist der Arbeitsspeicher voll ausgelastet. Woran kann das liegen, bzw. wie kann ich dieses Problem abstellen?
Was genau meinst du mit stocken? Bei mir läuft das Programm...
Zitat:Denn bisher ist es so, dass beim ersten Start einer Messung noch alles funktioniert aber bei nachfolgenden Messungen gibt es Probleme, die sich wie folgt äußern:

- Messbutton wird betätigt -> eine neue Datei wird erstellt und anschließend die Aufnahme beendet noch bevor die Elapsed Time startet
- Messbutton wird erneut betätigt -> die Datei wird wie gewollt gespeichert
Indem du sinnvoll und korrekt den Eingang "Reset" deines "Verstrichene Zeit" VI verwendest. Beim ersten Aufruf des Schritts "Aufnahme" nach "Einstellungen" muss da ein TRUE anliegen, danach ein FALSE.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.11.2015, 15:33
Beitrag #10

gifo Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Nov 2015

2014
2014
DE



RE: State Machine zum Speichern von TDMS
Okay ich hab es eben mit weniger Samples pro Kanal (1000 statt 10000) probiert und da lief das Programm flüssiger.
Mit stocken meine ich, dass das Signal im Diagramm nicht flüssig läuft und das Programm zeitverzögert auf Eingaben reagiert. Also wenn Button gedrückt werden oder z.B. die Messdauer verändert wird.

Zitat:Indem du sinnvoll und korrekt den Eingang "Reset" deines "Verstrichene Zeit" VI verwendest. Beim ersten Aufruf des Schritts "Aufnahme" nach "Einstellungen" muss da ein TRUE anliegen, danach ein FALSE.

Ich hab das jetzt durch ein Schieberegister gelöst und gebe bei "Case-Einstellungen" ein True ins Schieberegister und bei "Case-Aufnahme" ein False. Ging dein Tipp in die Richtung oder gibt es da noch eine einfachere Lösung?


0.0 .rar  State Maschine Aufnahme4.rar (Größe: 56,33 KB / Downloads: 206)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  USB-6001: Eingangssignal (digital) als Event in State Machine auswerten wallice 1 2.624 06.10.2022 06:29
Letzter Beitrag: GerdW
  Speichern mit TDMS baggio2008 5 5.046 11.05.2015 10:40
Letzter Beitrag: GerdW
  DAQ State Machine: Daten hängen nach ExXeQtor 6 5.531 21.10.2014 16:12
Letzter Beitrag: ExXeQtor
  Eventstruktur in state machine/ Zustandssteuerung Meister Eder 1 4.018 11.02.2014 18:51
Letzter Beitrag: Trinitatis
  Timeout bei Flankenzählung + State machine 206racer 2 5.114 24.05.2011 07:13
Letzter Beitrag: 206racer
  State Machine flizzer82 14 13.014 07.05.2010 14:41
Letzter Beitrag: Y-P

Gehe zu: