LabVIEWForum.de - Kommunikation zwischen den While-Schleifen

LabVIEWForum.de

Normale Version: Kommunikation zwischen den While-Schleifen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

habe wieder mal folgendes Problem.
Mein Programm ist folgendermaßen aufgebaut:

Ich initialisiere 5 Queues.
Eine Eventsturktur (Master) ist für die Steuerung der Bedienelemente gedacht. Im Timeout lese notwendige Daten für die Visualisuerung und Datenverwaltung.
Es laufen dazu 4 weitere While-Schliefen (Timed-Loop) (Slaves)...Die Kommunikation zwischen den und in den Schleifen erfolgt über die generierten Queues und funktionale globale Variablen.
Nur wenn ich den Test starte führt er nicht alle Whileschleifen aus. Sie blockieren sich also gegenseitig. Die Befehle von Master wie z.B. Programm stopppen werden nicht immer von den Unterschleifen registriert.
Vielleicht kann einer von euch mir weiterhelfen...da ich im moment wirklich am verzweifeln bin.

Im Anhang habe ich zwei Bilder zur Veranschaulichung.

lg
honey
Hallo Honey,

im ersten Bild sehe ich keine Queues.
Im zweiten sieht man nur einen Dequeue-Befehl ohne Timeout.
Man sieht nicht, wo in die Queue geschrieben wird.

Warum verwendest du keine "Named Queues"? Also eine Namen für die jeweilige Queue? Das würde dir eine FGV ersparen...

Kannst du nicht ein VI anhängen?
Hallo Gerd,

kann leider kein VI hochladen....
Ich füge am besten Bilder bei, wo die Queues beschrieben werden, beispielsweise beim Stopp-Befehl vom Master (Eventstruktur)

lg
' schrieb:Es laufen dazu 4 weitere While-Schliefen (Timed-Loop)
Ich verwende keine TimedLoop-Whileschleifen.

Mach dich mal schlau, ob sich diese Schleifen - auch über SubVIs hinweg - nicht synchronisieren. Immerhin hast du bei allen den selben Namen angegeben - nämlich keinen.
' schrieb:Ich verwende keine TimedLoop-Whileschleifen.




Mach dich mal schlau, ob sich diese Schleifen - auch über SubVIs hinweg - nicht synchronisieren.

-> Wie meinst du das?? Gibt es in dem Fall Synchronisationsprobleme?


Immerhin hast du bei allen den selben Namen angegeben - nämlich keinen.

-> Wo soll ich hier die Namen geben???


lg
Hallo Honey,

im linken Bild sehe ich immer noch keine Queues...
Man kann so nicht prüfen, ob du die korrekten Queue-Referenzen aus deiner FGV liest, ob du die Queue korrekt anlegst und zerstörst, ob du ... Da gibt's sicher genug Fehlerquellen, die man anhand von einigen Bildern nicht überprüfen kann...

@IchSelbst:
Kein Name <> gleicher Name!
LabVIEW legt für jede TWL einen eigenen Namen an. Man kann aber auch einen eigenen vorgeben, so man will. Und wenn man mehrere TWLs später synchronisieren will, braucht man die Namen der TWLs.

@Honey:
Du musst keine Namen vorgeben...
Ich habe die Timed-While-loops durch normale ersetzt...jetzt gehts..

danke euch


lg
' schrieb:Ich habe die Timed-While-loops durch normale ersetzt...jetzt gehts..

danke euch
lg


Hi Honeygirl24!

Deine Struktur sieht ja ganz gut aus. Nur ist diese noch nicht sauber umgesetzt, aber schön. Mir fehlt eine parallele Schleife, die für die Anzeige aufm GUI zuständig ist.
Falls es dich interessieren sollte, im Anhang findest du eine ähnliche Struktur, die ich normalerweise verwende. Links befinden sich die noch nicht programmierte Controls/Indikatoren, also einfach ignorieren.
Referenz-URLs