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 

Allgemeine Fragen zum besseren Verständnis



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!

30.08.2007, 10:00 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2007 10:19 von Lucki.)
Beitrag #2

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Allgemeine Fragen zum besseren Verständnis
Wenigstens Antwort auf 2 Fragen:
zu 1.)
Problematisch bei lokalen Variablen ist vor allem, daß es zu unerwarteten Resultaten kommen kann, da das Auslesen/Beschreiben manchmal nicht zu dem Zeitpunkt erfolgt, in dem der Programmierer das erwartet hatte. Deshalb die einschlägigen Beispiele für solches Verhalten studieren und verinnerlichen!
Eigenschaftsknoten sind noch langsamer als lokale Variable. Deshalb die Eigenschaft "Wert" statt lokaler Variablen nur verwenden, wenn der Eigenschaftsknoten ohnehin wegen anderer Eigenschaften aufgerufen wurde.
Was man möglichst vermeiden soll:
a) Von einer komplexen Variablen, beispielweise einem Array mit 100000den von Bytes oder einem ebensolchem Cluster, bedenkenlos ein oder mehrere lokale Variable erstellen.
c) noch schlechter ist es, wenn eine solche lokale Variable in der zeitkritischen Hauptausführungsschlefe verwendet wird. Man sollte also z.B. die einmalige Initialisierung über eine lokale Variable vornehmen und das Element selber in der Hauptausführungsschleife verwenden und nicht umgekehrt.
Man vermeide auch die bedenkenlose Verwendung von Eigenschaftsknoten in der Hauptausführungschleife. Es ist schlecht, z.B die Eigenschaft "sichtbar:true" immer wieder auszuführen, wo doch ein einziger Ausruf vor dem Schleifendurchlauf genügt hätte.

Es gibt Techniken - Benutzung von shift-Registern in Verbindung mit State machines - um lokale Variable ganz zu vermeiden. Es gibt Puristen, die mit so einem Apparat loszuschlagen, nur um ein oder einige lokale Variable in einer nicht zeitkritischen Anwendung zu umgehen. Dazu kann man nur sagen, daß in den Beispielen von NI solche Aufstände nicht gemacht werden, und das es von NI oder in mir bekannten Tutorials auch keine Empfehlung zur generellen Vermeidung von lokalen Veriablen gibt.

zu 2)
Das ist immer dann der Fall, wenn das Sub-VI nicht initialisierte Schleifenregister zu Daten-Zwischenspeicherung enthält. Beispiel: in einem Point-to-Point Filter VI bleibt der momentane Status des Filters gespeichert. Wenn das Filter-VI für unterschiedliche Kanäle aufgerufen wird, geht es in die Hose. In diesen Fall muß das Sub-VI auf "reentrant" gesetzt werden.
Ansonsten bestehen die Bedenken nicht. Nach meinen Erfahrungen ist irgendwie dafür gesorgt, daß zwei verschiedene Instanzen desselben SUB-VI nie gleichzeitig abgearbeitet werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Allgemeine Fragen zum besseren Verständnis - Lucki - 30.08.2007 10:00

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Dataflow Verständnis Beispiel 911tom 9 6.290 28.11.2017 07:54
Letzter Beitrag: GerdW
  Brauche Hilfe zum Verständnis von XControls Hasenfuss 0 2.633 19.02.2013 11:24
Letzter Beitrag: Hasenfuss
  Fragen zu PID Regler belu003 3 6.363 18.08.2010 17:50
Letzter Beitrag: Lucki
  Newbie-Fragen zur GUI Tito 3 5.156 18.06.2010 10:45
Letzter Beitrag: GerdW
  Allgemeine Frage zu Wavelets/Kreuzkorrelation padbergus 0 3.812 12.04.2010 10:52
Letzter Beitrag: padbergus
  Allgemeine Frage bzgl. Auswertung gerydieschnecke 11 11.059 14.10.2009 08:16
Letzter Beitrag: IchSelbst

Gehe zu: