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!
du defnierst deine Queue als "1D-Array[DBL]"-Datentyp und schiebst Waveforms rein!?
Erhälst du oben irgendwelche Fehler, die den Abbruch der Verbraucherqueue bewirken? Den Verbraucher vor dem Producer zu beenden ist jedenfalls nicht ratsam...
Das war ein dummer Fehler, habe ich hoffentlich richtig behoben.
(26.09.2012 17:42 )GerdW schrieb: ...
Erhälst du oben irgendwelche Fehler, die den Abbruch der Verbraucherqueue bewirken? Den Verbraucher vor dem Producer zu beenden ist jedenfalls nicht ratsam...
Denke mal, das Du damit auf mein 2. Problem anspielst, dass die Queue Elemente nicht abgebaut werden ?!
also eigentlich sollte ein evtl. Fehler "Element aus Queue entfernen" den Verbraucher Stoppen.
und eigentlich sollte, wenn im Erzeuger die Case auf FALSE ist, auch kein weiteres Element an die Queue angehängt werden.
....kann es sein, das das speichern der Werte zu langsam ist ??
Wie ist den die Konfiguration des AI-Task? Soll heißen, welcher Takt, wieviele Kanäle, etc. pp., Infos über die verwendete DAQmx Hardware können auch nicht schaden.
An Hand deines Uploads kann man nicht erkennen, wie schnell deine Producer-Loop läuft. Nur mal so als Beispiel: Falls deine Producer Loop auf Grund deiner HW-Einstellungen mit ca. 1 kHz lauft, dann ist klar, wieso der Consumer nicht mehr nachkommt. Mit der Rate Daten in ein File schreiben, erst Recht mit einen Express-VI, das geht schief.
Zusammenfassung:
- Für den Upload im LVF bitte den DAQmx-Task in DAQmx-Code umwandeln (Rechtsklick -> ...)
- Auf Express-VIs verzichten (vor allem bei kontinuierlicher Speicherung).
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!
(26.09.2012 22:35 )jg schrieb: - Für den Upload im LVF bitte den DAQmx-Task in DAQmx-Code umwandeln (Rechtsklick -> ...)
Gruß, Jens
Das Problem ist, dass ich mehrere Kanäle habe, und eigentlich auch gerne die Konfigs im UserPanel hätte, nur denke Ich ist es leichter für den Benutzer alles einmal im DAQmx zu konfigurieren und dann über das Programm lediglich die Messung zu Bedienen.
Vorallem wüsste ich garnicht wie ich 7-Signale Übersichtlich unterbringen könnte.
Ps. Kann man die Taskauswahl eigentlich auch auf dem Userpanel sichtbar machen, bzw. Auswählbar machen??
(26.09.2012 22:35 )jg schrieb: - Auf Express-VIs verzichten (vor allem bei kontinuierlicher Speicherung).
War mir nicht ganz Sicher welchen Ansatz ich für das Speichern wählen soll, da die Anzahl der Signale im späteren variieren kann, und zusätlich bin ich mir auch über den VariablenTyp der Signale nicht ganz im klaren [Zeitinfo, Wertinfo; DBL, etc.] (braune Signalkette)
Deshalb zunächst dieser Lösungsansatz.[/align]
Habe nun das Problem mit dem Speichern, mittels TDMS Dateien gelöst.
Hoffe das SubVi wurde sauber programmiert, denn ich habe das schließen nicht implementiert, da die Datei dauernd offen bleiben soll.
Mein größeres Problem ist nun, dass der Consumer / Verbraucher Loop nicht mehr aufgerufen wird. Also die Queue nicht abgebaut wird.....und leider habe ich keine Idee wieso?!
Bisher der einzige Ansatz ist ein evtl. Problem mit der SubVi Thematik bei Labview.
Hallo,
die Consumer-Loop Deiner letzten Version kann so nie starten, bevor die Producer-Loop beendet wird, da Du den Dateipfad per Datenfluss übergibst. Dahinter steckt wohl die Idee, den Pfad währen der Laufzeit ändern zu können, aber dann würde ich eine Variable oder einen Eigenschaftsknoten vorziehen.
Der Auf- und Abbauen der Queue kannst Du gut kontrollieren, indem Du beiden Schleifen zum Test einen leicht unterschiedlichen Timer einfügst. z.B. 100ms im Producer, 150 ms im Consumer. Dann kannst Du sehen, wie sich die Queue aufbaut und nach Ende der Erfassung wieder abbaut.
Ein solches Verhalten würde ich generell ohne die speziellen DAQ-Fälle testen und posten. Das macht die Fehlersuche deutlich einfacher.
(01.10.2012 18:38 )lukas_c schrieb: Hallo,
die Consumer-Loop Deiner letzten Version kann so nie starten, bevor die Producer-Loop beendet wird, da Du den Dateipfad per Datenfluss übergibst. Dahinter steckt wohl die Idee, den Pfad währen der Laufzeit ändern zu können, aber dann würde ich eine Variable oder einen Eigenschaftsknoten vorziehen.
Viel Erfolg
Carsten
Hallo und Danke Carsten.
habe mir sowas schon gedacht, aber eigentlich möchte ich einfach nur dass der Benutzer "vor!" Beginn der Messung einige Parameter auswählen kann, und eben auch den Pfad wohin die Messwerte gespeichert werden.
Die Messung selbst soll erst nach Auswahl einiger Kriterien "startbar" sein. Denn anhand dieser Auswahl/Definition, werden dann bestimmte Messungen/Analysen vorgenommen, und andere eben nicht.
Bin mir daher nicht sicher wohin genau ich den Pfad-Block am besten legen soll, ohne Fehler zu generieren.
Zitat:Ein solches Verhalten würde ich generell ohne die speziellen DAQ-Fälle testen und posten. Das macht die Fehlersuche deutlich einfacher.
Der Task an sich besteht ja aus allgemein simulierten Signalen.
Da ich recht neu im Umgang mit Labview bin, dachte ich mir, das ich damit auf jedenfall auf der Sicheren Seite bin, was die Datenformate etc. angeht.