LabVIEWForum.de - Bool Werte über Queues

LabVIEWForum.de

Normale Version: Bool Werte über Queues
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
Hallo zusammen,

ich möchte zum Datenaustausch zwischen zwei parallelen While-Schleifen, Queues verwenden, um die Abfrage von Buttons weiterzuleiten (reagieren sonst extrem verzögert).
Ich habe zwar eine Möglichkeit gefunden die Button über Case-Strukturen weiterzuleiten, jedoch weiß ich nicht genau, wie ich die Daten in der zweiten While-Schleife wieder
in einen Bool Wert ändere, damit eine weitere Case Struktur, eine Aufgabe ausführt (z.B. einschalten einer LED).

Über Anregungen oder Lösungen wäre ich euch dankbar.
Schau dir mal das Producer/Consumer Design Pattern an:

[attachment=60142]

Gruß, Jens
Hallo maxil,

ich würde das so lösen:

[attachment=60143]

Ich verstehe noch nicht, wieso du in die Queue schreiben kannst, aber nicht aus ihr lesen...

Gruß
Jens
Hallo Jens,

das ist komisch, bei mir lässt er keine bool Werte (Ausgang) zu und gibt mir immer eine fehlerhafte Verbindung an
Das ist nicht komisch, wenn du deine Queue mit Daten-Typ Variant definierst und dann da auch noch einen String reinschreibst.

Rtmfx
[attachment=60145]

Definiere die Queue mit Datentyp Boolean (so wie von Sakis vorgeschlagen), und gut ist.

Gruß, Jens

EDIT: Außerdem: THINK DATAFLOW!!! Du darfst nicht den Ausgang deines Stopp-Buttons von der einen Schleife in die andere weiterführen! So wird deine Consumer-Loop erst gestartet, wenn der Producer beendet ist. Flop
Hallo maxil,

jetzt verstehe ich dein Problem. Du musste bei "Queue anfordern" am Eingang "Elementdatentyp" einen Bool-Wert anlegen. Über den Elementdatentyp legst du fest, welchen Datentyp die Elemente haben, die du schreiben willst.
Dann kannst du dir auch den Umweg über die Strings sparen und direkt Bool-Werte speichern. String ist der Standard-Wert, sodass die Queue auch ohne "Elementdatentyp" Strings akzeptiert.

Gruß
Jens

EDIT: zu langsam... DryBig Grin
Entschuldigt wenn ich mich etwas doof anstelle, ich bin recht neu in labview und versuche mich hier durchzukämpfen
Hi Jens,

danke, das war mir nicht klar!
So ich hoffe eine letzte Frage jetzt,

ich habe gehofft, dass sich dadurch ein (annäherndes) realtime Verhalten ergibt, leider dauert es doch einige Zeit, bis die LED leuchtet.
Gibt es da irgendwelche Möglichkeiten es zu beschleunigen?
Hast du dem Hinweis von jg gelesen? Hast du den Stopp-Button jetzt richtig angeschlossen?

Gruß
Jens

EDIT: Außerdem, was genau macht das "Verzögerung" Express-VI?
(02.07.2019 09:07 )maxil schrieb: [ -> ]So ich hoffe eine letzte Frage jetzt,

ich habe gehofft, dass sich dadurch ein (annäherndes) realtime Verhalten ergibt, leider dauert es doch einige Zeit, bis die LED leuchtet.
Gibt es da irgendwelche Möglichkeiten es zu beschleunigen?

Pack am besten mal dein VI in den Anhang damit man sich das genau ansehen kann. Grundsätzlich kann man Aufbau mit einer Eventstruktur weniger ressourcenfressend aufbauen als mit einer dauernd abfragenden Casestruktur.
Seiten: 1 2 3 4 5 6
Referenz-URLs