LabVIEWForum.de
Problem bei Komunikation zwischen vi's - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Problem bei Komunikation zwischen vi's (/Thread-Problem-bei-Komunikation-zwischen-vi-s)



Problem bei Komunikation zwischen vi's - FreddyK88 - 07.03.2016 18:53

Hallo ich habe ein Problem Construction

Ich bin leider zurzeit etwas am hängen!
Ich programmiere grade an John Conways Game of Life.
Hierbei habe ich das Problem, dass ich Daten aus einem meiner Sub.vi's
in meinem main.vi anzeigen möchte, jedoch sind bislang alle meine
Bemühungen einer Datenübertragung gescheitert.

Wäre lieb wenn mir da jemand helfen könnte.

Ich nutze LabVIEW 2015
Anbei sind die 2 entscheidenden Codesegmente als Screenshots.

Mit freundlichen Grüßen
Frederic


RE: Problem bei Komunikation zwischen vi's - jg - 07.03.2016 19:05

THINK Dataflow! Wenn du etwas immer wieder aktualisieren willst, dann innerhalb einer Schleife und nicht daneben. So wird es nur 1x ausgeführt.

Gruß, Jens


RE: Problem bei Komunikation zwischen vi's - GerdW - 07.03.2016 19:06

Hallo Frederic,

herzlich willkommen im Forum!

Zur Frage:
Lösung: THINK DATAFLOW! Big Grin (Jens war schneller…)
Das solltest du nach mehr als 4 Jahren LabVIEW-Nutzung eigentlich kennen…


RE: Problem bei Komunikation zwischen vi's - FreddyK88 - 07.03.2016 19:26

hmmm,

danke erst einmal für die schnellen Kommentare Wink
Ich hab's grad mit Think Dataflow versucht Ergebnis klappt auch net Wink

Mein Problem ist wie folgt ich hänge bis das Sub.vi abgeschlossen ist vor meiner
While-Schleife der Main Funktion und ich möchte die Daten auch nur exakt solange
anzeigen wie die Mainloop noch nicht läuft.

Ganz liebe Grüße
Frederic

PS danke für das Willkommen heißen =)


RE: Problem bei Komunikation zwischen vi's - GerdW - 07.03.2016 19:40

Hallo Frederic,

dann solltest du dir eine vernünftige Programmstruktur überlegen!
Eine Statemachine könnte man nutzen, um verschiedene Zustände in deinem Programm abzuarbeiten…

Quick&dirty: Daten per globaler Variable vom subVI zum mainVI schicken, dort die Anzeige aber in einer Schleife erneuern (THINK DATAFLOW!).
Quick&auch dirty: eine Referenz der Anzeige im mainVI zum subVI mitgeben, die Anzeige von dort aktualisieren.
Besser: einen Notifier zum Datenaustausch nehmen.
Am besten: das subVI nicht blockierend (d.h. ohne eigene Schleife) im mainVI aufrufen, am besten in einer Statemachine.
Außerdem: musst du wirklich Maus und Tastatur auf diese Art abfragen (pollen)? Würde sich nicht eine Eventstruktur anbieten, die auf entsprechende Events reagiert?

Zitat:ich hab's grad mit Think Dataflow versucht Ergebnis klappt auch net
Ist halt immer blöd, wenn jemand "klappt nicht" sagt: das ist keine LabVIEW-Fehlermeldung… Big Grin
Und wenn dann nicht mal ein Bild des Versuchs angehängt wird, kann man auch nichts kommentieren!


RE: Problem bei Komunikation zwischen vi's - FreddyK88 - 07.03.2016 19:55

Danke Gerd für die Ideen =)

Anbei findest du den Screenshot vom Testversuch es wird dann genau 1x aktualisiert wenn das Sub.vi fertig ist.
Das hat der Ansatz den ich zuvor genutzt habe auch getan also quasi ein Nullsummenspiel.

Werde gleich mal Versuchen deine Ansätze umzusetzen.

Beste Grüße aus dem Süden
Frederic
Hallo Gerd,

quick & dirty funktioniert schon mal...
werde mich dann nachher mal mit deinen anderen Umsetzungsideen auseinander setzen.

Danke=)

Frederic


RE: Problem bei Komunikation zwischen vi's - GerdW - 07.03.2016 20:09

Hallo Frederic,

Zitat:Anbei findest du den Screenshot vom Testversuch es wird dann genau 1x aktualisiert wenn das Sub.vi fertig ist.
Die Lösung lautet schon wieder: THINK DATAFLOW!

Die While-Loop kann erst ausgeführt werden, wenn das subVI davor beendet wurde.
Wie schon mehrfach gesagt: THINK DATAFLOW, das elementare LabVIEW-Mantra! Big Grin


RE: Problem bei Komunikation zwischen vi's - Freddy - 08.03.2016 08:30

Hallo Frederic,
es gibt viele Möglichkeiten (alle hier schon beschrieben).
Zum Einstieg würde ich die Referenz der Anzeige an das Sub VI übergeben und das Sub VI soll die Daten füllen.
Gruß
Freddy