Datenaustauch zwischen mehreren Sub Panel VIs - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenkommunikation (/Forum-Datenkommunikation) +---- Thema: Datenaustauch zwischen mehreren Sub Panel VIs (/Thread-Datenaustauch-zwischen-mehreren-Sub-Panel-VIs) Seiten: 1 2 |
Datenaustauch zwischen mehreren Sub Panel VIs - mBus - 18.12.2013 15:33 Hallo, ich bin ganz neu in der LabView Welt und habe eine kleine Frage bezüglich der Datenübergabe zwischen VIs innerhalb eines übergeordneten VI. Ich möchte innerhalb meines Haupt-VIs mehrere Unter-VIs zusammenführen, sodass man mittels Tabs zwischen diesen VI hin und herschalten kann. Hierfür habe ich Subpanel verwendet und zwar nach dieser Anleitung. Das Funktioniert soweit auch schon. Die Frage die sich mir nun stellt: Wie tausche ich Daten zwischen diesen VI aus? Am Ende soll das Programm folgendes leisten: 3 Tabs zwischen denen ich hin und herwechseln kann und in denen jeweils ein eigenes VI läuft Tab "Signalgenerator" Dieses VI erstellt ein Signal welches aus Schwingungen unterschiedlicher Frequenz besteht und stellt es zur Verfügung. Tab "Frequenzweiche" Dieses VI bekommt als Eingang ein beliebiges Signal (es soll das Signal des Generators verwendet werden) und teilt es in seine tief- mittel- und hochfrequenten Anteile auf. Es stellt diese 3 Signale zur Verfügung. Tab "Spektren" Dieser Tab soll die Amplitudenspektren von 3 Signalen anzeigen. Da dies mein erstes LabView Projekt ist bin ich mir auch nicht sicher, ob ich mit den subpanels auf dem richtigen Weg bin oder ob es vielleicht eine geeignetere Möglichkeit gibt mein Vorhaben zu realisieren. Ich bin also für Vorschläge offen. Vielen Dank! RE: Datenaustauch zwischen mehreren Sub Panel VIs - fani88 - 18.12.2013 16:03 Hi, warum benutzt du keine Registerkartenelement? Gruß, Steffanie Samy Moutia RE: Datenaustauch zwischen mehreren Sub Panel VIs - mBus - 18.12.2013 16:14 Ich verwende Classic > Container > Tab Control. Und in den einzelnen Tabs laufen dann die Subpanels. Ist das "Registerkartenelement" nicht das deutsche Äquivalent zur Tab Control? RE: Datenaustauch zwischen mehreren Sub Panel VIs - BNT - 18.12.2013 16:31 Hi Die Antwort lautet: Queue oder Notification. Sieh mal in den Beispielen nach. Gruß Holger RE: Datenaustauch zwischen mehreren Sub Panel VIs - mBus - 18.12.2013 16:45 Ich habe gerade ein kleines Beispiel mit "Globalen Variablen" gemacht und denke das wird damit gehen. Den Vorschlag mit der Queue und den Notifications werde ich mir auch nochmal ansehen. Dankesehr! RE: Datenaustauch zwischen mehreren Sub Panel VIs - Trinitatis - 18.12.2013 19:32 (18.12.2013 16:45 )mBus schrieb: Ich habe gerade ein kleines Beispiel mit "Globalen Variablen" gemacht und denke das wird damit gehen. Den Vorschlag mit der Queue und den Notifications werde ich mir auch nochmal ansehen. Dankesehr! Hallo mBus, glob. Var. haben den Nachteil, dass sie gepollt werden müssen und zudem die Gefahr von RaceConditions besteht. Außerdem hast du bei Queues den Vorteil, dass du bei der Messdatenauswertung "hinterherlaufen" kannst. Die Ansicht "...das wird gehen..." wird von vielen Anfängern vertreten, die sich dann irgendwann wundern, wenn die Applikationen größer werden und es nicht mehr so geht, wie am Anfang Gruß, Marko RE: Datenaustauch zwischen mehreren Sub Panel VIs - BNT - 18.12.2013 19:54 Hi Zur Klärung für die Anfänger: In LabVIEW gibt es keine Variablen! Es gibt nur den Datenfluss mit Datenquellen und Datensenken. Auch so genannte lokale, globale oder auch die funktionalen Variablen sind keine solchen. Macht Euch von dem Konzept Variable frei. Dann werdet ihr auch bessere und vor allem robustere Programme entwickeln. Gruß Holger RE: Datenaustauch zwischen mehreren Sub Panel VIs - wassersebastian - 23.04.2014 16:35 Hallo zusammen, es meldet sich ein weiterer Neuling zu Wort: Ich bin auf der Suche nach der Lösung für das (fast) gleiche Problem. Ich möchte also ebenfalls ein Haupt-VI bauen, in dem im Endeffekt nur pro Registerkarte ein Sub-VI Frontpanel angezeigt werden soll. Und zusätzlich wäre es wichtig, dass man zwischen den Sub-VIs (also den Informationen der einzelnen Registerkarten) Informationen austauschen kann. In meinem Fall geht es um die Synchrnisierung von einer Verfahreinrichtung und einer Messsoftware. Ist der Weg über die Subpanels der richtige für diese Problematik? Beste Grüße, Sebastian RE: Datenaustausch zwischen mehreren Sub Panel VIs - GerdW - 23.04.2014 20:33 Hallo Sebastian, Zitat:Ich möchte also ebenfalls ein Haupt-VI bauen, in dem im Endeffekt nur pro Registerkarte ein Sub-VI Frontpanel angezeigt werden soll. Und zusätzlich wäre es wichtig, dass man zwischen den Sub-VIs (also den Informationen der einzelnen Registerkarten) Informationen austauschen kann. In meinem Fall geht es um die Synchrnisierung von einer Verfahreinrichtung und einer Messsoftware.Leider kann man dazu keine umfassende Antwort geben, da man deine VIs nicht kennt… Solange deine SubPanel-VIs nur Daten anzeigen und entgegennehmen, kannst du sie sicherlich im Subpanel anzeigen. Wenn du aber in diesen VIs außerdem noch Gerätesteuerung und (evtl. zeitgenaue) Messwerterfassung unterbringen willst, würde ich dir davon abraten! Dagegen rate ich dir: - Überlege dir ein gutes Konzept für dein Programm. - LabVIEW kommt z.B. mit fertigen Vorlagen für Statemachines und das Producer-Consumer-Schema - die könnten für dich auch interessant sein! - Datenerfassung und Daten-Anzeige/-Verarbeitung müssen nicht im selben VI stattfinden: der Gerätezugriff könnte in Hintergrund durch andere subVIs erledigt werden, die parallel zu deinem HauptVI laufen. Im HauptVI findet nur die Anzeige der Messergebnisse statt… RE: Datenaustauch zwischen mehreren Sub Panel VIs - cb - 23.04.2014 21:32 Ein SubPanel in einem Register eines Tab-Controls ist meiner Meinung nach doppelt gemoppelt. Wenn man ein Tab-Controll verwendet dann kann man ja schon verschiedene Ansichten in einem VI realisieren, dann da nochmal extra ein anderes VI in einem SubPanel zu laden ist mMn zu viel des Guten ... Ich verwende eigentlich fast immer SubPanels in meinen Projekten und es gibt mehrere Möglichkeiten Daten zwischen unabhängig laufenden VIs auszutauschen: 1. Globale Variablen - wenn's wirklich nur um einfache Strukturen geht 2. Queues / Notifier: Die Queue Refnum speichere ich dann in einer FGV, die sich merkt ob der Queue gerade aktiv ist oder nicht. Damit kann ich dann von jedem anderen VI aus Daten zum Subpanel schicken wenn es aktiv ist 3. User-Event im SubPanel VI: das ist eigentlich das gleiche wie mit Queues, nur dass es anders heist. Beim erstellen des User-Events speichere ich die Refnum ebenfalls in einer FGV, die sich merkt ob das User Event aktiv ist oder nicht und damit kann ich dann ebenfalls von überall im Programm Daten an das SubPanel schicken ... viele Grüße cb |