28.04.2015, 10:27
Beitrag #1
|
|
|
28.04.2015, 10:36
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Referenzen in Variable speichern und in SubVI aufrufen
LabVIEW arbeitet streng typdefiniert. Einen "Variant-Datentyp" an ein "Bundle By Name" anzuschließen führt also automatisch zu einem "Broken Wire".
Lösung: An dieser Stelle musst du den "Variant" erst einmal in den richtigen Cluster-Datentyp überführen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
28.04.2015, 12:45
Beitrag #3
|
|
|
28.04.2015, 12:56
Beitrag #4
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Referenzen in Variable speichern und in SubVI aufrufen
Hallo Hasenfuss,
doch, sowas kann man schon machen. Nur muss dein verarbeitendes VI eben genau den Typ der Referenz (bzw. den zugrundeliegenden Datentyp) kennen, um die Referenz weiterzuverwenden…
Was für Referenzen hast du denn da erzeugt? Welche Bedienelemente stecken dahinter?
Wieso musst du mit Referenzen hantieren - statt gleich die Daten in der FGV zu bündeln?
|
|
|
28.04.2015, 13:10
Beitrag #5
|
|
|
28.04.2015, 14:07
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2015 14:11 von GerdW.)
Beitrag #6
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Referenzen in Variable speichern und in SubVI aufrufen
Hallo Hasenfuss,
Zitat:Ich hab folgendes gemacht - ich bin auf "Referenz erzeugen" gegangen beim Element. Dann hatte ich die Referenz und am Ausgang hab ich gesagt - Bedienelement erzeugen. Dieses Bedienelement hab ich kopiert und in einen Cluster eingefügt - siehe das Frontpanel mit dem Cluster.
Ich habe in meiner Oberfläche eine Vielzahl von Bedienelementen,
Und jetzt willst du für diese "Vielzahl von Bedienelementen" jeweils eine Referenz erzeugen und in diesem Cluster in der FGV ablegen?
Es ist dann doch viel einfacher, einfach eine Referenz auf das FP deines VIs zu holen und sich darüber alle Control-Referenzen zu holen. Dann filtert man die interessanten Bedienelemente über ihr Label - welches man dazu natürlich nach einem sinnvollen Schema benannt haben muss…
So sieht das bei mir aus:
Bei "1" werden die Referenzen auf die FP-objekte eingesammelt, bei "2" werden die zu setzenden Werte aus einer Datei geladen und dann über das Label der Controls zugewiesen…
|
|
|
29.04.2015, 12:48
Beitrag #7
|
|
|
29.04.2015, 12:58
Beitrag #8
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Referenzen in Variable speichern und in SubVI aufrufen
Hallo Hasenfuss,
Zitat:Was mir daran nicht so gut gefällt ist, dass sich die Bezeichnung in dem Case nicht automatisch ändert, wenn ich die Bezeichnung eines Elements in dem Hauptprogramm ändere.
Warum sollte es?
Du hast einen Case namens "True" - wieso sollte dieser Case-Name mit dem Label irgendeines Controls verknüpft sein???
Zitat:Kann ich denn an meinem jetzigen Entwurf noch etwas besser machen?
Ich übergebe an Punkt 2 im obigen Bild zwei Arrays: eines mit Labels, eines mit Werten. Und über das Array mit den Labels suche ich mir das passende Control heraus! (Es gibt da so Funktionen wie "Search1DArray"…)
Das hat die Vorteile:
- Ich kann eine Config-Datei verwenden und dort mit dem Texteditor Labels ändern/hinzufügen/löschen - ganz nach Bedarf…
- Wenn ich das passende Control zum Label gefunden habe, kann ich den Controltyp abfragen und den zu übergebenden Wert passend aufbereiten (ich arbeite hier nur mit Zahlen oder boolschen Werten, das macht die Sache einfacher)…
|
|
|
29.04.2015, 13:16
(Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2015 13:17 von Hasenfuss.)
Beitrag #9
|
|
|
29.04.2015, 13:22
(Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2015 13:23 von GerdW.)
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Referenzen in Variable speichern und in SubVI aufrufen
Hallo Hasenfuss,
Zitat:Leider muss ich erst noch eine primäre for-Schleife anlegen, damit ich aus Elemente[] eine Liste von den Bezeichnungen kriege.
Sowas muss man ja pro VI nur ein einziges Mal durchführen…
Zitat:Meinst Du das so von der Art her?
Ja, in der Art. In der letzten Schleife dann noch die passende Referenz mittels IndexArray (und nicht per AutoIndizierung!) aus dem Referenzen-Array holen…
Und etwas Fehlerbehandlung schadet auch nicht, wenn man mal nicht das korrekte Label vergeben hat und deshalb keine passende Referenz gefunden wird!
|
|
|
| |