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!
Ich bin leider schon wieder auf ein Problem gestoßen für das ich keine Lösung finde. Es geht um folgendes:
Ich habe ein Puffer-VI, welches einzelne XY-Wertepaare zwischenspeichert und so ein 1D-Array von Wertepaaren ausgibt, welche per XY-Graph dargestellt werden. Wenn n Kanäle dargestellt werden sollen, so wird dieses Puffer-VI als ablaufinvariant gekennzeichnet und eben n-mal parallel ausgeführt und die n Wertepaararrays an den Graphen übergeben. So weit klappts noch.
Jetzt ist es so, dass n (durch Benutzereinwirkung) variabel sein soll, d.h. der Benutzer konfiguriert sich mal drei, mal zehn Kanäle zusammen usw. Jetzt finde ich nur irgendwie keine Möglichkeit, dieses Puffer-VI n-mal aufzurufen ohne den Quellcode ändern zu müßen. Ich habs mit einer FOR-Schleife versucht, jedoch wird dabei mit jedem Durchgang dieselbe Instanz aufgerufen.
' schrieb:Ich habe ein Puffer-VI, welches einzelne XY-Wertepaare zwischenspeichert und so ein 1D-Array von Wertepaaren ausgibt, welche per XY-Graph dargestellt werden.
Du könntest auch folgendes machen: Du kannst auch eine FGV machen mit einem 2D-Array (of 1D-Arr of XY). Die Anzahl der Indices der zweiten Dimension ist dann die Anzahl der Kanäle.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
30.11.2009, 19:16 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2009 19:16 von Lucki.)
' schrieb:Ich habs mit einer FOR-Schleife versucht, jedoch wird dabei mit jedem Durchgang dieselbe Instanz aufgerufen.
Wie könnte man da rangehen?
Ja, eine neue Instanz wird in der for-Schleife nur dann aufgerufen, wenn bei jedem Durchgang ein neues Ikon aufgerufen wird. Und das ist ganz einfach zu erreichen. In die For-Schleife machst Du einen Case rein. Den Selektor schließt Du in den Index i der For-Schleife an. Alle Cases sind identisch und enthalten das Ikon um das es hier geht. Die Anzahl der identischen Cases muß matürlich der höchsten vorkommenden Kanalzahl entsprechen.
Aber Achtung, das ist natürlich nicht ohne..., mit diesem reentrant VI kannst du nicht mehr "per Datenleitung" kommunizieren, nur über FGVs, globale Variablen, Queues oder Melder. Und irgendwie solltest du so ein VI auch beenden können, nicht dass es ewig im Speicher bleibt.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Sehr gut, jetzt klappts so wie ich mir das vorstelle. Vielen Dank!
Kann man jetzt denn auch noch die Frontpanels der einzelnen Instanzen öffnen/schließen? Wie kann ich mich in einem Methodenknoten auf eine bestimmte Instanz beziehen?
' schrieb:Sehr gut, jetzt klappts so wie ich mir das vorstelle. Vielen Dank!
Kann man jetzt denn auch noch die Frontpanels der einzelnen Instanzen öffnen/schließen?
Ja klar. Am einfachsten, du merkst dir in einem Array die Referenzen zu allen geöffneten VIs. Oder du musst mit (fast) derselben Methode, wie beim dynamischen Starten dir einen neue VI-Referenz erzeugen. Beim Namen des VI musst du dann ein :1, :2, :3, usw anfügen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!