12.07.2005, 12:11
|
Oliver Listing
LVF-Freak
Beiträge: 721
Registriert seit: Sep 2004
2012 und 2014 (Windows und Linux)
1998
EN
22844
Deutschland
|
Rechner am Anschlag? Oder LabVIEW?
marker schrieb:Das Problem besteht ja dann wahrscheinlich bei sämtlichen Referenzen (Melder, Semaphoren, Rendezvous, ...).
Sehe ich auch so...
Gruß
Oliver
|
|
|
12.07.2005, 12:33
|
tosi
LVF-Grünschnabel
Beiträge: 32
Registriert seit: May 2005
kA
|
Rechner am Anschlag? Oder LabVIEW?
@marker
den case "Aufzeichnung bei Änderung des Pegels" habe ich die Tage nicht mehr benutzt - das kanns nicht sein. Das Demo VI von Oliver ist eindrücklich - aber so kann ich das (leider) nicht im Taskmanager beobachten, wenn ich mein VI ausführe. Muß mir wahrscheinlich mal länger Zeit nehmen. Inner viertel Stunde verändert sich der nicht merklich...aber irgendwann passierts - naja. Ein anderes Problem beschäftigt mich auch noch, aber das poste ich mal lieber bei DAQ.
|
|
|
12.07.2005, 12:46
|
Oliver Listing
LVF-Freak
Beiträge: 721
Registriert seit: Sep 2004
2012 und 2014 (Windows und Linux)
1998
EN
22844
Deutschland
|
Rechner am Anschlag? Oder LabVIEW?
Hi tosi,
die Demo sorgt ja auch für einen "sichtbaren" Speicherverbrauch.
In meinem Programm habe ich vielleicht im Sekundentakt eine Queue benutzt.
Entsprechend schleichend war der Speicherverbrauch, entsprechend lange war die Fehlersuche...
Hatte mehrere Male die verschiedensten Dinge umprogrammiert, um den Fehler auszuschließen
Also starte dein VI und schreiben den Speicherstand auf.
Dann tue nichts anderes mit dem Rechner, bis deine Fehlermeldung kommt und vergleiche dann den aktuellen Speicherstand.
Letztendlich teile uns das Ergebnis mit...
Gruß Olli
|
|
|
12.07.2005, 20:15
|
rolfi
LVF-Gelegenheitsschreiber
Beiträge: 95
Registriert seit: Mar 2005
kA
|
Rechner am Anschlag? Oder LabVIEW?
marker schrieb:Hi tosi,
hast Du die Speicherprobleme wenn Du "Aufzeichnung bei Änderung des Pegels" gewählt hast?
Hier benutzt Du die Funktion "In Array einfügen" und als Index den Schleifenzähler. Das Array wird daher ziemlich groß und belegt Dir wohl mit der Zeit den ganzen Speicher.
Gruß,
Marko
Hi Marker,
wie lösche ich am besten ein Array in regelmäßigem Takt, bzw. wie kann ich einem Array nur eine bestimmte Größe (Speicherbereich) zuordnen, damit es sich selber wieder überschreibt?
Danke,
Rolf
|
|
|
13.07.2005, 07:07
|
marker
LVF-Gelegenheitsschreiber
Beiträge: 226
Registriert seit: Feb 2005
8.2.1
2002
kA
Deutschland
|
Rechner am Anschlag? Oder LabVIEW?
Hi rolfi,
wenn Du ein Array der erfoderlichen Größe initialisierst und dann die Funktion "Teilarray ersetzen" verwendest, kannst Du sicher sein, dass Dein Array niemals größer wird. Mit dieser Funktion werden die alten Daten durch die neuen Daten an den angegebenen Indizes ersetzt (Arraygrösse bleibt gleich).
Die Funktion "In Array einfügen" ist sehr komfortabel für dynamische Arrays, sollte aber nur mit Vorsicht verwendet werden, da bei Fehlanwendung die Gefahr besteht, dass die Arraygrösse ins unermessliche anwächst. Mit dieser Funktion werden neue Daten an den angegebenen Indizes eingefügt, die alten Daten werden nach hinten verschoben (Array wird vergrössert).
Gruß,
Marko
"Make it simple, make it strong!"
|
|
|
13.07.2005, 20:55
|
rolfi
LVF-Gelegenheitsschreiber
Beiträge: 95
Registriert seit: Mar 2005
kA
|
Rechner am Anschlag? Oder LabVIEW?
Danke
Gut zu wissen. Werd ich bei nächster Gelegenheit gleich mal testen.
Wenn ich allerdings Daten über die RS232 empfange und diese mit der Funktion "Tabellenstring zu Array" weiterverarbeite. Die Daten werden gleich weiter verarbeitet und nirgends in einem Gesamtarray gespeichert. Füllt mir dieses Array ebenfalls den Speicher (glaube schon) oder verwirft LV die Daten nach bestimmten Zeitperioden?
lg,
rolf
|
|
|
15.07.2005, 07:26
|
marker
LVF-Gelegenheitsschreiber
Beiträge: 226
Registriert seit: Feb 2005
8.2.1
2002
kA
Deutschland
|
Rechner am Anschlag? Oder LabVIEW?
Hi rolfi,
die Größe eines Arrays das aus einem Tabellenstring erzeugt wird, ist abhängig von der Größe des Strings.
Wird der String immer größer wird auch das Array immer größer.
Wird der String gelöscht ist das resultierende Array leer.
Gruß,
Marko
"Make it simple, make it strong!"
|
|
|
15.07.2005, 08:16
|
tosi
LVF-Grünschnabel
Beiträge: 32
Registriert seit: May 2005
kA
|
Rechner am Anschlag? Oder LabVIEW?
Hallo zusammen,
ich hab bissel rumprobiert und bin jetzt zum Schluß gekommen, dass nicht mein Speicher das Problem ist sondern der Puffer (Datenerfassung). Den Fehler kann ich abfangen und den Puffer löschen. Leider gehen dabei Daten verloren, aber Puffer löschen ohne Datenverlust geht ja wohl nicht. Mein Dilema ist jetzt entweder einen großen Puffer zu verwenden und die Schleife zu timen, oder eine hohe CPU-Last (>50%) zu haben...naja.
Danke für eure Hilfe.
Gruß, Tosi
|
|
|
15.07.2005, 08:45
|
marker
LVF-Gelegenheitsschreiber
Beiträge: 226
Registriert seit: Feb 2005
8.2.1
2002
kA
Deutschland
|
Rechner am Anschlag? Oder LabVIEW?
rolfi schrieb:Der String bleibt von der Zeilenlänge immer gleich. Er wird, wie bei einem Array, im Takt durch eine weitere Zeile vergrößert/ergänzt.
Wenn der String immer um eine Zeile verlängert wird, wird das Array natürlich auch immer größer.
Warum übergibst Du nicht immer nur den aktuellen String? Wenn ich Dich richtig verstanden habe brauchst Du die alten Daten ja nicht mehr.
Marko
"Make it simple, make it strong!"
|
|
|
| |