INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Modularer Aufbau eines größeren LabVIEW Programms - Kommunikation zw. Programmteilen



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!

18.06.2015, 13:05
Beitrag #1

n4f3ts Offline
LVF-User
*


Beiträge: 30
Registriert seit: May 2014

LabVIEW 2014, 2015
2014
DE


Deutschland
Modularer Aufbau eines größeren LabVIEW Programms - Kommunikation zw. Programmteilen
Hallo liebe LabVIEW Community!

Zurzeit entwickele ich mittels LabVIEW ein (für mich) größeres Programm zur Steuerung eines Prüfstands.
Im Prinzip kann man mein Programm in 4 Programmteile zerlegen:
1. Steuerung und Auswertung Gerät 1
2. Steuerung und Auswertung Gerät 2
3. Steuerung und Auswertung Gerät 3
4. Kommunikation zwischen den einzelnen Geräten

Momentan habe ich all diese Funktionen in einem LabVIEW Programm untergebracht (das heißt nicht, dass es keine SubVIs gibt :-)). Das Problem ist, dass es mittlerweile recht unübersichtlich wird (auf dem Blockdiagramm sowie auf dem Frontpanel) und mein Wunsch wäre es das ganze wie oben dargestellt zu splitten. Ich stelle mir sozusagen 3 "Standalone" Programme vor mit eigenem Subpanel (zur Steuerung der drei Geräte) die über ein 4. Programm aufgerufen werden. Des weitern soll das 4. Programm den Datenaustausch zwischen den Geräten übernehmen. Ein weiterer Vorteil bei dieser Vorgehensweise wäre aus meiner Sicht der leichtere austausch oder Erweiterung einzelner Komponenten ohne bestehende Programmteile zu beeinflussen.

Ich habe mal ein kleines Beispielprojekt erstellt, das die Problematik veranschaulichen soll. In diesem Beispielprojekt habe ich ein Hauptprogramm (Main.VI im Ordner LV_Source) welches die beiden Unterprogramme "Addieren/Subtrahieren" sowie "Multiplizieren/Dividieren" aufruft. Die Kommunikation zwischen den Programmen wollte ich mit einer Queue realisieren wobei sich hier schon das erste Problem zeigt, ich müsste dann für jedes Unterprogramm eine eigene "Communication Queue" erstellen oder gibt es da eine elegantere Lösung?
Jedes der vier Programme baut auf einer ereignisgesteuerten State Machine auf (wie auch in meinem Beispielprojekt). Nun muss ich auch über das 4. Programm also das Hauptprogramm Ereignisse in den Unterprogrammen 1-3 auslösen (z.B. für automatisierte Steuerungsabläufe, die auf Rückmeldungen bestimmter Programmteile warten). Wie kann ich das am besten realisieren? Ich dachte an Benutzerereignisse die dann im Hauptprogramm erstellt werden und an die 3 Unterprogramme mittels Queue übergeben werden.

Zu den bereits gestellten Fragen wäre ich sehr dankbar wenn die Profis hier im Forum mir Rückmeldung geben könnten, ob dieser Aufbau generell was taugt oder ob es hier wesentlich bessere Vorgehensweisen gibt.


P.S. Ich weiß nicht ob dieser Beitrag an der richtigen Stelle im Forum steht, wenn nicht bitte entsprechend verschieben. Danke!

Gruß
Stefan


Angehängte Datei(en)
0.0 .zip  ModularerAufbau_test.zip (Größe: 150,17 KB / Downloads: 411)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
Modularer Aufbau eines größeren LabVIEW Programms - Kommunikation zw. Programmteilen - n4f3ts - 18.06.2015 13:05

Gehe zu: