Kommunikation zwischen MainVI und VIs in subpanel - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Kommunikation zwischen MainVI und VIs in subpanel (/Thread-Kommunikation-zwischen-MainVI-und-VIs-in-subpanel) Seiten: 1 2 |
Kommunikation zwischen MainVI und VIs in subpanel - freezer - 03.11.2008 10:51 Hallo, ich habe anhand des Beispiels Subpanel Viewer.vi eine Oberfläche erstellt, um dynamisch während der Laufzeit unterschiedliche VIs laden zu können. Wie kann ich nun zwischen dem Haupt-VI und dem Unter-VI Daten austauschen? Zum einen würde ich gerne einfache Variablen übergeben, zum anderen aber auch kontinuierliche Messdaten. Ist dies möglich? Und wenn ja, wie? Danke. Gruß freezer Kommunikation zwischen MainVI und VIs in subpanel - IchSelbst - 03.11.2008 18:34 ' schrieb:Wie kann ich nun zwischen dem Haupt-VI und dem Unter-VI Daten austauschen?Mit Queues/Meldern kann man zwischen beliebigen SubVIs Daten austauschen. Guckst du die entsprechenden Beispiele in der Hilfe. Ob einzelne Daten oder ganze Arrays, ob einmalig oder kontinuierlich, Queues/Melder gehen für alles. Wenn man die Queues noch auf ein Benutzerereignis gibt, kann man auch eventgesteuert reagieren. Hier ein unverbindliches Muster in. Kommunikation zwischen MainVI und VIs in subpanel - freezer - 07.11.2008 11:43 Hallo, vielen Dank für die Hilfe. Das mit den queues funktioniert super. Anbei habe ich mal ein kleines Beispiel für andere hilfesuchende Anfänger wie mich gepackt. Kommunikation zwischen MainVI und VIs in subpanel - jg - 07.11.2008 12:01 Da du scheinbar deine PN's nicht liest, möchte ich nochmals hier daran erinnern: Bitte nicht vergessen: LVF-Regeln lesen Immer LV-Version bei VI-Uploads angeben MfG, Jens Kommunikation zwischen MainVI und VIs in subpanel - freezer - 07.11.2008 12:11 Hi, tut mir leid. Die habe ich nicht gesehen. Werde ich das nächste mal besser machen, versprochen Ich habe noch eine weitere Frage: Wie kann ich ein array an eine queues übergeben. Hierbei bekomme ich es nicht hin den richtigen Datentyp anzugeben. Gruß freezer EDIT: Ich habe eine Lösung gefunden, weiß jedoch nicht ob sie optimal ist. Ich übergebe jeweils als Datentyp ein array mit einem leeren Element des gewünschten Datentyp als Inhalt. Kommunikation zwischen MainVI und VIs in subpanel - Achim - 07.11.2008 12:22 ' schrieb:Ich habe eine Lösung gefunden, weiß jedoch nicht ob sie optimal ist. Ich übergebe jeweils als Datentyp ein array mit einem leeren Element des gewünschten Datentyp als Inhalt. Bei "Optain Queue" musst du doch den Typ als Dummy angeben...und hier kannst du den gewünschten Typ mit einem beliebigen Inhalt (auch: leeres Array) anschließen, der Inhalt wird nicht ausgewertet. Erst bei "Enqueue Element" musst du den passenden Inhalt reinschreiben! Kommunikation zwischen MainVI und VIs in subpanel - freezer - 07.11.2008 12:41 Ok, danke. Also bei mir fordert er, dass ich die explizit den Datentyp des Arrays angebe, ist aber so auch ok. Meine Idee ist es die physikalischen Kanäle meiner DAQmx-Ansteuerung an die SubVIs zu übergeben. Da ich meine SubVIs jedoch dynamisch lade (Subpanel Viewer.vi), erhalte ich die Daten aus der queue nur im ersten geladenen Subpanel. Wie sollte ich sinnvollerweise die Daten so vorhalten, dass sie immer verfügbar sind? Gruß freezer Kommunikation zwischen MainVI und VIs in subpanel - Achim - 07.11.2008 12:51 ' schrieb:Ok, danke. Also bei mir fordert er, dass ich die explizit den Datentyp des Arrays angebe, ist aber so auch ok.Ich meinte natürlich ein leeres Array des gewünschten Typs, nicht eine leere "Array-Hülle" Kommunikation zwischen MainVI und VIs in subpanel - IchSelbst - 07.11.2008 13:26 ' schrieb:Meine Idee ist es die physikalischen Kanäle meiner DAQmx-Ansteuerung an die SubVIs zu übergeben. Da ich meine SubVIs jedoch dynamisch lade (Subpanel Viewer.vi), erhalte ich die Daten aus der queue nur im ersten geladenen Subpanel. Wie sollte ich sinnvollerweise die Daten so vorhalten, dass sie immer verfügbar sind?Wenn ich dich richtig verstanden habe, tritt folgendes Problem auf: Irgendwer schreibt EINMALIG in eine Queue "die physikalischen Kanäle meiner DAQmx-Ansteuerung". Dann geht per VI-Server ein SubVI auf, das die Queue ausliest. Damit stehen in der Queue keine Daten mehr drinnen. Das nächste per VI-Server aufgerufene SubVI kann dann die DAQmx-Kanäle nicht mehr auslesen. Meinst du das? Wenn ja, gibt es mehrere Lösungsmöglichkeiten: Einfachste Möglichkeit: Nimm statt einer Queue einen Melder. Im Melder steht immer nur ein Datensatz (siehe oben EINMALIG), der auch nach einem Lesen drinnenbleibt. Zweite Möglichkeit: Auch den SubVIs, die per VI-Server gestartet werden, kann man Daten in gewohnter Form übergeben, also quasi per Eingangsdraht. Dafür gibt es bestimmte VI-Server-Propertys. Dritte Möglichkeit: Pack die Daten in ein "funktionales SubVI": Ein solches SubVI hat die Funktion einer globalen Variablen. Kommunikation zwischen MainVI und VIs in subpanel - freezer - 07.11.2008 13:56 ' schrieb:Wenn ich dich richtig verstanden habe, tritt folgendes Problem auf:Genau das meine ich. Dann nutze ich wohl besser einen Melder. Dankeschön. |