LabVIEWForum.de
Queue sendet Nullen statt nichts - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Queue sendet Nullen statt nichts (/Thread-Queue-sendet-Nullen-statt-nichts)



Queue sendet Nullen statt nichts - PhilippDerGrößere - 02.02.2008 09:26

Hallo,

Wie oben beschrieben, hab ich folgendes Problem (-> siehe Grafik): Wenn auf dem digitalen Kanal eine 1 gelesen wird, soll die Queue geschickt werden, sonst soll nichts geschehen. Trotzdem wird jedesmal wenn die Schleife durchlaufen wird eine 0 gesendet. Wie kann ich das verhindern? (Es soll nichts hinzugefügt werden)

lg. PHilipp


Die Grafik:
[attachment=10955]

Das VI (LV8.5)
[attachment=10956]


Queue sendet Nullen statt nichts - cb - 02.02.2008 10:03

' schrieb:Hallo,

Wie oben beschrieben, hab ich folgendes Problem (-> siehe Grafik): Wenn auf dem digitalen Kanal eine 1 gelesen wird, soll die Queue geschickt werden, sonst soll nichts geschehen. Trotzdem wird jedesmal wenn die Schleife durchlaufen wird eine 0 gesendet. Wie kann ich das verhindern? (Es soll nichts hinzugefügt werden)

lg. PHilipp
Die Grafik:
[attachment=38025:DAQmx_Queue.JPG]

Das VI (LV8.5)
[attachment=38026:DAQmxKraDeh_Sub.vi]


HÄ?
da wird doch nichts in die Queue eingefügt. Du fragst im False Case ab, weiviel Elemente in der Queue sind, und da kommt richtigerweise 0 raus, wenn die Q leer ist ???

Wo liest du die Q denn aus? da musst du dann ggf. noch das Timeout Signal mit auswerten, falls du einen Timeout (z.B. 100 ms) eingestellt hast. Wenn innerhalb der Wartezeit dann kein Element in die Q eingefügt wurde das ausgelesen werden kann ist dieses Signal True.


Queue sendet Nullen statt nichts - PhilippDerGrößere - 09.02.2008 18:09

' schrieb:HÄ?
da wird doch nichts in die Queue eingefügt. Du fragst im False Case ab, weiviel Elemente in der Queue sind, und da kommt richtigerweise 0 raus, wenn die Q leer ist ???

Wo liest du die Q denn aus? da musst du dann ggf. noch das Timeout Signal mit auswerten, falls du einen Timeout (z.B. 100 ms) eingestellt hast. Wenn innerhalb der Wartezeit dann kein Element in die Q eingefügt wurde das ausgelesen werden kann ist dieses Signal True.

Danke, i2dx, für die schnelle Antwort. Sorry, dass ich mich erst so spät wieder melde. Hab das Problem noch immer. Es muss irgendwie am Verbraucher-VI liegen (hab mir die Daten die erzeugt werden angesehen, du hattest recht).

Hab deshalb einen Screenshot vom Verbraucher-VI gemacht. Das Problem tritt übrigens nicht auf, wenn ich das Verbraucher-VI nur halb so oft aufrufe, wie Daten erzeugt wurden. Wartet die Funktion "Element aus Queue entfernen" nicht bis neue Daten drin sind?

Screenshot:
[attachment=11096]

lg. Philipp


Queue sendet Nullen statt nichts - cb - 09.02.2008 21:24

' schrieb:Wartet die Funktion "Element aus Queue entfernen" nicht bis neue Daten drin sind?

die Primitive "Dequeue Element" wartet so lange wie mit "Timeout" eingestellt wurde, entweder unendlich lange (-1) oder X Millisekunden. Wenn der Timeout eintritt, dann gibt die Primitive das "Default" Element zurück, und das ist dann halt z.B. ein Double mit dem Wert 0, es gibt in LV keinen "leeren Draht". Desshalb musst du ggf. das Timeout Signal mit auswerten für den Fall "keine Daten vorhanden" ...