LabVIEWForum.de
ConsumerProducer (Fehler 200279) - Druckversion

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

Seiten: 1 2


ConsumerProducer (Fehler 200279) - akoKE - 26.09.2012 14:12

hello Folks,

habe anbei ein kleine Consumer/Producer Programm welches einen Analogen Task mit 6-Spannungskälen erfasst. und auf Knopfdruck erfasst und abspeicher.

Leider funktioniert das ganze nicht ganz reibungslos.

Es erscheint ein Fehler bei "Element einfügen"

Desweiteren verstehe ich nicht wieso, die Queue nicht weiter abgebaut wird (im Verbraucher Loop),so dass die Queue immer weiter anwächst.


Danke für die Aufmerksamkeit.

Grüße
akoKE


RE: ConsumerProducer (Fehler 200279) - GerdW - 26.09.2012 17:42

Hallo noob,

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...


RE: ConsumerProducer (Fehler 200279) - akoKE - 26.09.2012 19:36

Auch!

Danke @ GerdW !!

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 ??

Grüße

Lösung/Ppoblem siehe Anhang Wink


RE: ConsumerProducer (Fehler 200279) - jg - 26.09.2012 22:35

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


RE: ConsumerProducer (Fehler 200279) - akoKE - 01.10.2012 07:40

Danke sehr JG,

Das hatte ich ganz vergessen Blush

(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. Confused Smile

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]


RE: ConsumerProducer (Fehler 200279) - akoKE - 01.10.2012 09:10

Servus,

habe nun eine erste, hoffentlich einigermaßen anständige Lösung gefunden.

Jedoch bekomme ich immer noch einen FEHLER, wegen der for schleife im ConsumerLoop. was auch verständlich ist, da keine Bedingung for gestellt ist.

In der gefundenen Lösung (Aus dem NI Forum) funktioniert das VI. jedoch. ??!!

Hoffe mal da kann einer das Rätsel Lösen.

anbei mein VI, sowie das QuellenVi.


Grüße


RE: ConsumerProducer (Fehler 200279) - akoKE - 01.10.2012 13:31

Servus,

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.


Danke für die Aufmerksamkeit & Hilfe.


RE: ConsumerProducer (Fehler 200279) - lukas_c - 01.10.2012 18:38

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.


Viel Erfolg
Carsten



RE: ConsumerProducer (Fehler 200279) - akoKE - 04.10.2012 09:12

(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.

Danke & Grüße


RE: ConsumerProducer (Fehler 200279) - akoKE - 04.10.2012 12:41

Nachtrag:

Leider Funktioniert die Speicherung der Daten doch Immer noch nicht ! ://

Huh Glas2