LabVIEWForum.de
Frontpanel und Blockdiagramm zur Laufzeit anpassen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: Frontpanel und Blockdiagramm zur Laufzeit anpassen (/Thread-Frontpanel-und-Blockdiagramm-zur-Laufzeit-anpassen)

Seiten: 1 2


Frontpanel und Blockdiagramm zur Laufzeit anpassen - fabqu - 18.06.2012 14:01

Hallo LaView'er,

habe hier ein Problem, bei dem ich nicht weiterkomme:
Ich möchte, dass sich mein Frontpanel und mein Blockdiagramm individuell anpassen lassen.

Das heißt (hier am Beispiel einer kameraeinbindung innerhalb eines großen Programms) :

Ich habe innerhalb meines Hauptprogramms ein Teilprogramm, das sich nur mit dem Darstellen eines Kamerabildes beschäftigt. Manch einer hat aber kein NI-iMaq-DX und auch keine Kamera. Ergo: Er bekommt Fehlermeldungen über fehlende VIs und so weiter.

Nun soll er zu Beginn des ersten Programmaufrufs auswählen können, ob er überhaupt eine Kamera hat. Verneint er dies, sollen alle mit der Kamera zusammenhängenden Bedien- und Anzeigeelemente deaktiviert und ausgegraut werden.
Das geht ja über Eigenschaftsknoten (siehe Beispiel-VI im Anhang). Aber wie kann ich denn viele Referenzen zusammenfassen? Geht das? Oder muss ich für jedes Bedienfeld, das ausgegraut werden soll, einen neuen Knoten machen?

Dann soll natürlich auch das Blockdiagramm dieses Teilprogramms (siehe wieder Anhang) komplett deaktiviert werden. Das heißt, letztenendes soll das Programm quasi gar nichts mehr von diesem Teilprogramm im Blockdiagramm wissen - GEHT DAS??
Denn die Fehlermeldungen nerven und soweit ich weiß, kann man das Programm dann auch nicht ausführen, wenn die SubVIs von NI-iMaq-DX nicht vorliegen.

Danke Euch schon mal für die Hilfe!!!
Fabian


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - fabqu - 20.06.2012 13:21

Ich habe nun - wie mir empfohlen wurde - die gesamte Kamerasteuerung in ein SubVI gesteckt und binde dieses nun dynamisch ein (siehe Screenshot im Anhang).
Das hat zwar den gewünschten Effekt, jedoch geht nun die Performance flöten, das Kamerabild wird nur noch etwa 3 Mal pro Sekunde erneuert.

Außerdem bleibt das alte Problem, dass ich noch nicht weiß, wie ich mehrere Ein- und Ausgabeobjekte im Frontpanel auf einmal ausgrauen und deaktivieren kann.

Bräuchte dringend Hilfe!
Danke euch


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - Clyde - 20.06.2012 13:30

Nur n Schuss ins Blaue:
Wird innerhalb des SubVIs die Kamera immer wieder neu initialisiert? Das würde den Performance-Verlust erklären. Initialisiere sie vor der While-Schleife.


Gruß
Clyde


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - Y-P - 20.06.2012 13:57

Pack' sie doch in ein Array (oder Cluster) und graue das aus.

Gruß Markus

(20.06.2012 13:21 )fabqu schrieb:  Außerdem bleibt das alte Problem, dass ich noch nicht weiß, wie ich mehrere Ein- und Ausgabeobjekte im Frontpanel auf einmal ausgrauen und deaktivieren kann.



RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - NWOmason - 20.06.2012 13:57

(20.06.2012 13:21 )fabqu schrieb:  Außerdem bleibt das alte Problem, dass ich noch nicht weiß, wie ich mehrere Ein- und Ausgabeobjekte im Frontpanel auf einmal ausgrauen und deaktivieren kann.

Du kannst z.B. die relevanten Referenzen in einem Array sammeln. Dann brauchst du die PropertyNode nur einmal:

[attachment=40312]

Beste Grüße,
NWO


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - Y-P - 20.06.2012 13:59

Yes..... Da war ich ein paar Millisekunden schneller (OK, ohne Bsp.). Big Grin

Gruß Markus

(20.06.2012 13:57 )NWOmason schrieb:  
(20.06.2012 13:21 )fabqu schrieb:  Außerdem bleibt das alte Problem, dass ich noch nicht weiß, wie ich mehrere Ein- und Ausgabeobjekte im Frontpanel auf einmal ausgrauen und deaktivieren kann.

Du kannst z.B. die relevanten Referenzen in einem Array sammeln. Dann brauchst du die PropertyNode nur einmal:



Beste Grüße,
NWO



RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - fabqu - 20.06.2012 14:03

Ah ja Big Grin Nicht schlecht! Danke!
Werde ich machen Wink

Zum Performance-Problem: Ich initialisiere die Cam nur beim ersten Start - siehe Screenshot. Beim ersten Aufruf wird in meiner While-Schleife im Hauptprogramm ein Schieberegister mit 0 initialisiert, was die Initialisierung der Cam im SubVi bewirkt. Danach wird das Schieberegister mit einer 1 besetzt.
Bin mir aber ehrlich gesagt nicht 100%ig sicher, ob das hinhaut.

Grüße


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - jg - 20.06.2012 20:52

Zwecks Performance, probier mal Referenz auf das entsprechende VI nur 1x (irgendwann beim Programmstart) zu öffnen, Schließen natürlich nur bei Programmende, und dann nur der SubVI-Aufruf an Hand der schon geöffneten Referenz.

Gruß, Jens


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - fabqu - 21.06.2012 08:02

Oha, danke dir!
Das wars natürlich. Hab schon mal so nen Fehler gemacht beim Öffnen/Initialisieren einer COM-Schnittstelle - und da sagt man, aus Fehlern würde man lernen Big Grin

Danke dir! Fehler behoben, alle Probleme beseitigt!

Danke euch allen


RE: Frontpanel und Blockdiagramm zur Laufzeit anpassen - Kiesch - 25.06.2012 21:06

mal noch ne Verständnisfrage / Anregung zu weiterer Optimierung:

Wäre es nicht nur die Referenz auf das SubVI sondern das ganze SubVI nur einmal aufzurufen und dann vom Hauptprogram Fernzusteuerung? (über Queues o.ä.)

Weis nicht ob das bei Verwendung von IMAQdx wirklich sinnvoll ist, aber ich meine da wird ja für das Image eine Referenz verwendet, so lange man die hat müsste die also auch im Hauptprogram das Bild aktualisieren (ohne weiteren Aufwand)?

So würde man sich zumindest auch noch das ständige neu Initialisieren der Cam im SubVI sparen.