LabVIEWForum.de - Allgemeine Fragen zur Programmgestaltung

LabVIEWForum.de

Normale Version: Allgemeine Fragen zur Programmgestaltung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich erstelle zur Zeit ein VI, welches sehr viele verschiedenen Eingabeparameter aufweist. Dies macht im Blockdiagramm alles ziemlich unübersichtlich und da wollte ich um eure Hilfe bitten. Wie kann ein solches VI sinnvoll aufgebaut werden?

Es existieren ca. 100 Eingabeparameter (Boolsche Werte und numerische Werte). Daraus werden 17 Boolsche Ausgabeparameter und 1 numerischer Ausgabeparameter bestimmt. Ich habe mir das ganze so vorgestellt, dass ich im Blockdiagramm ALLE Eingabeparameter zu einem großen Cluster bündele. Dieser Cluster dient dann als Eingang für verschiedene SubVIs, in welchen die einzelnen Ausgabeparameter bestimmmt werden (=Ausgang der SubVIs).

Die erste Frage ist, ob dies so sinnvoll ist.
Die zweite ist schon konkreter: Ist es möglich in den besagten SubVIs einen Eingang zu definieren (Cluster), der auch funktioniert, wenn sich der Eingabecluster noch verändert (es können noch Paramter wegfallen bzw. dazukommen). Im SubVI selbst zieh ich dann die benötigten Informationen per "unbundle by name" aus dem Cluster.

Momentan erstelle ich den "Eingang" der SubVIs so: Anzeigeelement des Clusters im HauptVI erstellen, in Bedienelement umwandeln, ausschneiden, im SubVI einfügen und als Eingang definieren. Dann funktioniert das ganze aber nicht mehr, wenn sich der Ausgangscluster nochmal verändert... Geht das vll mit einer Referenz oder so?

Ok der Text ist jetzt viel zu lang geworden, ich hoffe es liest sich überhaupt jemand durch... Wenn ja, schonmal vielen Dank!

LG Blondchen.
' schrieb:Ich habe mir das ganze so vorgestellt, dass ich im Blockdiagramm ALLE Eingabeparameter zu einem großen Cluster bündele. Dieser Cluster dient dann als Eingang für verschiedene SubVIs,
Kann man so machen.
Es gibt noch eine andere Möglichkeit: Man kann die Daten selbst in ein SubVI legen. Innerhalb dieses SubVI befindet sich eine While-Schleife mit Schieberegister/n. In diesem Schieberegister liegen alle Daten (ob alle in einem Cluster oder ein Datum pro Schieberegister ist prinzipiell egal). Das SubVI hat einen Enumerator-Eingang als Funktionsauswahl für z.B. Daten Resetten, Lesen, Schreiben, etc. etc. Ein solches SubVI hat zumindest einen Vorteil: man spart sich lange Wire.

Zitat:Die erste Frage ist, ob dies so sinnvoll ist.
Das Zusammenfassem von Daten in einem Cluster ist auf jeden Fall sinnvoll.

Zitat:Ist es möglich in den besagten SubVIs einen Eingang zu definieren (Cluster), der auch funktioniert, wenn sich der Eingabecluster noch verändert (es können noch Paramter wegfallen bzw. dazukommen).
Klar: Mach den Cluster als strikte Typdefinition.
Wenn du die Typdefintion selbst änderst, ändern sich automatisch alle Instanzen - also die aus der Typdefinition angelegten Bedien- und Anzeigeelemente wie auch die Konstanten.

Zitat:Momentan erstelle ich den "Eingang" der SubVIs so:
Dieses Verfahren alleine führt zu Problemen.
Nimm ein bestehendes Element, geht im Kontextmenü auf Fortgeschritten->Anpassen und mach eine strikte Typdefinition. Danach kannst du so vorgehen wie bisher.
Hallo,

ich darf dich hierzu einfach mal auf eine ähnliche Diskussion von mir erfragt verweisen: http://www.LabVIEWforum.de/index.php?showtopic=9445&hl=

Im Prinzip würde ich (habe ich) das so lösen (gelöst):

- Verwende nich nur einen Cluster, sondern Cluster aus Cluster. Dann wird deine Variablenstruktur übersichtlicher.
- Du kannst die Elemente der Cluster ja beliebig anordnen, sodass du auch in GUI direkt die Cluster verwenden kann, ohne auf ein übersichtliches Panel zu verzichten
- Speichere den Cluster als typendefiniertes Bedienelement. Wenn du diesen auch in den SubVis verwendest, kannst du ohne Probleme neue Elemente hinzufügen.

Grüße
Danke ihr habt mir sehr geholfen!

Lg Blondie
Referenz-URLs