Kommunikation zwischen den While-Schleifen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Kommunikation zwischen den While-Schleifen (/Thread-Kommunikation-zwischen-den-While-Schleifen) |
Kommunikation zwischen den While-Schleifen - Honeygirl24 - 14.07.2010 11:31 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 Kommunikation zwischen den While-Schleifen - GerdW - 14.07.2010 11:39 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? Kommunikation zwischen den While-Schleifen - Honeygirl24 - 14.07.2010 11:46 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 Kommunikation zwischen den While-Schleifen - IchSelbst - 14.07.2010 11:49 ' 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. Kommunikation zwischen den While-Schleifen - Honeygirl24 - 14.07.2010 11:55 ' schrieb:Ich verwende keine TimedLoop-Whileschleifen. -> Wo soll ich hier die Namen geben??? lg Kommunikation zwischen den While-Schleifen - GerdW - 14.07.2010 11:56 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... Kommunikation zwischen den While-Schleifen - Honeygirl24 - 14.07.2010 12:36 Ich habe die Timed-While-loops durch normale ersetzt...jetzt gehts.. danke euch lg Kommunikation zwischen den While-Schleifen - eg - 14.07.2010 22:18 ' schrieb:Ich habe die Timed-While-loops durch normale ersetzt...jetzt gehts.. 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. |