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 

Fehlermeldung "Speicher voll"



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!

12.07.2010, 14:03
Beitrag #1

bavariia Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jun 2010

8.6
2010
de

81xxx
Deutschland
Fehlermeldung "Speicher voll"
Hallo,

ich habe ein Programm, mit dem Messwerte gelesen, editiert und weggeschrieben werden sollen. Doch jetzt kann ich das Programm nicht mehr vollständig ausführen, weil LV jedes mal abbricht mit der Meldung

Nicht genügend Speicher zum Abschließen dieser Operation

Fehler 2 ist bei Eigenschaftsknoten (arg 1) in gesamt1207.vi aufgetreten

Mögliche Ursachen:

LabVIEW: Speicher ist voll.
=========================
NI-488: Keine Listener für GPIB gefunden.

Während ich das Programm ausführe geht die CPU Auslastung teilweise auf 100%. Kann das daran liegen? Hat jemand eine Ahnung wie ich das Problem beheben kann? Die Meldung treibt mich noch in den Wahnsinn...

Im Anhang das VI. Lv86_img

Vielen Dank schon mal für eure Hilfe.


Angehängte Datei(en)
Sonstige .vi  gesamt1207.vi (Größe: 158,43 KB / Downloads: 443)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.07.2010, 14:37 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 15:01 von oenk.)
Beitrag #2

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
Fehlermeldung "Speicher voll"
' schrieb:Die Meldung treibt mich noch in den Wahnsinn...
Dein Programm treibt mich in den Wahnsinn Cool
Ich hab leider nur zwei 17'' Monitore, dh ich kann dein Programm nicht gescheit sehen.
Versuche dennoch dir zu helfen:
Wo initialisierst du deine Hardware? Hast du tatsächlich 10 Kanäle und möchtest davon die Daten oder hast du einen Kanal von dem du gerne die ersten 10 Samples hättest? Jenachdem lässt sich in der oberen Schleife etwas optimieren.
Auch würde ich in der oberen Schleife dann auch mal den xy-Graphen rausnehmen. Ein update des GUIs jede Itteration braucht viel zu viel Resource. Ich würde niemals die Datenaufzeichnung und deren Darstellung in einem Task/Process/Schleife ablaufen lassen. Des weiteren wird deine obere Schleife im 2ms Takt ausgeführt. Ist das wirklich notwendig?
Ich denke du solltest erst mal noch hier spezifizieren was du wie aufnehmen möchtest (zB 10 Kanäle mit 20kSamples/sec pro Kanal)
Erst dann lässt sich dein Code mehr oder minder verstehen....

Gruess,
Christian

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 14:38 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 14:58 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Fehlermeldung "Speicher voll"
Hallo bavariia,

du lernst es eben auf die harte Tour:
LabVIEW verwaltet deine Daten nicht in Variablen, sondern in den Drähten! Und lokale "Variablen" (wie auch "value"-PropertyNodes) erzeugen jedesmal eine zusätzliche (!) Datenkopie.

Du sammelst deine Daten für den Graph, indem du wiederholt PropertyNodes liest und schreibst. Abgesehen, dass das langsam ist - du müllst dir auch deinen Speicher voll. Verwende stattdessen ein Shiftregister. Außerdem solltest du die Datenmenge reduzieren. Dein Graph hat nur ~400 Pixel Breite: wie sinnvoll ist da die Darstellung von tausenden Punkten?

@Christian:
Stell dir dieses VI auf 1280×800 Pixeln vorSad

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 14:51 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Fehlermeldung "Speicher voll"
Die Stelle hier frisst auch Speicher:
   

Autoindexing eines 3D-Array, ohne dass es weiterverendet wird.Hmm

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2010, 10:01
Beitrag #5

bavariia Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jun 2010

8.6
2010
de

81xxx
Deutschland
Fehlermeldung "Speicher voll"
Hallo,

erstmal vielen Dank für die schnellen Antworten!!! Wie gesagt ich bin totaler LV- Anfänger.... Ressourcensparend Programmieren ist wohl noch nicht mein Ding. Ich werd jetzt mal versuchen eure Verbesserungsvorschläge einzubauen, vielleicht gehts ja dann. Wie könnte ich das VI denn "kleiner" machen? Also mit SubVIs... Aber braucht das dann nicht noch mehr Speicher, wenn diese ständig aufgerufen werden müssen?

@oenk: Ich brauche 10 Kanäle, weil ich 10 Kraftsensoren habe. Die Sensoren, die die Kraft in die selbe Richtung messen, werden miteinander addiert und nein, ich kann das nicht Hardwaretechnisch so umbauen, dass ich gleich nur einen Sensor für eine Richtung habe. Meine Task Konfiguration: kontinuierlicher Erfassungsmodus mit einem Sample und 200 Hz. Wenn ich den Graph aus de rSchleife rausnehme, bekomme ich ja erst am Ende der Messung das gesamte Bild, ich brauche aber tatschlich den Verlauf des Signals immer aktuell...
@Gerd: wie mache ich das mit einem Shift register?

Grüße
bavariia
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.07.2010, 10:15
Beitrag #6

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
Fehlermeldung "Speicher voll"
' schrieb:Also mit SubVIs... Aber braucht das dann nicht noch mehr Speicher, wenn diese ständig aufgerufen werden müssen?
Wenn du das Datenfluss prinzip nicht verletzt (also die Daten von deinem HauptVi ins SubVis mit Input und Output connectors versehst und innerhalb des SubVis die Daten nicht an lokale Variablen und/oder Property Nodes übergibst) hast du keinen Speicherverlust. Der LabVIEW Compiler optimiert dir das dann schon...Du kannst dir das ganze auch in eine Statemachine packen, dann wird es auch übersichtlicher (-> LabVIEW -> New -> VI -> From Template -> Design Patterns -> Standard State Machine)

' schrieb:Meine Task Konfiguration: kontinuierlicher Erfassungsmodus mit einem Sample und 200 Hz.
Wirklich nur ein Sample pro Aufruf alle 1/200Hz? Macht es da nicht mehr Sinn 200 Samples auf einmal Aufzuzeichnen und dann alle Sekunde das GUI upzudaten? Und wo wird die HW initialisiert? Du hast nirgends auf dem Blockdiagramm ein DaqMx Create Channel und Config Channel (der tatsächliche Namen des Vis kann abweichen...)

' schrieb:Wenn ich den Graph aus de rSchleife rausnehme, bekomme ich ja erst am Ende der Messung das gesamte Bild, ich brauche aber tatschlich den Verlauf des Signals immer aktuell...
OK, dann schau dir mal das Consumer/Producer Pattern an (-> LabVIEW -> New -> VI -> From Template -> Design Patterns -> Producer/Consumer Design Pattern (Data)). Dort wird dir gezeigt, wie du Code parallel abarbeiten lassen kannst mit verschiedener Priorisierung der Tasks...

viel Erfolg,
Christian

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.07.2010, 10:51 (Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2010 13:21 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Fehlermeldung "Speicher voll"
Hallo bavariia,

ergänzend zu oenks Hinweisen:
Wenn ich mich nicht arg täusche, hast du da einen erheblichen Speicherbedarf aufgrund deiner ArrayBuild-Benutzung (s. Attachment).

Um den Speicherbedarf zu reduzieren, ist es auch immer sinnvoll, vernünftige Datentypen einzusetzen. Du hattest diverse coercion dots in deinem VI - die brauchen jeweils Speicher zum umwandeln zwischen Datentypen!

Lv86_img


Angehängte Datei(en)
Sonstige .vi  gesamt1207.vi (Größe: 29,84 KB / Downloads: 352)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  OHNE VI: Arbeitsspeicher läuft voll ddrayss 8 6.452 12.10.2019 17:05
Letzter Beitrag: ddrayss
  Arbeitsplatz läuft voll kompass453 6 4.404 05.09.2017 14:10
Letzter Beitrag: kompass453
  Speicher voll / Programmaufbau yapete 2 4.500 13.12.2016 16:21
Letzter Beitrag: jg
  Arbeitsspeicher läuft voll Michael1984 10 10.762 04.03.2015 09:45
Letzter Beitrag: Y-P
  Speicher läuft in Statemachine voll (großes Array...) Peter04 5 7.768 30.11.2013 22:42
Letzter Beitrag: D_Sev
  Funktion Systembefehl ausführen gibt Fehler "Speicher voll" aus. vogster 6 8.313 17.11.2013 16:55
Letzter Beitrag: Lucki

Gehe zu: