Hallo,
ich habe ein Problem mit meinen Eigenschaftsknoten und weiß nicht weiter...
Die Eigenschaftsknoten sollen Schieberegler aktivieren oder deaktivieren und ausgrauen.
Ich habe probiert das so zu machen wie in diesem Thread, es geht um die Übersichtlichkeit von Eigenschaftsknoten in SubVi´s.:
http://www.LabVIEWforum.de/LabVIEW-Eigensc...VIs-t12947.html
aber leider funktioniert es bei nicht.
In meinem HauptVI habe ich die Referenzen einiger Schieberegler zu einem Cluster zusammengefasst, damit es übersichtlich bleibt.
Dieses Cluster führe ich in das SubVI, in dem ich je nach Abhängigkeit vom Fahrmode die Eigenschaft der Schieberegler ändere.
Ich habe beide SubVI´s als pic und als VI.
[
attachment=20084]
[
attachment=20085]
![Lv86_img Lv86_img](images/smilies/lvfsmilies/lv_icons/lv86_img.jpg)
[
attachment=20086]
[
attachment=20087]
Ich hoffe das mein Problem verständlich geworden ist.
Beste Grüße
Dabei fallen mir zwei Dinge auf:
1. Die Eigenschaftsknoten beziehen sich auf das Cluster, nicht auf die einzelnen Referenzen.
2. Die dritte Referenz wird nie aktiviert!?
LG
Torsten
.. und die Reihenfolge ist auch falsch. (gibt dann später Probleme)
übergeben wir BT, SCD, CPP -> im SubVI dann aber BT, CPP, SCD.
um das zu vermeiden kannst du auch einen Cluster mit Namen erstellen, dazu zuerst einen Cluster erstellen (TypDef).
@ TSchAC
zu 1) Du hast recht. Ich habe mich falsch ausgedrückt, die Referenz soll sich auf das Cluster beziehen.
zu 2) Die dritte Referenz (SCD) soll immer aktiv sein, daher in allen Cases die "0" als Eingang für die Eigenschaftsknoten!?
@ RoLe
Danke für die Info. Die Reihenfolge ist falsch, es ändert aber leider nichts an dem Problem da diese VI´s nur als Bsp. für mich dienen. In meinem richtigen Programm hatte ich es korrekt gemacht.
Hier nochmal die richtigen Bilder und VI´s.
[
attachment=20090]
[
attachment=20091]
![Lv86_img Lv86_img](images/smilies/lvfsmilies/lv_icons/lv86_img.jpg)
[
attachment=20092]
[
attachment=20093]
Das Problem ist, das CPP immer deaktivert ist, obwohl es "meines Erachtens" richtig angeschlossen ist.
Danke für Eure Antworten!
Gruß
Aktiviere mal manuell die zwei schieberegister im CPP und auch das umfassende Cluster.
Damit funktionierts bei mir dann.
LG
Torsten
Was soll ich dazu sagen?
Wenn man den Wald vor lauter Bäumen nicht sieht... vielleicht ist es einfach nicht mein Tag.
Ich Danke Dir TSchAC!
kein Ding!
evtl noch was zur optimierung, falls du das in deinem richtigen Programm nciht schon hast: Momentan aktuallisierst du den Aktivstatus mit der höchsten Frequenz die Prozessor und LabVIEW zur verfügung stellen.
Das belastet deine CPU. Abhilfe schafft da entweder eine kleine Wartezeit in der entsprechenden WhileSchleife (da wo das SubVI aufgerufen wird) oder wenn dus richtig machen willst, dann entfernst du die Schleife, und reagierst nur auf das Event Wertänderung von deinem Control in dem du den Status angibst.
LG
Torsten
' schrieb:evtl noch was zur optimierung, falls du das in deinem richtigen Programm nciht schon hast: Momentan aktuallisierst du den Aktivstatus mit der höchsten Frequenz die Prozessor und LabVIEW zur verfügung stellen.
Das belastet deine CPU. Abhilfe schafft da entweder eine kleine Wartezeit in der entsprechenden WhileSchleife (da wo das SubVI aufgerufen wird) oder wenn dus richtig machen willst, dann entfernst du die Schleife, und reagierst nur auf das Event Wertänderung von deinem Control in dem du den Status angibst.
Ja, es is überhaupt nie gut, die Abarbeitung von Eigenschaftsknoten, die 200 mal so viel Zeit brauchen wie z.B das Lesen einer lokalen Variablen (und deren Verwendung oft geschlolten wird!), in die oftmals zeitkritische Haupschleife hineinzuverlegen. Also: wie schon gesagt, Aufruf nur bei Wertänderungt, und selbst dann möglichst nicht in der Haupschleife. Das optimale Konstrukt dafür ist die Ereignisbehandlung in einer separaten Schleife (mit timeout unendlich).
![Lv86_img Lv86_img](images/smilies/lvfsmilies/lv_icons/lv86_img.jpg)
[
attachment=20096]