LabVIEWForum.de - Frontpanel und Blockdiagramm zur Laufzeit anpassen

LabVIEWForum.de

Normale Version: Frontpanel und Blockdiagramm zur Laufzeit anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
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
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.
(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
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
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
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
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
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.
Seiten: 1 2
Referenz-URLs