LabVIEWForum.de
Reference an SubVI übergeben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Reference an SubVI übergeben (/Thread-Reference-an-SubVI-uebergeben)

Seiten: 1 2


Reference an SubVI übergeben - Rob - 26.11.2007 17:02

Hallo,

kleines Problem: wie kann ich eine Reference an ein SubVI übergeben?
Hintergrund: ich möchte eine "main" haben in der ein Knopf ist, der im SubVI eine Aktion auslösen soll (hier: einfach einen Indicator auf 100 setzen). Bekomme keine Fehlermeldungen, allerdings auch keine Reaktion, d.h. Wer ändert sich nicht.
Habe das vorher schon zig mal gemacht, aber jetzt hakt es irgendwo. Der Button im main ist auf switch when released (also bloß keine latch Funktion).

Anmerkungen, wie macht man es richtig?

Danke,

Robert


Reference an SubVI übergeben - eg - 26.11.2007 17:07

Mach es doch gleich richtig: mit Occurence oder User Event. (LV8.0)


Reference an SubVI übergeben - eg - 26.11.2007 17:46

Aber so wie du es gemacht hast sollte es eigentlich auch funktionieren, aber so mache ich das nie. Vielleicht noch jemand.


Reference an SubVI übergeben - monoceros84 - 27.11.2007 08:33

Irgendwie erinnert mich Roberts Ansatz sehr an C, habe das so noch nie in LV gemacht. Glaube auch nicht, dass das so standard ist...


Reference an SubVI übergeben - Rob - 27.11.2007 09:05

' schrieb:Aber so wie du es gemacht hast sollte es eigentlich auch funktionieren, aber so mache ich das nie. Vielleicht noch jemand.
Hallo,

vielen Dank für deine Hilfe. Was für ein event man überträgt sollte ja im Grunde genommen egal sein. Wie auch immer, dein Beispiel läuft (natürlich) perfekt. Nun nur eine Frage: wie schaut das ganze aus, wenn ich das SubVI in einem Panel des main anzeigen lassen möchte? Anbei mein Versuch (LV 8.0), der (wie könnte es auch anders sein) nicht lauffähig ist...

Gruß,

Robert

P.S. Kann man die Scrollbalken des Subpanels irgendwie entfernen, bzw. den "numeric indicator" in die Mitte bekommen?


Reference an SubVI übergeben - IchSelbst - 27.11.2007 09:20

Erklärung:

' schrieb:Anmerkungen, wie macht man es richtig?
So - also die Referenz auf das UserEvent - geht das aber nicht. In diesem Falle würde ein Event nur ausgelöst werden, wenn sich der Wert der Referenz ändert. Der ändert sich aber nicht, soll auch nicht.


Reference an SubVI übergeben - IchSelbst - 27.11.2007 09:27

' schrieb:P.S. Kann man die Scrollbalken des Subpanels irgendwie entfernen,
Klar. Den vorhandenen VI-Knoten weiter aufziehen (oder war da ein extra Knoten für?) und bei "Scrollbalken anzeigen" "nein" (besser aber: "nur während der Laufzeit") anschließen.

Zitat:bzw. den "numeric indicator" in die Mitte bekommen?
Ich mach das immer so: Im SubVI werden die Elemente im vierten Quadranten (der Nullpunkt ist also oben links) eben in der Nähe des Nullpunktes angeordnet. Dann wird das SubVI bei Aufruf auf (0,0) bezogen auf das SubPanel positioniert. Die Breite und Höhe wird durch das SubPanel vorgegeben.


Reference an SubVI übergeben - Rob - 27.11.2007 10:04

' schrieb:Ich mach das immer so: Im SubVI werden die Elemente im vierten Quadranten (der Nullpunkt ist also oben links) eben in der Nähe des Nullpunktes angeordnet. Dann wird das SubVI bei Aufruf auf (0,0) bezogen auf das SubPanel positioniert. Die Breite und Höhe wird durch das SubPanel vorgegeben.
Danke.
Auch für den anderen tipp. Verstehe das mit der Referenz momentan zwar nicht, muss mir da mal neue Literatur suchen (netterweise lässt die DLLs, Referenzen aus :=() Das sich die Referenz selbst nicht ändern soll ist mir schon klar, aber deshalb ja extra das Register user event.

Gruß,

Robert


Reference an SubVI übergeben - eg - 27.11.2007 10:28

Zum SubPanel kann ich leider nichts sagen, weil ich am liebsten mehrere Fenster habe.
Aber was anderes zum Datentyp des Events. Ich habe es extra als String definiert, denn damit kann man beliebige Daten über nur einen einzigen Event übertragen.


Reference an SubVI übergeben - IchSelbst - 27.11.2007 13:07

' schrieb:Verstehe das mit der Referenz momentan zwar nicht, muss mir da mal neue Literatur suchen (netterweise lässt die DLLs, Referenzen aus :=() Das sich die Referenz selbst nicht ändern soll ist mir schon klar, aber deshalb ja extra das Register user event.
Du hast Recht, zumindest solltest du. ;)Mir ist da schon wieder ein Fehler unterlaufen.

Aber trotzdem würde ich von Referenzen als UserEvent absehen. Außerdem musst du beachten, dass ein Ereignis nur einmal bearbeitet werden kann. Solltest du also in dem VI, in dem sich das Bedienelement befindet, z.B. ein "ValueChanged"-Event haben, so wird das "ValueChanged"-Event, das dem SubVI wegen der Referenz theoretisch zur Verfügung steht, im SubVI nicht ausgeführt.