LabVIEWForum.de
Kommunikation zwischen VIs? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Kommunikation zwischen VIs? (/Thread-Kommunikation-zwischen-VIs)



Kommunikation zwischen VIs? - qf_ - 24.11.2009 18:24

Hallo allerseits,

ich arbeite gerade am Design meines ersten 'großen' LV-Projekts: eine Steuerzentrale für ein komplexes Experiment, mit vielen Untersystemen, welche eben alle zentral kontrolliert und angesteuert werden sollen.

Es existiert ein Zentral-VI mit Statusmaschine von welchem aus Modul-VIs geladen werden. Diese Modul-VIs werden zur Laufzeit aus einem Ordner gefischt, angestartet und über ein Unterpanel, wahlweise, angezeigt (laufen aber auch weiter, wenn sie nicht angezeigt werden).
Die Modul-VIs arbeiten hauptsächlich autark, öffnen exklusive Resourcen und kümmern sich um diese - ein paar mehr Probleme bereiten mir die Resourcen, welche sich mehrere Module teilen müssen - dies gedenke ich komplett über das Zentral-VI, als Verwalter, zu realisieren. Dem zugrunde muss ein gute Möglichkeit zur Kommunikation zwischen den VIs liegen... und da bin ich mir nicht sicher, wie dies optimal zu realisieren ist:

Ein denkbarer Ansatz wäre ein Eingabeelement, 'Melder', in jedem Modul-VI, den ich vom Haupt-VI aus mit Daten versorge und diese dann dementsprechend im jeweiligen Modul-VI auswerte - der Rückkanal wird analog dazu aufgebaut.

Lieber allerdings würde ich mit Eventstrukturen arbeiten - aber sehe nicht wie/ob das möglich ist.

Habt Ihr Ideen/Anregungen?

Grüße
Sascha


Kommunikation zwischen VIs? - Y-P - 25.11.2009 18:33

Bahn
Wenn es so ist, wie ich verstanden habe, dann hört sich das so an, als ob eine "(eventgesteuerte) Producer-Consumer-Loop" das ist, was Du suchst.

Gruß Markus


Kommunikation zwischen VIs? - qf_ - 25.11.2009 20:58

hmm, dann versuche ich das mal zu klären...

Einen Producer-Consumer-Loop habe ich schon, aufgebaut aus Queues - dieser sitzt in meinem Haupt-VI. Nun wöllte ich aber auch andere VIs an diesem Datenverkehr teilhaben lassen.

z.B. habe ich ein Modul-VI für das gesamte Vakuumsystem, es wird einzig das Haupt-VI gestartet, welches dann (u.A.) das Modul-VI für das Vakuumsystem anstartet. Das Frontpanel des Vakuum-Modul-VIs kann wahlweise in einem Subpanel des Haupt-VIs angezeigt werden, um gewisse Aktionen (Vakuumpumpen schalten, Ventile ansteuern, ...) auszuführen oder um sich Messwerte anzuschauen - nun soll dieses Modul-VI allerdings auch Meldungen wie z.B. 'Achtung - gleich geht was inne Dutten' an das Haupt-VI senden können, damit sich dieses dementsprechend darum kümmern kann...

Weiterhin soll auch ein Ablauf wie folgt implementiert werden: Haupt-VI sendet 'schließe-dich'-Befehl an Modul-VI, Modul-VI räumt hinter sich auf und meldet dem Haupt-VI 'bin fertig'...

ist mein Problem etwas klarer geworden?


Kommunikation zwischen VIs? - Y-P - 26.11.2009 08:41

Hier ein Bsp. von NI, so wie ich es gemeint hatte. Da sind auch andere VIs miteingebunden. Und wenn Du zwischen VIs kommunizieren möchtest, also z.B. Werte von einem SubVI zur Laufzeit im HauptVI anzeigen zu lassen, dann brauchst Du Referenzen.

[attachment=22814]

Gruß Markus