LabVIEWForum.de
Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz (/Thread-Eigenschaftsknoten-Sichtbarkeit-While-Schleife-vs-Sequenz)



Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - arphex - 15.01.2013 16:05

Hallo Zusammen,

ich würde gerne eueren Rat einholen zu folgendem Punkt.
Erstmal das Bild:

[attachment=43096]
Aufgebaut folgendermassen:
While --> Sequenzstruktur --> Case.

Nun möchte ich für ein Anzeigeelement (Ring-Control [frame length]) default invisible haben.
Um mir aber in jedem Case das Property-Node Invisible=False zu sparen, dachte ich mir
ich legs außerhalb der Case-Struktur an und override dies mit einem True im befreffenden Case.

Führe ich das VI aus, blinkt es natürlich, da es sich in einer while befindet.

Habt ihr mir einen Tipp?

Gruß & Danke

EDIT: Extern verlinkte Grafik ersetzt und als LVF-Anhang angegfügt
In Zukunft bitte nicht extern verlinken!



RE: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - GerdW - 15.01.2013 16:43

Hallo arphex,

zwei Sachen:
- Du hast eine RaceCondition programmiert: Welche PropertyNode wird zuerst bearbeitet, die außerhalb des Cases oder die im Case?
- Deine Cases haben keine Wartezeit, werden also in µs abgearbeitet. Da wird das Control immer unkontrolliert blinken (oder man sieht überhaupt kein Control, weil zu schnell geblinkt wird...)


Tipp:
Versuche den Einsatz von lokalen Variablen (und noch schlimmer "Value"-Properties) zu vermeiden. Wozu hast du Terminals ungenutzt rumliegen?


RE: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - arphex - 16.01.2013 07:40

Hallo Gerd,

was meinst du denn mit Terminals?

Wenn ich lokale Variablen vermeide, dann muss ich immer die Signalleitungen einzeln rausführen?

Zu deinem Vorschlag - Wartezeit. Da gibt es ja Wait(ms) aber da bin ich ja trotzdem an eine Zeit gebunden, oder?
Es blinkt dann nur in niedrigerer Frequenz..

Gruß&Danke


RE: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - Morpheus - 16.01.2013 07:56

Hallo arphex

Front-Panel Elemente nennt man Controls und auf dem Block Diagram heissen diese dann Terminals.

Lokale Variablen dienen zur Übergabe von Werten, die direkte Verbindung der Controls mit "Wires" ist aber zu bevorzugen. Deshalb der Vorschlag mit den Terminals.
Property Nodes sollte man nur verwenden um Eigenschaften von Controls zu setzen, nie aber wenn nur der Wert aktualisiert werden soll.

Gruss
Chris


RE: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - arphex - 16.01.2013 08:53

Hi Chris,

ok Danke, jetzt bin ich etwas firmer mit der Terminologie.

Für die aktualisierung von Werten nutzen doch eh nur die RingControls, mit Enums geht dies nicht.

Ich hätte gerne gewusst warum Wires den lokalen Variablen vorzuziehen sind.

Und welche Möglichkeit habe ich mit den Property Nodes?
Damit meine ich mein eigentliches Problem, das ich einige Dropdown's (ENUM oder RingControl) in unterschiedlichen
Cases aus- und einblenden möchte, ob es da eine cleverere Methodik gibt.

Gruß


RE: Eigenschaftsknoten (Sichtbarkeit) - While Schleife vs. Sequenz - GerdW - 16.01.2013 08:57

Hallo Philipp,

Zitat:Ich hätte gerne gewusst warum Wires den lokalen Variablen vorzuziehen sind.
LabVIEW ist datenfluss-optimiert, lokale Variablen brechen den DATAFLOW aber. Reicht das?
Ein Punkt: Lokale Variablen stellen immer Kopien der Daten bereit. Bei Skalaren mag man das noch tolerieren, bei (größeren) Arrays gibt's ruckzuck Probleme.
Ja, ich hatte anfangs auch meine Probleme, von den (textbasiert) gewohnten Variablen abzulassen. Aber glaube mir: ohne lokale Variablen werden deine VIs besser...

Zitat:Und welche Möglichkeit habe ich mit den Property Nodes?
Die dienen zum Abfragen/Ändern der Control-Eigenschaften, auch der Eigenschaft "Wert". Sie sind aber um einen hohen Faktor langsamer (ca. 100×) als Zugriffe per Draht, wenn man nur den Wert haben will...