LabVIEWForum.de
Daten zwischen zwei while-Schleifen austauschen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Daten zwischen zwei while-Schleifen austauschen (/Thread-Daten-zwischen-zwei-while-Schleifen-austauschen)



Daten zwischen zwei while-Schleifen austauschen - freezer - 02.12.2008 23:16

Hallo,

ich habe in einem VI zwei while-Schleifen unabhängig voneinander parallel am laufen. Wie kann ich am besten von einer dieser Schleifen einen Wert (boolean) an die andere senden? Mit einem Notifier oder gibt es da irgendetwas besseres? Eine normale Verbindung funktioniert nicht.

Vielen Dank schonmal für die Hilfe!

Gruß
freezer


Daten zwischen zwei while-Schleifen austauschen - eg - 02.12.2008 23:27

Notifier ist schon mal gut. Variable (oder Property->Value) sind einfacher, haben aber bestimmte Nachteile (Race Conditions). Es gibt noch Queue, User Events, TCP (lokal) und noch ne Möglichkeit es mit Schieberegister und Timeout in einer Schleife zu machen.

Alles hat seine Vor- und Nachteile, da musst du dich damit auseinandersetzen und erkennen, was dir am besten passt.


Daten zwischen zwei while-Schleifen austauschen - freezer - 02.12.2008 23:46

Hallo,

danke für die schnelle Antwort. Da ich noch nicht so erfahren in LabVIEW bin, entschuldige bitte meine dummen Fragen:
- Wie erstelle ich denn eine Variable? Ich habe bis jetzt nur lokale Variablen gefunden und die sind immer an irgendein FP-Element gebunden. Wo finde ich Variablen, in welche ich beliebige Werte schreiben kann?
- Was meinst du mit "Property->Value"?

Die Race Conditions bekomme ich denke ich mal in den Griff.

Gruß
freezer


Daten zwischen zwei while-Schleifen austauschen - eg - 02.12.2008 23:55

Um beliebige Daten übertragen zu können musst du einen variablen Datentyp wählen (normalerweise):
String
Byte Array
Variant

Dabei musst du noch bei der Übertragung angeben um welchen Datentyp es sich handelt, damit der "Empfanger" diese daten entschlüsseln kann. Dazu sind Type Cast, Data To Variant oder Flatten To String oder ähnliches zu empfehlen.

Um sowas mit Variablen zu machen, kannst du z.B. einen zusätzlichen String-Control erstellen und dorthin das eingeflattene in der einen Schleife reinscheiben und in der anderen entpacken. Aber ich persöhnlich empfehle Queues, Notifiers oder User Events dazu.


Daten zwischen zwei while-Schleifen austauschen - freezer - 03.12.2008 00:08

Achso, danke. Dann habe ich dich wohl beim ersten mal falsch verstanden. Ich dachte, dass es ein Element "Variable" gibt, wie z.B. in Programmiersprachen "int a;" in welches ich einfach daten schreibe und die woanders abrufen kann. Ich denke, dass ich das mit einem Notifier machen werde.


Daten zwischen zwei while-Schleifen austauschen - eg - 03.12.2008 00:09

' schrieb:Die Race Conditions bekomme ich denke ich mal in den Griff.

Um Race Condisions in den Griff zu kriegen brauchst du noch ne Semaphore dazu. Einfacher ist es wirklich direkt mit der Synchronisationspalette zu arbeiten.


Daten zwischen zwei while-Schleifen austauschen - freezer - 03.12.2008 00:26

Puh, du, danke! Ich habe es mit nem Notifier wunderbar lösen können. Wenn ich nicht mehr so unter Zeitdruck stehe, werde ich mir das mal in Ruhe anschauen! Danke für die Hilfe!


Daten zwischen zwei while-Schleifen austauschen - eg - 08.12.2008 12:51

Habe gerade etwas passendes zum Thema veröffentlicht:
http://www.LabVIEWforum.de/Tasking-Library-t11433.html