LabVIEWForum.de
hilfe, finde den fehler nicht. - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: hilfe, finde den fehler nicht. (/Thread-hilfe-finde-den-fehler-nicht)



hilfe, finde den fehler nicht. - n00b32 - 23.06.2011 20:42

Hallo,

ich hab ein Programm geschrieben. Das Problem ist, dass der Y-Wert nach der Rampe auf Null sinkt und nicht konstant bleibt. Der Verlauf wird aus der Textdatei (Time.txt) geladen. Ich finde aber den Fehler nicht.Vlt kann mir jemand helfen.

Danke.

Mfg

n00b32


RE: hilfe, finde den fehler nicht. - jg - 23.06.2011 22:18

Ach Herr je, Race-Condition hoch 5.
Ich kann nur dringend raten, die ganzen lokalen Variablen rauszuschmeissen.
Der "Nullwert" entsteht an dieser Stelle:
[attachment=34365]
Da kommt einmal Null raus, und damit multiplizierst du.
Was willst du damit überhaupt erreichen? Hmm

Gruß, Jens

P.S.: Bitte das nächste Mal einen sinnvollen Thementitel wählen. Rulez


RE: hilfe, finde den fehler nicht. - n00b32 - 23.06.2011 23:18

@jg

Danke. Problem gelöst.

Was ist so schlimm an den lokalen Variablen?


RE: hilfe, finde den fehler nicht. - jg - 24.06.2011 08:56

Im Prinzip ist nichts schlimm an lokalen Variablen.

Schlimm ist aber der extensive Einsatz, wie in deinem Bsp., mit parallelem Schreiben und Lesen innerhalb einer Schleife, und das nur, um mglw. das Ziehen von Drähten zu vermeiden.

Bedenke: LabVIEW führt im Prinzip jedes Codesegment, zwischen dem keine Datenflussabhängigkeit besteht, parallel aus. Zumindest kann man nicht vorhersagen, welches Codesegment zuerst ausgeführt wird. Es kann also in deinem Bsp gut sein, dass du aus einer lokalen Variable einen Wert ausliest, der erst später gesetzt wird. Und da nützt es auch nichts, Code im BD von links nach rechts anzuordnen. Das ist das Stichwort Race-Condition!

Außerdem bedeutet die Verwendung einer lokalen Variable immer, dass eine Kopie der Daten im Speicher angelegt wird. Wenn du mal mit richtig großen Arrays arbeitest, ist das natürlich ungünstig.

Gruß, Jens


RE: hilfe, finde den fehler nicht. - GerdW - 24.06.2011 08:59

Hallo noob,

beim nächsten Mal bitte nicht nur einen ordentlichen Thread-Titel wählen, sondern auch ein VI anhängen oder Links zu älteren Threads einfügen!
Als "Fremdleser" sieht man keinen Zusammenhang zwischen Beitrag #1 und #2...

lokale Variablen:
- widersprechen dem Programmierstil von LabVIEW (aka DATAFLOW)
- erzeugen ruck-zuck RaceConditions
- erzeugen Datenkopien im Speicher (und damit schnell mal ein OutOfMemory-Problem)
- ...


RE: hilfe, finde den fehler nicht. - jg - 24.06.2011 09:02

(24.06.2011 08:59 )GerdW schrieb:  Hallo noob,

beim nächsten Mal bitte nicht nur einen ordentlichen Thread-Titel wählen, sondern auch ein VI anhängen oder Links zu älteren Threads einfügen!
Als "Fremdleser" sieht man keinen Zusammenhang zwischen Beitrag #1 und #2...
@GerdW: gestern Abend war ein VI hochgeladen

@noob: Was soll das? VI in deinem Beitrag gelöscht? Jetzt ist der gesamte Beitrag für die Katz und kann eigentlich gelöscht werden. Das ist nicht der Sinn des Forums.

Gruß, Jens