LabVIEWForum.de - Öffnen eines VIs aus einem anderen Frontpanel

LabVIEWForum.de

Normale Version: Öffnen eines VIs aus einem anderen Frontpanel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hi,
du kriegst ja automatisch nen Fehler, wenn du mit nem anderen VI zugreifst...den kannst du auswerten! Allerdings geht das mit dem "aussetzen" nicht so einfach, du musst erst die laufende Erfassung stoppen und dann neu initialisieren!

Einfacher: Du baust die eine Art "Server-VI", das nur die Datenerfassung behandelt...und die erfassten Daten schreibst du mit diesem Server in globale Variablen (Functional globals) oder in Queues...und liest in den verschiedenen VI's nur diese Daten aus!

Gruß
Achim
habe ich auch schon überlegt aber mir ist das Timing sehr wichtig.
Ich lasse die zeitgesteuerten Schleifen unterschiedlich laufen, d. h. mit verschiedenen Perioden und Prioritäten.

Gruß Robin
Hi,

für was hast du zeitgesteuerte Schleifen? Doch hoffentlich nicht für die Abtastrate? Das kannste nämlich komplett in die Tonne treten! Der SW-Takt ist nicht genau!

Wenn du genaue Zeiten (= äquidistante Werte) haben willst, musst du das dem Treiber bzw. der Karte überlassen, nur der HW-Takt ist zuverlässig!

Gruß
Achim
Zitat:Wenn du genaue Zeiten (= äquidistante Werte) haben willst, musst du das dem Treiber bzw. der Karte überlassen, nur der HW-Takt ist zuverlässig!
Hi,

heißt das, dass sich der Treiber selbst einen geeigneten Takt sucht?
Oder kann ich den selbst bestimmen? Wenn ja, wie mache ich das?

Gruß
Robin
Hi,
ich weiß ja nicht wie deine Datenerfassung aussieht...aber egal ob die HW von NI ist oder von nem anderen Hersteller...du kannst da immer eine Abtastrate einstellen, und das ist dann der Takt!

Guck dir die entsprechenden Beispiele im LV Example Finder an...HW Input & Output...DAQmx...Analog Measurements

Gruß
Achim
Hallo,


ich greife mal diesen "betagten" Thread wieder auf, da mir die Beispiele von Achim ganz gut gefallen.

Ich habe also in meinem Hauptprogramm mehrere Buttons mit denen ich Unterprogramme auswählen kann. Wenn ein SubVI läuft, sollen einige nicht aufrufbar, andere hingegen schon. Das möchte ich realisieren, in dem ich die Controls des Hauptprgramms im Unterprogramm ausgraue. Wenn das Unterprogramm beendet wird, werden die Controls wieder sichtbar. Dazu nun zwei Fragen:

1. Ist das so sinnvoll oder gibt es auch noch eine andere Lösung?

2. In dem SubVI bekomme ich die Controls ja als Array von Refnums. Kann man die einzelnen Refnums den Controls irgendwie leicht zuordnen, oder muss ich immer ausprobieren, welcher Index des Arrays zu welchem Control passt?



Grüßle
S.

Lv85_img
' schrieb:1. Ist das so sinnvoll oder gibt es auch noch eine andere Lösung?
Mach ich auch immer so...es gibt aber sicher noch andere Möglichkeiten!

' schrieb:2. In dem SubVI bekomme ich die Controls ja als Array von Refnums. Kann man die einzelnen Refnums den Controls irgendwie leicht zuordnen, oder muss ich immer ausprobieren, welcher Index des Arrays zu welchem Control passt?
Grüßle
Häh?

Du kannst auf nem FP im Menü Edit>>Set tabbing order die Reihenfolge der Controls...und damit der Referenzen im [Controls]-Array sortieren...
' schrieb:Häh?

Du kannst auf nem FP im Menü Edit>>Set tabbing order die Reihenfolge der Controls...und damit der Referenzen im [Controls]-Array sortieren...

Ah, ok, super, das wusste ich nicht, das ist dann natürlich einfach!
>Hat mich auch interessiert, sehr gut. Mich würde interessieren, wie Deine Lösung aussehen würde, wenn die Anforderung folgendermaßen modifiziert würde:
>a) Bei geöffnetem SUB-VI soll am Hauptprogramm nichts mehr bedient werden dürfen. (Das Ereignis ist solange nicht beendet, solange das Sub-VI geöffnet ist)
>b) Bei Schließen des Sub-VIs sollen Werte aus dem Sub-Vi an des Hautprogramm übergeben werden.
>Bei direkten Aufruf des SUB-VIs aus dem Ereignis heraus hat man diese Eigenshaften quasi kostenlos, aber Dir wird wohl auch so eine elegante Möglichkeit einfallen, wie man das in Deinem Beispiel macht.

das würde mich auch sehr interessieren. vielleicht könnte das jemand machen, bitte :]
' schrieb:>a) Bei geöffnetem SUB-VI soll am Hauptprogramm nichts mehr bedient werden dürfen. (Das Ereignis ist solange nicht beendet, solange das Sub-VI geöffnet ist)
>b) Bei Schließen des Sub-VIs sollen Werte aus dem Sub-Vi an des Hautprogramm übergeben werden.
Habe mir die vorangehenden Besipiele im Thread übehaupt nicht angesehen, aber was Du möchtest, ist doch der einfache Nomalfall.
zu b:
Die normale Datenübergabe vom Sub-Vi zum Hauptprogamm ist doch beim Beenden das SubVI über der Ausgänge des Sub-Vi, indem dort Drähte angeschlossen werden. Gibt es da ein Problem?
zu a:
Wenn das Sub-VI aufgerufen wird, dann blockiert man alle anderen geöffenten VIs mit der Einstellung "modal" am SubVI (rechte Maustaste / Ikon rechts oben/VI-Eigenschaften)

Was übrigens bei dieser Gelegnenheit mit gemacht werden solle: Der Abbruch des SubVIs mit dem Kreuz rechts oben sollte verhindert werden. Oder das wird als Ereignis abgefangen und wie ein ordentlicher Stop behandelt.
Seiten: 1 2 3 4
Referenz-URLs