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 

Variablen in LV



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!

28.03.2006, 17:42
Beitrag #1

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Variablen in LV
Hallo Leute,

eigentlich ist dieser Topic um den i2dx ein wenig zu ärgern Lol.

Na ja, wer kann mir sagen welche Nachteile man bei der Verwendung von Variablen hat?

Ich selber nutze sie ganz selten, aber sie sind ja da!!!
Ausserdem ist es das grundlegende Konzept jeder textbasierten Programmiersprache. Ich habe noch nie ein C-Programm ohne Variablen gesehen.

In LV dagegen kann man die Variablen vermeiden, aber es ist die leichteste Methode zwischen den Tasks zu kommunizieren, wobei ich auch hier schon auf Queues und Notifiers übergangen bin.

Gruss, Eugen
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2006, 18:00
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Variablen in LV
lol,

mei, eigentlich ärgert mich das nicht.

das problem, dass mit lokalen variablen auftreten kann, sind die s.g. race conditions, d.h. man kann sich unter gewissen umständen nicht sicher sein, in welcher reihenfolge im Programm die Variablen gelesen bzw. geschrieben werden. ich glaub, da gibts sogar ein demo zu auf ni.com, wo man das sehr deutlich sieht.

textorientierte programmiersprace - GENAU DAS ist der punkt! in LV ist der draht die variable. Lokale variablen sind eigentlich dafür gedacht, dass man unter bestimmten voraussetzungen das datenflußprinzip umgehen kann, wenn z.B. der einsatz einer lokalen variable deutlich weniger programmieraufwand ist, als eine "korrekte" implementierung nach dem datenflussprinzip ... du versuchst ja auch nicht in C plötzlich drähte zu ziehenWink

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2006, 19:03
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Variablen in LV
Dem Assembler ist das Datenflussprinzip egal, die Daten werden sowieso über Speicher ausgetauscht.

Übrigens, hast du schon mal kompilierte und gelinkte LV-VIs in Assembler gesehen? Würde mich interessieren wie es dort aussieht.

Und ich hatte bis jetzt keine Probleme mit race conditions, oder ich habe es nicht mitbekommen. Ausserdem verwende ich in kritischen Fällen Semaphoren, die genau das verhindern.

Gruss, Eugen
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2006, 22:10
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Variablen in LV
naja, LV wird intern natürlich auch in Maschinencode umgewandelt, aber wer kann das lesen? Ich hab ja schon Probleme mit dem ASM-Code auf nem AVRWink

Zitat:Und ich hatte bis jetzt keine Probleme mit race conditions, oder ich habe es nicht mitbekommen. Ausserdem verwende ich in kritischen Fällen Semaphoren, die genau das verhindern.

klar geht das mit semaphoren, aber es ist halt zusätzlicher programmieraufwand. Ich sag auch nicht, dass es mit locals nicht geht. Ich sag nur, dass jede lokale variable gegen das datenflussprinzip verstößt.

Ich verwende auch locals und - man höre und staune - die oberevil stacked sequenesWink. Bei einem dialog, in dem man irgendwelche daten eintragen kann, verwende ich z.B. die locals um die controls mit dem gewünschten (!= Control default value!) default-wert zu initialisieren. Und dafür verwende ich eine stacked sequence, die initialisierung findet dann im rahmen 0 statt ...

ich bin halt der meinung, man sollte keine locals verwenden, wenn man es genausogut mit dem datenflussprinzip erledigen kann. wenn man einmal dran gewöhnt ist, passiert das auch eigentlich von selbst. Ist halt immer ein Problem erstmal umzudenken, wenn man von C kommt ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: