LabVIEWForum.de
Dynamische lokale Variable? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Dynamische lokale Variable? (/Thread-Dynamische-lokale-Variable)

Seiten: 1 2 3


Dynamische lokale Variable? - Achim - 20.08.2007 17:00

' schrieb:Offtopic Frage: Das LabVIEW-Programm soll bis zu 50.000 Zyklen fahren, die Gesamtzeit kann dann etwa 2 Monate sein. Wie verhält sich LabVIEW im bezug auf Variablen und Arbeitsspeicher? Ist mit problemen zu rechnen, die erst bei längerer laufzeit auftreten? Vorallem im bezug auf das Timing und co.?

Pass auf, dass du Arrays nicht ins unermessliche anwachsen lässt und schließ alle Referenzen wieder, die du zur Laufzeit (d.h. dynamisch) öffnest!


Dynamische lokale Variable? - Lucki - 20.08.2007 17:07

' schrieb:Meine Aufgabenstellung umfasst das Auslagern von öfterverwendetem Code in SubVIs, macht ja auch sinn wenn an verschiedenen Stellen etwas manipuliert werden soll. Ich finde es ist einfacher eine Numeric an ein SubVI zu übergeben als jedesmal eine lokale Variable zu verarbeiten. Vorallem wenn der Code einmal ergänzt wird spart man sich mit einem subvi doch erhebliche Zeit.

Bei Übergabe an ein SUB-VI kann man von verschiedenen VIs auf die Variable zugreifen, wie das sonst nur mit einer globalen Variablem möglich ist. Das Sub-VI nennt man "Funktionale Globale Variable". ---> Begriff im LFV suchen

Zitat:Offtopic Frage: Das LabVIEW-Programm soll bis zu 50.000 Zyklen fahren, die Gesamtzeit kann dann etwa 2 Monate sein. Wie verhält sich LabVIEW im bezug auf Variablen und Arbeitsspeicher? Ist mit problemen zu rechnen, die erst bei längerer Laufzeit auftreten? Vorallem im bezug auf das Timing und co.?

Die Speicherallocation in LV erfolgt dynamisch. Immer wenn ich ein Array in seiner Größe verändere wird der Speicher neu organiseirt und das dauert um so länger, je größer das Array wird. Es gibt Techniken der Vorinitialisation von Arrays, um das Immer-langsamer-werden eines Programms in einer Schleife zu verhindern.

Von Begrenzungen in LV weiß ich nichts. Der Schleifenzähler in while-Schleifen ist ein I32 Integer, das ist max etwa 50000*50000 und nicht 50000. Und wenn die höchste Zahl erreicht werden sollte, dann passiert auch weiter nichts als daß der Zahler auf dieser höchsten Zahl stehenbleibt und sich bei weiteren Durchläufen nicht mehr erhöht.


Dynamische lokale Variable? - Benjamin Fuchs - 21.08.2007 06:54

Ich achte eigentlich schon immer darauf mir vorher gedanken zu machen welchen Datentyp eine Variable oder ein Array hat und wie groß bzw. wieviele Elemente es aufnehmen soll.

Die Referenz im Hauptprogramm habe ich nur einmal und übergebe sie an die entsprechenden Stellen an denen ich sie brauche. Habe also keine dynamischen Referenzen. Wenn ein SubVI Beendet wird, hoffe ich mal, dass LabVIEW den gesamten Speicher wieder freigibt.

Vielen Dank für die ganzen HinweiseSmile


Dynamische lokale Variable? - Lucki - 21.08.2007 07:40

' schrieb:Vielen Dank für die ganzen HinweiseSmile
Nichts für ungut, aber wenn ich hier mal offen reden darf: Ich vermute mal, daß der Rat, lokale Variable unbedingt zu verweiden und statt dessen Sub-VIs zu verwenden, aus derselben Quelle kommt wie die andere faule Information, wonach LV nur max 50000 Zyklen oder 2 Monate läuft. Von dort solltest Du dich mal abnabeln. Halter Dich an das LVF, das ist wirklich viel besser als solche zweifelhaften Quellen!


Dynamische lokale Variable? - Benjamin Fuchs - 21.08.2007 08:44

Deshalb frag ich ja auch hier im Forum nachSmile

Beim Einstieg in eine neue Programmiersprache muss man erstmal die guten und die schlechten Informationsquellen filtern.