Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Da man bei einemSubPanel-Vi nichts über die Anshlüsse übergeben kann, habe ich die Event-Referenz global übergeben. Da geht es, aber es ist noch krampfiger als es so schon ist.
(04.07.2013 18:51 )Lucki schrieb: Da man bei einemSubPanel-Vi nichts über die Anshlüsse übergeben kann, habe ich die Event-Referenz global übergeben. Da geht es, aber es ist noch krampfiger als es so schon ist.
Kann man nicht über die Methode Elementwert festlegen Eingangswerte des Sub-VIs beschreiben? Warum sollte es ein Problem darstellen, dass das über die VI-Referenz geöffnete VI später in ein SubPanel eingelinkt wird?
Gruß, marko
04.07.2013, 19:14 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2013 19:15 von Lucki.)
Zitat:Kann man nicht über die Methode Elementwert festlegen Eingangswerte des Sub-VIs beschreiben? Warum sollte es ein Problem darstellen, dass das über die VI-Referenz geöffnete VI später in ein SubPanel eingelinkt wird?
Genau das war auch mein erster Gedanke, und nach meiner Meinung nach müsste das ganz genau so gehen wie mit der globalen Variablen - nur mit dem Vorteil, dass man dann nicht drei VIs hätte posten müssen. Komisch nur: Damit funktionierts nichts, mit der globalen Variablen funktionierts. Keine Ahnung warum.
Gruß Ludwig
Du kannst das SubVI einfach normal aufrufen und eine statische VI Referenz verwenden um das SubPanel zu laden. Dann muss man auch keinen Zauber mit der "Set Control" Methode oder globalen Variablen machen. Anbei das Beispiel von Lucki entsprechend geändert und gleich noch nen Exit Event das auch alles sauber zu geht wenn man Stop drückt.
Die Methode mit der statischen VI Referenz das SubPanel zu laden war mir auch neu. Kann ich den SubVI Aufruf mit Parameter Übergabe dann sozusagen als Initialisierung der SubVI verstehen? Vermutlich kann ich das SubVI so später nicht nochmal aufrufen um weitere bzw. neue Parameter zu übergeben da es ja bereits im Speicher liegt oder?
nochmal aufrufen kannst du es nicht, es sei denn du schmeist es vorher wieder aus dem Speicher. Du kannst aber zur Laufzeit neue Werte vergeben - am besten über Melder oder Queues, ggf. auch über globale Variablen, auf die du aber pollen müsstest.
Bei mir gehts nämlich darum nen Graphen mit paar Controls und Eventbehandlung den ich recht verallgemeinert habe nun in spezifischeren Modulen wieder zu verwenden. Bei Änderung an der allgemeinen Graphen UI möchte ich diese Änderungen auch gerne automatisch in allen spezifischeren UIs und denke mal dass das Einbinden als SubPanel ist hier die praktikabelste Lösung oder? Mir stellte sich daher eben auch die Frage wie ich bei dieser Herangehensweise bestmöglich zwischen MainVI und SubVI kommunizieren kann.
Falls jemand noch bessere Lösungsvorschläge für diesen Problemfall hat..immer her damit!
Okay danke, Queues hätten gegenüber den Meldern jetzt den Vorteil dass keine Daten verloren gehen können oder was sollte hier das Entscheidungskriterium sein?
Wenn du an einen Empfänger eine Nachricht sendest, weißt du ggf. nicht, wie lange dieser braucht, um die Nachricht zu verarbeiten.
Bei Queues kann dem Sender das egal sein, da der Empfänger sie nacheinander abarbeiten kann. Trotzdem hast du noch die Möglichkeit, eine Nachricht zu Beginn der Queue einzufügen, z.B. für hochpriorisierte Meldungen wie NotAus.