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!
ich bin inzwischen am verzweifeln, da ich schon seit ein paar Tagen an diesem Problem sitze. Ich hab ein etwas komplexeres VI gebastelt (mein erstes Programm), welches immer mehr Arbeitsspeicher in Anspruch nimmt. Dies führt nach einiger Zeit dazu, dass das Programm abstürzt.
Am Besten sieht man dies, wenn man den Burst Modus auswählt und hiernach die Anzahl der Bursts auf z.B. 4000 stellt und auf Start klickt. Im Task-Manager von Windows steigt der Bedarf immer weiter an.
Dies geschieht auch, wenn man nicht auf Start klickt. Nur dauert es dann etwas länger.
Am Controller.vi liegt es nicht, das habe ich schon getestet indem ich ein leeres VI eingebunden habe.
Eventuell weiß ja jemand von Euch etwas.
Vielen Dank!
LabVIEW Version ist 8.6
VI.zip (Größe: 519,77 KB / Downloads: 236)
den Thread habe ich schon gelesen, jedoch weiß ich nicht genau, wo ich da bei mir ansetzen sollte. Vielleicht fällt ja einem beim drüberschauen direkt ein "Anfängerfehler" ins Auge.
' schrieb:jedoch weiß ich nicht genau, wo ich da bei mir ansetzen sollte.
Na, zumindest schon mal hier: Überall, wo ein "Melder/Queue anfordern" steht gehört auch ein "Melder/Queue freigeben" hin. Alles, was erzeugt wird, muss auch wieder gelöscht werden. Das gilt natürlich auch für Melder/Queue.
Außerdem:
In Burst.VI hast du eine While-Schleife, in der du mit jedem Schleifendurchgang diverse Tasks erzeugst, bearbeitest und wieder löscht. Das Erzeugen und Löschen muss man aber nur ein einziges Mal machen. Außerhalb der Schleife. Das würde reichen. Ob das ständige Erstellen/Löschen Einfluß auf den Speicherbedarf hat, weiß ich jetzt nicht. Auf jeden Fall es es außerst Ineffezient.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
15.09.2009, 05:58 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2009 06:11 von rasta.)
Hallo,
schau mal in den unteren beiden While-Schleifen des "US control.vi", da gibt es ein SettingsSubvi jeweils in beiden
While-Schleifen. Wenn Du dieses öffnest eine Probe am Queue Refnum Out legst siehst Du das
ständig neue Queue Referenzen erzeugt werden.
@Rasta
Also im Controller.vi habe ich die beiden SubVIs nun außerhalb der Schleife angesiedelt. Hierdurch werden sie nur einmal aufgerufen. Wie legt man denn eine "Probe" an?
@IchSelbst
Ich weiß nicht genau, wie ich das terminieren vornehmen soll. Hast Du eventuell hierzu ein Beispiel?
Den Task habe ich nun außerhalb der Schleife erstellt, jedoch hat dies keinen Einfluss auf den Speicher.
Linksklick auf Leitung, mit Rechtsklick Kontextmenü öffnen. Dort "Sonde" (oder auf Englich wohl "Probe") anklicken.
Zitat:Ich weiß nicht genau, wie ich das terminieren vornehmen soll. Hast Du eventuell hierzu ein Beispiel?
Beispiel nicht.
Aber: In der Palette, in der du auch das Element "Melder anfordern" gefunden hast, gibt es diverse andere Melder-spezifische Elemente. Eines davon ist "Melder freigeben" (oder so ähnlich). Das setzt du einfach nach dem letzten Element hin, das was mit dem Melder macht. Und vergiss die Verbindung mit der Melder-Referenz (das ist die grünliche Leitung) nicht.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).