LabVIEWForum.de
Array aus clustern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array aus clustern (/Thread-Array-aus-clustern--32093)



Array aus clustern - simcum - 29.03.2020 17:28

Hallo liebe LabViegemeinde,

ich stehe vor einem Problem und komme nicht weiter.
Hoffe ihr könnt mir weiterhelfen.

Ich versuche mein Problem so kurz wie möglich zu schildern.

Möchte gerne ein Array aus Clustern erstellen und das Array je nach Kanalanzahl erweitern.

Das Cluster ist gemischt aus Boolean, string, textrings.
Habe dazu mein Vi hochgeladen.

Mein Ziel ist es erstens sobald ich das Array um ein Element erweitere das der Untertitel "CH 1" mit hochgezählt wird.
Das klappt bei mir nicht.

Als zweites möchte ich gerne sobald das Array mit den Elementen erzeugt wurde, die Zustände der entsprechenden Elemente im Cluster über einen jeweiligen Hauptelement gleichzeitig ändern.
z. B Mein Array besteht aus 10 Kanälen , d.h. 10 Arrayelementen aus Clustern. Nun möchte ich gerne über einen separaten Cluster mit den gleichen Elementen durch Auswahl oder Betätigung alle im Array vorhandenen Clusterelemente gleicher Zuordnung ändern.
D.h. Ich betätige auf einem separaten Cluster die LED für CH, dann sollen in allen Clusterelementen im Array die LED betätigt werden. Das gleiche gilt auch für die anderen Elemente im Array.

Als drittens würde ich gerne innerhalb jeden Clusterelements im array eine Bedingung mit einbringen, z.B. durch auswahl im Textring wird ein anderes Element (letztes Stringfeld) deaktiviert.
Diese Bedingung muss einzeln für jedes Cluster im Array vorhanden sein. Jeder Kanal kann unterschiedlich sein.

Im Endeffekt möchte ich eine erweiterbare Kanalliste bestehend aus Clustern realisieren, in der ich über die Clusterlement die Eigenschaften des jeweiligen Kanals bestimmen kann.

Hoffe ist einigermaßen klar rübergekommen.

Bedanke mich schonmal für die Mühe und hoffe auf Unterstützung


RE: Array aus clustern - GerdW - 29.03.2020 17:36

Hallo simcum,

Zitat:Hallo liebe LabViegemeinde,
Nach mehreren Jahren solltest du die Schreibweise von LabVIEW besser kennen… Big Grin

Zitat:Habe dazu mein Vi hochgeladen.
Diverse Probleme:
Die Werte für "Übersicht" sollten in einem Schieberegister gehalten werden, dann muss in der Schleife nicht dauernd aus dem Control gelesen und in eine "Value"-Property geschrieben werden.
Die "num of rows" kann man einmal vor der Schleife festlegen.
Wenn man dein VI mehrfach ausführt, sind in "Übersicht" evtl. mehr Elemente enthalten als im Frontpanel angezeigt werden.
Ich hoffe, der Cluster ist in deinem Projekt typdefiniert!?

Zitat:Mein Ziel ist es erstens sobald ich das Array um ein Element erweitere das der Untertitel "CH 1" mit hochgezählt wird. Das klappt bei mir nicht.
Das klappt bei niemandem: in einem Array haben alle Elemente die gleichen Properties und unterscheiden sich nur durch ihren Wert!
Also: die Property "Caption" kann in den Arrayelementen nicht unterschiedlich sein!
Aber: du könntest einen weiteren String (namens "Caption") in deinen Cluster packen und dessen Wert wie gewünscht anpassen!


Zitat:D.h. Ich betätige auf einem separaten Cluster die LED für CH, dann sollen in allen Clusterelementen im Array die LED betätigt werden. Das gleiche gilt auch für die anderen Elemente im Array.
Was genau ist das Problem?
Herausfinden, welches Clusterelement geändert wurde: ganz einfach mit einer Eventstruktur.
Dann die passenden Elemente im Array ändern…

Zitat:Als drittens würde ich gerne innerhalb jeden Clusterelements im array eine Bedingung mit einbringen, z.B. durch auswahl im Textring wird ein anderes Element (letztes Stringfeld) deaktiviert. Diese Bedingung muss einzeln für jedes Cluster im Array vorhanden sein. Jeder Kanal kann unterschiedlich sein.
Hier greift wieder die Bemerkung oben: alle Arrayelemente haben die gleichen Eigenschaften!
Also entweder ist der String überall aktiviert - oder er ist überall deaktiviert…

Aber: du kannst die Usereingaben ja überwachen (siehe Kommentar zur Eventstruktur) und unerlaubte Änderungen rückgängi machen!

Ich würde so etwas anders umsetzen: mit einer (Multicolumn)Listbox. Diese Listbox zeigt alle Werte nur an, der User kann einen Eintrag (eine Zeile) anwählen und dann in einem separaten Cluster die passenden Einstellungen vornehmen. Sieht IMHO viel hübscher aus als ein "Array of Clusters" und ist wesentlich einfacher programmatisch zu überwachen…


RE: Array aus clustern - simcum - 29.03.2020 22:08

Hallo,

vielen Dank für deine ausführlichen Antworten.

Hast du vielleicht ein Beispiel für einen (Multicolumn)Listbox.

Wie mann so etwas umsetzen könnte?

Mir geht es nur um das Prinzip.

Bedanke mich


RE: Array aus clustern - GerdW - 30.03.2020 06:21

Hallo simcum,

so könnte das aussehen:
[attachment=60801]
Der User kann in der Listbox links eine Zeile auswählen und für diese dann rechts die Parameter bearbeiten…
(Im Bild sieht man auch schon eine Vorverarbeitung der User-Eingaben: wenn kein Kanal ("---") ausgewählt ist, kann man auch keine Überwachung dafür konfigurieren. Erst mit gültigem Kanal kann man dann einen Modus und Grenzwerte definieren.)


RE: Array aus clustern - simcum - 30.03.2020 07:11

Vielen Dank das hilft mir erstmal weiter.