LabVIEWForum.de
Eigenschaftsknoten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eigenschaftsknoten (/Thread-Eigenschaftsknoten--12276)



Eigenschaftsknoten - Mave - 12.06.2007 08:49

Hallo Zusammen,

ich habe hier mal ein echtes "bloody beginner" Problem. Ich hoffe, ihr könntet mit dennoch helfen, obwohls es für einen alten Hasen keine Herausforderung ist.

Ich habe in meiner Applikation jede Menge Anzeige- und Bedienelemente zu initalisieren. Dieses realisiere ich mit den jeweiligen Eigenschaftsknoten. Aus dem VI selbst heraus stellt dieses auch kein Problem dar. Jedoch möchte ich wegen der Übersichtlichkeit ein eigenes SubVi erstellen, in der diese Initalisierungen vorgenommen werden.

Ich weiß zwar, dass ich jetzt die Eigenschaftsknoten irgendwie über eine Refernz ansprechen muß, aber dass habe ich bis jetzt nicht auf die Reihe bekommen. Mit der LV-Hilfe bin ich auch nicht richtig weiter gekommen "zu viel Fachchinesisch"<_< .

Könnte es mir jemand einfach erklären?

Gruß
Mave


Eigenschaftsknoten - Lucki - 12.06.2007 09:08

Wenn es aus dem VI heraus kein Problem ist, dann ist die Erstellung eines Sub.VIs mit Referenzen auch kein Problem: Einfach den (im Haupt-VI erstellten) Code auswählen, dann Hauptmenü/Bearbeiten/Sub-VI erstellen anklicken. Da kannst Du auch studieren, wie es gemacht wird, um dann künftig solche SUB-VIs auch direkt erstellen zu können.

Ich selbst mache es allerdings eher so: Das Grundgerüst eines Haupt-VIs besteht aus einer gestapelten Sequenz: Sequenz 0: Initialisierungen, Sequenz 1: Hauptausführungs-Schleife, Sequenz 2: Schließen von Tasks etc.
Das ist nach meinem Dafürhalten mindetens genau so übersichtlich wie die Verwendung von Sub-Vis für die Initialisierung.


Eigenschaftsknoten - Mave - 12.06.2007 09:24

Vielen Dank Lucki für deine schnelle Antwort. Rolleyes

Nach dieser Methode stoße ich leider sehr schnell an die Grenze von 28 Anschlüssen. Daher ist die Erstellung eines SubVi auf diesem Weg nicht möglich. Ich dachte eher daran in einem SubVi auf mein MainVi zu referenzieren und die im MainVi benutzten Bedien- und Anzeigeelement zu initalisieren. Damit müsste doch dieses SubVi ohne Anschlüsse auskommen können???. Wahrscheinlich habe ich hier ein ganz grundlegendes Verständnisproblem Unsure


Eigenschaftsknoten - IchSelbst - 12.06.2007 09:48

Hallo Mave

ich rate auf jeden Fall zu der von Lucki bereits erwähnten Methode: Initialisierung in der ersten von drei Sequenzen.

Nichtsdestoweniger hast du auch folgende Möglichkeit: Führe alle Referenzen auf ein Array und gib das Array in das SubVI. Dort kannst du das Array dann indizieren und ggf. mit Variant auf die Wert-Eigenschaft des referenzierten Objektes schreiben. Das hat aber einen Nachteil: Du musst wissen, in welches Element des Array du was schreiben musst - alleine schon aus diesem Grunde macht ein SubVI keinen Sinn.

Mit der Variante des Zugreifens auf das HauptVI im SubVI hast du prinzipiell das selbe Problem. Du kannst zwar auf alle Objekte des HauptVI zugreifen (über ein entsprechendes Property), aber auch wieder nur mit Variant. Auch hier musst du wissen, auf welchen Index welcher Initialisierungswert gehört.

Desweiteren gibt es noch die Möglichkeit "Setze Standardwerte". Das ist eine Methode des VIs, dass alle Elemente auf ihre jeweiligen definierten Standardwerte setzt.


Eigenschaftsknoten - Mave - 12.06.2007 10:10

Hallo IchSelbst,

im Grunde gehe ich nach der empfohlenen Methode vor, d.h. ich benutze keine gestapelte Sequenz, sondern eine Initphase in einer State-Machine.
Hier nehme ich alle Initalisierungen vor. Jedoch ist das so groß geworden, dass die Darstellung nicht mehr auf eine Bildschirmseite passt. Ich dachte, ich könnte das ganze durch einsetzen eines SubVi etwas übersichtlicher gestalten.

Ich werde deine Methoden jetzt mal ausprobieren.

Dank auch Dir!


Eigenschaftsknoten - jg - 12.06.2007 10:30

' schrieb:im Grunde gehe ich nach der empfohlenen Methode vor, d.h. ich benutze keine gestapelte Sequenz, sondern eine Initphase in einer State-Machine.
Hier nehme ich alle Initalisierungen vor. Jedoch ist das so groß geworden, dass die Darstellung nicht mehr auf eine Bildschirmseite passt.
Hier gäbe es natürlich ein ganz triviale Lösung: Initphase der State-Machine in 2 Schritte unterteilen, nach dem Motto erst Init1, dann folgt Init2.

MfG, Jens


Eigenschaftsknoten - IchSelbst - 12.06.2007 10:47

' schrieb:Ich werde deine Methoden jetzt mal ausprobieren.
Ich weis ja, des Menschen Wille ist sein Himmelreich, außerdem lernst du ja was dabei. ;)Aber unter uns gesagt: So Sachen wie diese mit Referenzen hab ich alle wieder gestrichen und rückgängig gemacht. Irgendwie gab das immer Probleme.

Die Sache mit der Statemachine hat diverse Vorteile gegenüber einer Sequenz: Man kann je nach Bedarf auch die Initialisierung selbst mitten im Programm vornehmen.