LabVIEWForum.de - Frage zu Sub VI's

LabVIEWForum.de

Normale Version: Frage zu Sub VI's
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
G' Abend, ich habe eine Frage zu Sub-VI's. Ich habe innerhalb eines Sub-VI's zwei Buttons und möchte diese aus dem übergeordnete VI abfragen. So lange ich im übergeordneten VI bin kann ich das mit Hilfe der Event-Struktur machen. Das funktioniert aber nicht innerhalb eines Sub-VI's, da ich dann aus der Abfrage dort nicht mehr rauskomme. Kann mir da jemand einen Tipp geben? Vielen Dank im voraus.


lg Torsten
' schrieb:G' Abend, ich habe eine Frage zu Sub-VI's. Ich habe innerhalb eines Sub-VI's zwei Buttons und möchte diese aus dem übergeordnete VI abfragen. So lange ich im übergeordneten VI bin kann ich das mit Hilfe der Event-Struktur machen. Das funktioniert aber nicht innerhalb eines Sub-VI's, da ich dann aus der Abfrage dort nicht mehr rauskomme. Kann mir da jemand einen Tipp geben? Vielen Dank im voraus.
lg Torsten
Ehrlich gesagt verstehe ich nicht ganz was du machen möchtest. Hast du mal ein Beispiel das du hochladen kannst, oder Screenshots?
Das hatte ich befürchtest, ich versuche es noch einmal mit Hilfe des Main-VI's (siehe Anhang). Also wie man schön sehen kann ist mein Mainpanel mit Hilfe von "Rechtecken" in verschiedene Bereiche unterteilt. Jedes dieser "Rechtecke" ist im Prinzip ein Sub-VI. Ich möchte jetzt die Buttons, die in den jeweiligen Sub-VI's enthalten sind auf das Mausklickevent abfragen. Wenn ich alle Buttons in meinem Main-VI hätte würde ich das über die Eventstruktur machen. Aus dieser Eventstruktur komme ich aber nur heraus wenn auch ein Event statt findet soweit ich weiß. Wenn ich jetzt also diese Eventstrukturen in meine Sub-VI's einbaue und diese im Programmablauf aufgerufen werden, komme ich von dort aus nicht mehr zurück ohne dass ein Button geklickt wurde. Ist das verständlicher ausgedrückt?

lg Torsten
Ach, ich glaube ich habe die Lösung gefunden. Ich nehme eine Case - Struktur und verbinden sie mit dem entsprechenden Button. Dafür habe ich ein anderes Problem. In dem Fall "true" verbinde ich zu meinem K8055-Board. Wenn die Verbindung geklappt hat lasse ich eine Anzeige auf "true" setzen, allerdings wird sie beim Loslassen des Buttons gleich wieder auf "false" gesetzt. Muss ich denn in der Case-Anweisung "false" unbedingt etwas reinschreiben?


lg Torsten
Zitat:Also wie man schön sehen kann ist mein Mainpanel mit Hilfe von "Rechtecken" in verschiedene Bereiche unterteilt. Jedes dieser "Rechtecke" ist im Prinzip ein Sub-VI.
Das könnte man genau so machen: Die Eingabe- und Anzeige-Elemente befinden sich tatsächlich in einem SubVI, das dann per VI-Server in ein SubPanel im Hauptpanel ausgeführt wird. (Das FP des SubVIs erscheint ohne Windows-Rahmen in einem SubPanel des FP des HauptVIs.)
Anders wäre es, wenn als Folge eines Buttonklicks am FP des HauptVIs ein SubVI aufgerufen wird. Dann befinden sich die Anzeige- und Eingabe-Elemente tatsächlich im MainVI und das SubVI hat eigentlich nur ein BD.

Zitat:Ich möchte jetzt die Buttons, die in den jeweiligen Sub-VI's enthalten sind auf das Mausklickevent abfragen.
Das geht - ob die Buttons im MainVI oder im SubVI liegen - beidesmal mit Eventstrukturen.

Zitat:Wenn ich alle Buttons in meinem Main-VI hätte würde ich das über die Eventstruktur machen. Aus dieser Eventstruktur komme ich aber nur heraus wenn auch ein Event statt findet soweit ich weiß.
Die Eventstruktur kennt einen speziellen Event: den Timeout. Wenn man den aktiviert, "beendet" sich die Eventstruktur nach dieser Zeit automatisch. Das Ende der Eventstruktur ist also nicht zwangsweise an ein Event durch einen OnClick gebunden. Durch programatische Maßnahmen (z.B. While-Schleife) kann man es machen, dass die Eventstruktur ständig gemacht wird und somit trotz Timeout auch die OnClicks bearbeitet werden.

Zitat:Wenn ich jetzt also diese Eventstrukturen in meine Sub-VI's einbaue und diese im Programmablauf aufgerufen werden, komme ich von dort aus nicht mehr zurück ohne dass ein Button geklickt wurde.
Siehe Timeout-Event.
Hinweis:
Ist ein SubVI in einen Datenfluss eingebunden, so bleibt das aufrufende VI selbstverständlich solange stehen, bis das SubVI beendet ist. Das ist bei Datenfluß so. Will man aber haben, dass MainVI und SubVI gleichzeit (und unabhängig) ausgeführt werden, so platziert man das SubVI im MainVI außerhalb jeden Datenflusses oder man führt es per VI-Server aus.



Zitat:Ich nehme eine Case - Struktur und verbinden sie mit dem entsprechenden Button.
So geht das natürlich auch.

Zitat:Wenn die Verbindung geklappt hat lasse ich eine Anzeige auf "true" setzen, allerdings wird sie beim Loslassen des Buttons gleich wieder auf "false" gesetzt. Muss ich denn in der Case-Anweisung "false" unbedingt etwas reinschreiben?
Nein, müssen tut man nicht.
Referenz-URLs