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!
26.11.2009, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2009 13:57 von dimitri84.)
' schrieb:Also so...
[attachment=51066:cluster.png]
... ist halt für 3 Kanäle. Ich weiß nicht wie ich die Anzahl programmatisch ändern kann, außer einfach für jede Anzahl ein Case zu bauen.
Dann brauchst du doch aber auch verschieden Graphen, oder? Du kannst doch nicht unterschiedlich große Cluster an die gleiche Senke anschließen...
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
' schrieb:Nein, das geht nicht. Zur Laufzeit kannst du den Datentyp eines Cluster nicht ändern.
Na gut, dann mach ich eben 4 Cases. Ist kein Beinbruch.
' schrieb:Dann brauchst du doch aber auch verschieden Graphen, oder? Du kannst doch nicht unterschiedlich große Cluster an die gleiche Senke anschließen...
Es geht um die Stapelplotfunktion von Diagrammen (Charts). Da kann ich doch unterschiedlich große Cluster reinschicken.
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
So aus der Luft gegriffen und ohne es zu versucht zu haben...
... nicht verwendete Kanäle mit NaN beschreiben und einfach immer alle aufs Chart schicken.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
26.11.2009, 15:44 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2009 15:46 von dimitri84.)
' schrieb:Und zwar ist mir aufgefallen, dass wenn ich anstatt eines Signals (mit mehreren Kanälen) ein Cluster auf das Diagramm schicke, dann passt sich die Anzahl der Plots direkt an. Mit direkt meine ich sogar bevor das VI überhaupt gestartet wurde.
So geht das grundsätzlich.
Normalerweise gehst du wie folgt vor: Du plazierst auf das FP einen Graphen (ob Signalverlauf, Diagramm oder was immer ist dabei prinzipiell egal). Danach wechselst du in das BD und schliest an das Graph-Symbol einen Datenfluß an. Der Datenfluss entspricht dann dem Typ des Graphen: Entweder ein einzelner DBL, oder ein Array of DBL, oder Cluster oder Array of Cluster (wenn's geht). In dem Moment nämlich, in dem das Graph-Symbol beschaltet wird, wird das "polymorphe Element Graph" zu einer "physikalisch verwendbaren Anzeige" (dieser Vorgang heißt physiologisch "prägen", wie es die LabVIEWaner nennen weis ich nicht). Zwischen den Zeilen steht hier auch: An jeder lokalen Variablen und an jedem Property Wert (Wert, signalisierend) muss das selbe hängen wie am Symbol. Willst man jetzt den Typ des Graphen ändern, geht das nicht dadurch, dass z.B. eine lokale Variable mit einem neuen Datentyp beschaltet wird. Das geht nur so: Beschaltung des Symbols entfernen, neuen Typ erstellen und per Datenfluß an das Symbol.
Und dieses Trennen und neu Beschalten geht eben nur in der IDE, nicht zur Laufzeit.
Für einen Stapelplot gilt im Prinzip das gleiche: Verbindest du das Symbol mit einem Array auf 5 Plots (erstellt durch ArrayInitialisieren), dann erscheinen 5 Plots. Erhöhst du jetzt lediglich die Anzahl der Plots im Element ArrayInitialisieren von 5 auf 7 - so bleibt der Graph aber bei 5 Plots stehen. Warum? Weil er bereits geprägt ist. Für einen Stapelplot scheint aber folgendes zu gelten: Zur Entwicklungszeit kann man die Anzahl der Plots dadaurch ändern, indem man die Plotlegende vergrößert oder verkleinert. So viel Zeilen wie die Plotlegende hat, so viele Plot erscheinen im Graph.
Dein Vorhaben mit den sich selbst anpassenden Clustern muss auch fehlschlagen: Ein Datenfluß repräsentiert einen eineindeutigen Typ. D.h. du kannst nicht wie mit einem Multiplexer mal den Cluster-Typ, mal den nehmen. Jeder Cluster unterscheidet sich von jeden anderen grundsätzlich. Kein Cluster ist mit einem anderen kompatibel (normalerweise).
Dein Vorhaben würde nur dann gehen, wenn du z.B. als Datenfluß Variant verwendest. Jeden beliebigen Cluster kann man durch einen einzigen Variant-Wire führen. Dumm nur: Graph geht nicht mit Variant (hoffe ich doch).
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Jaa, dachte auch eher an die Problematik, dass die Clustergröße zur Laufzeit nicht geändert werden kann.
Ich würde halt einfach einen Stapelplot mit der max. Anzahl vorbereiten und nicht verwendete Plots mit NaN füllen bzw. irgendwas wie "unused" einblenden, drüberlegen..k.A.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!