LabVIEWForum.de
Plotlegende programmatisch erstellen um Ereignisse zu erfassen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Plotlegende programmatisch erstellen um Ereignisse zu erfassen (/Thread-Plotlegende-programmatisch-erstellen-um-Ereignisse-zu-erfassen)

Seiten: 1 2


Plotlegende programmatisch erstellen um Ereignisse zu erfassen - mez15 - 01.03.2017 09:06

Hallo Zusammen,

ich würde gerne die Plotlegende meines Grafen selber programmatisch erstellen lassen. Im Anhang ist die aktuelle Lösung zu sehen, wo mit einer zusätzlichen Tabelle gearbeitet wird, um die letzten erfassten Werte anzuzeigen.
[attachment=57410]
Ich würde das gerne in einem Cluster zusammenfassen. Es sollte dann möglich sein, die Plotfarbe anzupassen, die Graphen ein- und auszublenden und es sollten darin auch die Werte angezeigt werden.

Beim Konfigurieren der Kanäle werden in einem SubVI die Kanäle erstellt. Die Daten liegen praktisch in einem Array von Clustern vor. In den Clustern sind die Daten einer Kanalkonfiguration (Name, Kanalnummer, Sensortyp, ...) enthalten.

Ich habe schon öfter gelesen, dass man für diese Aufgabenstellung für das UI das Array in ein Cluster umwandeln muss. Jedoch ist mir nicht klar wie ich das umsetzen kann. Die Anzahl der Kanäle variiert zwischen 2 und 60, und ich bräuchte ein programmatisch erstelltes Cluster welches sich der Anzahl der Elemente im Array anpasst. Der weiteren ist mir noch nicht ganz klar, wie ich die Ereignisse eines einzelnen Kanals in einem Cluster erfassen kann.

Ist denn so etwas möglich was ich mir da vorstelle? Am liebsten wäre mir ein kleines Beispiel-VI aber auch ein Screenshot ;-)


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - jg - 01.03.2017 09:47

(01.03.2017 09:06 )mez15 schrieb:  Beim Konfigurieren der Kanäle werden in einem SubVI die Kanäle erstellt. Die Daten liegen praktisch in einem Array von Clustern vor. In den Clustern sind die Daten einer Kanalkonfiguration (Name, Kanalnummer, Sensortyp, ...) enthalten.

Ich habe schon öfter gelesen, dass man für diese Aufgabenstellung für das UI das Array in ein Cluster umwandeln muss.
Wozu? Eine variable Anzahl von Elementen desselben Typs stellt man am besten als Array da. Die Plotlegende der Graphen ist ebenfalls ein "Array of Cluster"

Gruß, Jens


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - mez15 - 01.03.2017 10:07

Zitat:Die Plotlegende der Graphen ist ebenfalls ein "Array of Cluster"

Das habe ich auch schon festgestellt, bloß hat diese die tolle Eigenschaft, dass man die Ereignisse darin erfassen kann. D.h. ich kann einzelne Grafen ein und ausblenden. In der Plotlegende von LabVIEW ist es praktisch möglich Ereignisse in einem Array of Cluster zu erfassen. Im Gegensatz dazu ist es aber nicht möglich Ereignisse in einem selbst erstellten Array of Cluster zu erfassen.

Ich hoffe ich konnte deutlich machen wo es bei mir hängt BlushCool


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - GerdW - 01.03.2017 10:39

Hallo mez,

Zitat:Im Gegensatz dazu ist es aber nicht möglich Ereignisse in einem selbst erstellten Array of Cluster zu erfassen.
Wieso nicht? Na klar kannst du bei einem Array Ereignisse auswerten…


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - jg - 01.03.2017 11:11

(01.03.2017 10:39 )GerdW schrieb:  Hallo mez,

Zitat:Im Gegensatz dazu ist es aber nicht möglich Ereignisse in einem selbst erstellten Array of Cluster zu erfassen.
Wieso nicht? Na klar kannst du bei einem Array Ereignisse auswerten…
Man muss halt programmtisch selber untersuchen, welches Element sich geändert hat:
[attachment=57413]
Gruß, Jens


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - jg - 01.03.2017 11:30

Alternative:
Arbeite mit einer Table oder ein Multicolumn-Listbox:
Maus-Events kannst du auswerten und per Invoke-Node kommst du dann auf die Zelle, auf die geklickt wurde.

Ich habe mir auch schon so "Customized" Legenden erzeugt:
[attachment=57414]
Gruß, Jens


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - mez15 - 01.03.2017 14:44

Vielen Dank für die Hilfe, die Lösung welche ich als "Lösung" markiert habe, kann ich super umsetzen. Guru1Guru1Guru1

Letzte Frage: Wo bekomme ich dieses Feld her?
[attachment=57422]


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - GerdW - 01.03.2017 15:02

Selber malen.
Oder einfach eine Farbbox nehmen…


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - mez15 - 01.03.2017 16:17

Alles klar, danke für die Unterstützung!


RE: Plotlegende programmatisch erstellen um Ereignisse zu erfassen - jg - 01.03.2017 16:40

(01.03.2017 14:44 )mez15 schrieb:  Vielen Dank für die Hilfe, die Lösung welche ich als "Lösung" markiert habe, kann ich super umsetzen. Guru1Guru1Guru1

Letzte Frage: Wo bekomme ich dieses Feld her?
Ich muss Gerd widersprechen: Das ist in diesem Fall ein Teil der Original-Plotlegende des Graphen. Geschickt so hingeschoben und die Größe so angepasst, dass es zur Listbox daneben passt.
Wenn du nur eine Farbauswahl brauchst, dann würde ich dafür ein Feld in der Listbox nehmen und entsprechend einfärben.
Die Farbauswahl kann man dann per Mausklick machen, indem man an der richtigen Stelle eine Colorbox einblendet, vgl. https://www.labviewforum.de/Thread-Enum-Baumstruktur

Gruß, Jens