Bool Werte über Queues - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenkommunikation (/Forum-Datenkommunikation) +---- Thema: Bool Werte über Queues (/Thread-Bool-Werte-ueber-Queues) |
Bool Werte über Queues - maxil - 02.07.2019 07:52 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. RE: Bool Werte über Queues - jg - 02.07.2019 08:12 Schau dir mal das Producer/Consumer Design Pattern an: [attachment=60142] Gruß, Jens RE: Bool Werte über Queues - Sakis - 02.07.2019 08:25 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 RE: Bool Werte über Queues - maxil - 02.07.2019 08:35 Hallo Jens, das ist komisch, bei mir lässt er keine bool Werte (Ausgang) zu und gibt mir immer eine fehlerhafte Verbindung an RE: Bool Werte über Queues - jg - 02.07.2019 08:42 Das ist nicht komisch, wenn du deine Queue mit Daten-Typ Variant definierst und dann da auch noch einen String reinschreibst. [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. RE: Bool Werte über Queues - Sakis - 02.07.2019 08:44 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... RE: Bool Werte über Queues - maxil - 02.07.2019 08:46 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! RE: Bool Werte über Queues - maxil - 02.07.2019 09:07 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? RE: Bool Werte über Queues - Sakis - 02.07.2019 09:20 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? RE: Bool Werte über Queues - MarcoN - 02.07.2019 09:28 (02.07.2019 09:07 )maxil schrieb: So ich hoffe eine letzte Frage jetzt, 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. |