INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Lokale Variablen oder Property Node



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.07.2011, 16:35
Beitrag #1

flattervieh Offline
LVF-Grünschnabel
*


Beiträge: 42
Registriert seit: Sep 2009

2011 Prof. SP1
2009
EN


Deutschland
Lokale Variablen oder Property Node
Hallo zusammen.
Ich bin gerade dabei ein VI zu entwickeln. Früher habe ich auf massiven Einsatz von lokalen Variablen gesetzt was inzwischen stark zurück gegangen ist. Jetzt habe ich eine State-Machine die mir innerhalb eines States mehrmals Werte in eine Tabelle schreiben soll. Ich möchte bei jedem Durchlauf den neuen Wert in die Tabelle schreiben und auch anzeigen lassen. Das Funktioniert auch einwandfrei. Die Tabelle selbst wird aber auch von einem anderen möglichen State beschrieben. Nun stellt sich mir die Frage ob an dieser Stelle die Verwendung einer lokalen Variable der Tabelle sinnvoller ist oder ein Property Node der Tabelle mitsamt dessen Reference wobei bei dem Property Node jeweils der aktuelle Wert in die Tabelle geschrieben wird.

Im Prinzip wurde die lokale Variable durch eine Reference + einen Property node ersetzt.

Welche Vor- oder Nachteile kann solch ein Konstrukt haben gegenüber lokalen Variablen? Denn diese Property Nodes können ja genauso wie lokale variablen auch im kompletten VI verstreut sein. Und gerade diese "unverkabelte" Verteilung ist ja eigentlich der größte Kritikpunkt der lokalen Variablen.

Grüße
flattervieh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2011, 17:07
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Lokale Variablen oder Property Node
Ganz klare Aussage:
Solange es nur um das Setzen eines Wertes geht: lokale Variable!
Setzen per PropertyNode ist nämlich noch langsamer und erzwingt auch immer ein Frontpanel-Update.

Innerhalb einer Statemachine ist das auch erlaubt, denn hier kann ja immer nur ein State aktiv sein. Somit keine Race-Condition.

Anders sieht es aus, wenn du sowieso noch irgendeine Eigenschaft änderst, dann PropertyNode aufziehen und gleich alles machen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2011, 17:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2011 17:35 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Lokale Variablen oder Property Node
Was man unbedingt wissen muß ist, daß eine lokale Variable kaum langsamer ist als das direkte Schreiben/Lesen, ein Property-Node aber ist 100-200 mal langsamer. Allerdings ist davon auszugehen, daß das Langsame daran der Aufruf des Eigenschaftknotesn an sich ist und daß es keine Rolle spielt, wie viele Eigenschaften dieser dann hat. Deshalb ist überhaup nichts dagegen einzuwenden, dass, wenn der Eigenschaftsknoten wegen anderer Eigenschaften sowieo aufgerufen werden muß, dann auch die Eigenschaft "Wert" anstelle eine lokalen Variablen mit verwendet wird.

Der Eigenschaftsknoten ist weniger in Verruf als die Lokale Variable, aber nur deshalb, weil er Fehleranschlüsse hat und somit etwas einfacher (ohne zusätzliche Struktur) eine Datenabhängigkeit hergestellt werden kann. Bei eine State-Machine wird aber immer nur ein State ausgeführt. Wenn nicht gerade mehrere lokale Variable in einem State verwendet werden, dann dürfte das Problem von Wettlaufeffekten beherrschbar sein.

Ich gestehe, daß ich den Eigenschaftsknoten "Wert" gern in Verbindung mit SubVIs verwende. Wenn im SubVI z.B. ein Variable editiert werden soll, braucht man normalerweise zwei Anschlüsse (Ein- und Ausgang) - oder aber nur einen Referenzanschuß.

Bei Dir würde ich sagen, es kommt alles darauf an, wie zeitkritisch Dein Programm ist. Die Verwendung vom Referenzen in den States bietet die Möglichkeit, ganz leicht Sub-VIs zu erstellen. Das würde ich dann auch machen. Das Programm wird übersichtlicher, weil besser modularisiert.

Die entscheidende Frage, die man hätte am Anfang stellen sollen, ist aber die: Warum nicht Shift-Register verwenden, um damit Lese- und Schreibzugriff auf eine Variable in allen States zu haben? Normalerweise ist das - und nichts anderes - die optimale, allgemein akzeptierte Lösung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Lokale Variablen eliminieren / Signale Zusammenfassen Philipp841 8 5.218 30.09.2019 09:51
Letzter Beitrag: Philipp841
  Keyboard Shortcut Eigenschaftsknoten(Property Node) Kanaille 4 3.430 14.06.2019 06:10
Letzter Beitrag: Kanaille
  property node ... wirklich langsam... gottfried 20 11.645 04.03.2019 09:45
Letzter Beitrag: rolfk
  Wie kann man Lokale Variablen sauber verpacken? Tobzn 10 7.777 04.03.2018 12:02
Letzter Beitrag: IchSelbst
  Property-node von Cluster in Sub-VI ändern LV_2017 2 4.085 05.10.2017 13:23
Letzter Beitrag: LV_2017
  Lokale Variable galilio 5 4.850 09.02.2017 22:20
Letzter Beitrag: Trinitatis

Gehe zu: