LabVIEWForum.de
Variable Größe eines Arrays mit VISA-Adressen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Variable Größe eines Arrays mit VISA-Adressen (/Thread-Variable-Groesse-eines-Arrays-mit-VISA-Adressen)



Variable Größe eines Arrays mit VISA-Adressen - jusaca - 09.02.2016 12:58

Ich würde gerne das Array im Anhang mit einer variablen Größe gestalten, sodass der User auswählt "x Geräte angeschlossen" und dann sollten überschüssige VISA Resourcen ausgeblendet und die Schleife mit einer passenden Anzahl an VISA-Adressen durchlaufen werden.

Der einzige Ansatz, der mir dazu einfällt, wäre eine Case-Struktur, die für jede Anzahl an Geräten einen passenden Fall besitzt, aber das halte ich für etwas gaga. Das sollte ja sicherlich eleganter zu lösen sein, oder nicht? Da ich bisher noch nicht arg so viel Erfahrung mit Labview habe wäre ich für ein paar Gedankenanstöße sehr dankbar =)

Viele Grüße
jusaca


RE: Variable Größe eines Arrays mit VISA-Adressen - GerdW - 09.02.2016 13:43

Hallo jusaca,

Zitat:sodass der User auswählt "x Geräte angeschlossen" und dann sollten überschüssige VISA Resourcen ausgeblendet
Du kannst die Anzahl der angezeigten Arrayelemente über eine Property des Arrays einstellen.

Zitat:die Schleife mit einer passenden Anzahl an VISA-Adressen durchlaufen werden.
Du sorgst dafür, dass das Array nur genau die gewünschte Anzahl an Elementen enthält.
Entweder, in dem der User nur diese vorgeben darf oder hinterher über eine ArraySubset-Funktion!


RE: Variable Größe eines Arrays mit VISA-Adressen - jusaca - 09.02.2016 17:14

Ah, ArraySubset ist natürlich die Lösung.

Auf dem FP möchte ich die einzelnen VISA-Resourcen aber nicht als Array anlegen, da die unbenötigten Elemente ausgegraut werden sollten.
Ich habe jetzt mal ein Cluster erstellt und über einen Property-Node jeden der maximal 16 Adressen ausblendbar gestaltet, aber das wird ja doch etwas unübersichtlich. Und wenn ich das ganze in ein SubVI packe, dann habe ich im VI immer noch sehr unübersichtlich 16 Referenzen an das Sub-Vi angeschlossen... ;/

Ist meine Herangehensweise da gänzlich falsch? Einfach das Cluster an ein SubVi übergeben und dann auf die Eigenschaften der Frontpanelelemente zuzugreifen geht nicht, oder? Im Cluster werden ja wohl nur die eingelesenen Werte gespeichert...

Ich habe mal meine zwei VIs angehangen. Vielleicht hat jemand eine Idee? =)
(Nicht über die anderen rumfliegenden Elemente wundern, die sind bisher nur eingefügt, um die Benutzeroberfläche zu strukturieren).
Zu Beginn hatte ich mir das so banal vorgestellt, unbenötigte Elemente zu sperren, damit da niemand rumspielt Blink

Grüße
jusaca


RE: Variable Größe eines Arrays mit VISA-Adressen - GerdW - 09.02.2016 18:45

Hallo jusaca,

Zitat:Auf dem FP möchte ich die einzelnen VISA-Resourcen aber nicht als Array anlegen, da die unbenötigten Elemente ausgegraut werden sollten.
Ok, das ist ein berechtigter Einwand. Hier bietet sich ein Cluster an…

Zitat:Ich habe jetzt mal ein Cluster erstellt und über einen Property-Node jeden der maximal 16 Adressen ausblendbar gestaltet, aber das wird ja doch etwas unübersichtlich. Und wenn ich das ganze in ein SubVI packe, dann habe ich im VI immer noch sehr unübersichtlich 16 Referenzen an das Sub-Vi angeschlossen... ;/
Ja, du machst das wirklich umständlich…
Der Cluster selbst hat auch Eigenschaften. Eine davon gibt dir die Referenzen auf die im Cluster enthaltenen Elemente, die musst du also nicht einzeln anlegen…
Und wenn man erstmal die Referenzen in einem Array hat, kann man sie mit einer (autoindizierenden) Schleife abarbeiten!

Zitat:Einfach das Cluster an ein SubVi übergeben und dann auf die Eigenschaften der Frontpanelelemente zuzugreifen geht nicht, oder? Im Cluster werden ja wohl nur die eingelesenen Werte gespeichert...
THINK DATAFLOW: Wenn du den Cluster an das subVI weitergibst, werden natürlich "nur" die Werte ans subVI geleitet.
Wenn du aber auf Eigenschaften dieses Clusters in einem subVI zugreifen willst, musst du eine Referenz auf diesen Cluster ans subVI weiterleiten!

Zitat:Zu Beginn hatte ich mir das so banal vorgestellt, unbenötigte Elemente zu sperren, damit da niemand rumspielt
Wenn man das Prinzip verstanden hat und die Möglichkeiten, die Referenzen bieten, kennt, ist es auch banal… Big Grin

Abgesehen davon: wäre es für den User nicht viel einfacher, wenn er einfach in einer Liste die aktuell verfügbaren Geräte angezeigt bekäme? Und die dann z.B. über einen Doppelklick "aktivieren" könnte?
Wie sind die Messgeräte eigentlich angebunden? Wenn sie über GPIB oder LAN angeschlossen sind, könntest du sie doch einfach "anpingen", um zu wissen, welche Geräte verfügbar sind…


RE: Variable Größe eines Arrays mit VISA-Adressen - jusaca - 10.02.2016 10:13

(09.02.2016 18:45 )GerdW schrieb:  Der Cluster selbst hat auch Eigenschaften. Eine davon gibt dir die Referenzen auf die im Cluster enthaltenen Elemente, die musst du also nicht einzeln anlegen…
Und wenn man erstmal die Referenzen in einem Array hat, kann man sie mit einer (autoindizierenden) Schleife abarbeiten!
THINK DATAFLOW: Wenn du den Cluster an das subVI weitergibst, werden natürlich "nur" die Werte ans subVI geleitet.
Wenn du aber auf Eigenschaften dieses Clusters in einem subVI zugreifen willst, musst du eine Referenz auf diesen Cluster ans subVI weiterleiten!
Wenn man das Prinzip verstanden hat und die Möglichkeiten, die Referenzen bieten, kennt, ist es auch banal… Big Grin
Da hast du Recht! Diese Möglichkeit kannte ich nicht, das ist ja wundervoll elegant. Danke =)

(09.02.2016 18:45 )GerdW schrieb:  Abgesehen davon: wäre es für den User nicht viel einfacher, wenn er einfach in einer Liste die aktuell verfügbaren Geräte angezeigt bekäme? Und die dann z.B. über einen Doppelklick "aktivieren" könnte?
Wie sind die Messgeräte eigentlich angebunden? Wenn sie über GPIB oder LAN angeschlossen sind, könntest du sie doch einfach "anpingen", um zu wissen, welche Geräte verfügbar sind…
Ja, das wäre tatsächlich komfortabler. Die Geräte sind über GPIB angebunden. Über eine automatische Schleife habe ich auch schon nachgedacht, die überprüft, welche Geräte gerade im Bus hängen. Da werde ich mir noch etwas überlegen.

Grüße
jusaca