Hallo Gerd,
danke für die Anmerkungen, vorallem der Tipp mit der Konstante aus dem DAQmxRead ist so einfach wie genial ;-)
Was ich allerdings nicht verstanden habe ist:
(14.08.2013 17:33 )GerdW schrieb: [ -> ]1/Linkes Bild:
- Es ist nicht sinnvoll, die Verbraucher-Loop (mit dem Dequeue-Aufruf) zu beenden, bevor der Consumer stoppt. Bei deinen Datenraten kannst das schnell zu einem "Out of Memory"-Fehler führen. Nutze den Fehlerausgang des Dequeue als Stopp-Bedingung...
Habe den Fehler tatsächlich jetzt andauernd.. ;-)
Was meinst du denn genau damit? Meintest du, dass ich meine "Speicher-Schleife" immer wieder unterbreche? Ich will eine Langzeitmessung durchführen, daher würde daran wohl kein Weg vorbeiführen... :-(
Grüße,
Gerald
Hallo Gerald,
deine Speicherschleife ist als While-Loop ausgeführt, die spätestens nach 300 Iterationen abbricht - unabhängig davon, ob die DAQ-Schleife noch läuft oder nicht...
Zitat:der Tipp mit der Konstante aus dem DAQmxRead ist so einfach wie genial
Einfach ja, genial nein.
Der Rechtsklick ist im BD einfach überall nötig/wichtig, fast alles lässt sich hierüber ein-/erstellen, er ist "grundlegendes" Werkzeug in LabVIEW!
- Man vermeidet CoercionDotsErzeugt, wenn man Konstanten über diesen Weg erzeugt.
- Alle wichtigen Einstellungen verbergen sich hinter dem Kontextmenü!
Hallo Gerd, danke für die schnelle Antwort und die TIpps :-)
(15.08.2013 14:01 )GerdW schrieb: [ -> ]deine Speicherschleife ist als While-Loop ausgeführt, die spätestens nach 300 Iterationen abbricht - unabhängig davon, ob die DAQ-Schleife noch läuft oder nicht...
Hmmm glaube verstehe was du meinst
Die While-Schleife bricht ab und die Werte im Queue können nicht mehr abgearbeitet werden und da es (anscheinend) zu lange dauert bis eine neu Datei erstellt wurde in die wieder die Sampels hineingeschrieben werden können wird der Queue voll und spuckt eine Fehlermeldung aus (stimmt das soweit?).
Das Problem ist nur, dass ich die While-Schleife unterbrechen
muss um eine neue Datei zu generieren (werde nicht alles in eine Datei bekommen) Habe schon versucht die Größe des Queues zu vergrößern, aber bekomme immer wieder eine Fehlermeldung ("ran out of memory").
Viele Grüße
Gerald
PS: Ich habe unten noch meine jetzige Version angefügt und die beiden Fehlermeldung reinkopiert..
Hallo Gerald,
zum Bild:
- Bilder klein skalieren vermindert die Lesbarkeit...
- Ich habe keine Ahnung, wie lange die TDMS-Funktionen zum Schließen und Neuöffnen von Dateien brauchen. Du kannst ja zu Debuggingzwecken mal die Größe der Queue überwachen (QueueStatus).
Off-Topic:
- Deine Dateinamen-Generierung ist "kreativ". "C:\..." gehört in eine Pfadkonstante (!), die nicht an ConcatString, sondern an BuildPath angeschlossen wird. Wenn der Dateiname auf ".tdms" enden soll, kannst du das auch direkt in den Formatstring schreiben. ConcatString wird dann nicht mehr benötigt...
- Dein VI einfach mal (automatisch!?) aufzuräumen würde auch nicht schaden...
Danke für den Tipp und die Anmerkung!!!
Ich glaube ich beende lieber das Thema an dieser Stelle, da es mittlerweile auch nicht wirklich mehr was mit dem ursprünglichen Problem zu tun hat (diese wurde -dank eurer Hilfe
- gelöst!!!).
Werde mal schauen ob ich diesen Out-of-Memory-Fehler irgendwie in den Griff bekomme, ansonsten würde ich ein neues Thema an Anderer Stelle aufmachen.
Vielen Dank!!! !!