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 

Speicherauslastung



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!

11.08.2009, 14:06
Beitrag #1

Andy.B Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2009

8.6
2003
de

70174
Deutschland
Speicherauslastung
Hallo zusammen,

mein Problem dreht sich um die Speicherauslastung!
Ich lese Daten aus einem OPC aus und schreibe diese dann in 10 Sekundenschritten, bzw. 5 Minutenschritten in eine Textdatei. Es wird täglich eine neue Datei erzeugt und mit Daten gefüllt. Bei diesem Vorgang allerdings erhöht sich mit jedem mal Daten auslesen und schreiben die Speicherauslastung um ein paar KB, bis das Programm mit dem Fehler 2147024882 "Speicherende erreicht" abbricht.

Als Gegenmaßnahmen habe ich bereits alle Unterprozesse in SubVI's verpackt und diese mit der Funktion "Speicherfreigabe anfordern" bestückt, es hat jedoch alles bisher nichts gebracht. Eigentlich sollte doch LabVIEW den zugewiesenen Speicher selbt verwalten und bei nichtgebrauch auch wieder feigeben?!

Hat irgendmemand eine Idee zu diesem Problem, ich wäre sehr glücklich über eine Hilfestellung! Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.08.2009, 14:10
Beitrag #2

HAL Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2009

2010 SP1
2006
DE

91085
Deutschland
Speicherauslastung
Hi Andy,

NI-Support schon mal angerufen?

Gruss HAL
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2009, 14:11
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Speicherauslastung
Wie gehts du beim Datei öffnen/lesen/schreiben vor?

Sourcecode wäre nicht schlecht zur weiteren Hilfe...

Ich tippe mal: Du verwendest nur Read und Write VIs, mit Pfad-Angabe am Anschluß, aber du schließt die Files nicht nach den Lese-/Schreibvorgängen mit eine Close File!?

Dann bleiben da lauter offene File-Handles übrig, die dir den Speicher vollmüllen.

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
11.08.2009, 14:38
Beitrag #4

Andy.B Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2009

8.6
2003
de

70174
Deutschland
Speicherauslastung
... das habe ich zuerst in der Tat nicht, allerdings bin ich dann auch daruf gekommen. Ich erstelle die Datei wie von dir beschrieben, dann gebe ich die Referenz weiter, dann gehts ab in ein SubVI und dort wird die Datei nach Beendigung der Schleife (Mitternacht) geschlossen.

Daran sollte es also nicht liegen. Ich lade mal das VI hoch, dauert allerdings noch ein wenig, muss es erst vom Firmennetzwerk runterladen, wo das Teil gerade läuft.

Schon mal vielen Dank für die Hilfe!
Andy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2009, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2009 19:48 von jg.)
Beitrag #5

Andy.B Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2009

8.6
2003
de

70174
Deutschland
Speicherauslastung
Hallo Jens,

ich habe dir mal das VI mit den SubVI's hochgeladen. Das VI beinhaltet ein ActivX Control, weiß nicht ob das bei dir so läuft, aber das Blockdiagramm kannst du dir mit Sicherheit ansehen.

Über eine Antwort würde ich mich freuen,
Gruß Andy

Lv86_img


Angehängte Datei(en)
Sonstige .zip  OPC_auslesen_Sub_1.zip (Größe: 91,27 KB / Downloads: 260)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2009, 20:46 (Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2009 07:48 von jg.)
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Speicherauslastung
Erst mal generelle Kritik:

Schäm dich, einen solchen Spaghetti-Code hier hochzuladen.Noe
Schon mal was vom LV-Style-Guide gehört? Von links nach rechts programmieren? Dabei hast du LabVIEW 8.6, und bei deinen VIs bringt das automatische Aufräumtool (Strg-U) schon eine große Verbesserung.

Dann mal zur möglichen Fehlerquelle: Du öffnest andauernd neue Referenzen zu Objekten deiner ActiveX-Klasse, ohne diese, nachdem du sie nicht mehr benötigst, mit einem Close-Befehl zu schließen.
Das andauernde Fileposition-VI brauchst du auch nicht, schließlich hältst du den File dauernd per Refnum offen, und somit steht der File-Pointer immer an der Position, an der er nach der letzten Schreib-Operation aufgehört hat, zu schreiben.

File schließen würde ich nach Beendigung der Schleife machen, nicht innerhalb der Schleife, du erzeugst nur einen unnötigen Schreibfehler durch Nichtbeachtung des Datenflußes (Erst schließt du File, dann kommt noch eine SchreiboperationNoe)

So, 2 deiner Sub-VIs habe ich mal umgebaut, das mit den Referenzen schließen musst du dann noch im Main-VI und den beiden anderen nachziehen:
Lv86_img

Sonstige .vi  OPC_auslesen_Sub_1.vi (Größe: 83,98 KB / Downloads: 306)


Sonstige .vi  OPC_auslesen_Sub_4_in_1.vi (Größe: 9,32 KB / Downloads: 264)


Aber das mach mal selber.

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
Anzeige
12.08.2009, 06:56
Beitrag #7

Andy.B Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2009

8.6
2003
de

70174
Deutschland
Speicherauslastung
Hallo Jens,

harsche, aber ich denke mal verdiente Kritik. Ich bin nicht der geübte LV anwender und kämpfe schon mal mit der Übersicht in meinen eigenen VI's. Die von dir umgebauten VI's sehen da schon ganz anders aus. Ich danke dir schon mal dafür und bau das jetzt bei mir ein. Mal sehen, ob es dann was an meinem Speicherauslastungsproblem ändern wird.

Schöne Grüße und danke nochmals für die Tipps,
Andy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.08.2009, 07:59
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Speicherauslastung
' schrieb:harsche, aber ich denke mal verdiente Kritik.
Da habe ich hier schon härter kritisiert...
' schrieb:Ich bin nicht der geübte LV anwender und kämpfe schon mal mit der Übersicht in meinen eigenen VI's.
Trotzdem hätte ich von jemand mit laut Profil Erfahrung seit 2003 etwas mehr erwartet...
Außerdem gibt's ja neuerding "Strg-U":hehe:
' schrieb:Die von dir umgebauten VI's sehen da schon ganz anders aus.
Dank Aufräumtool und etwas manueller Nachbearbeitung...

Gruß, Jens

P.S.: Und nicht vergessen, jede Refnum schließen, aber erst, wenn du sie nicht mehr brauchst!

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.08.2009, 14:54
Beitrag #9

Andy.B Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2009

8.6
2003
de

70174
Deutschland
Speicherauslastung
Hallo Jens,

mittlerweile läuft es bezüglich der Speicherauslastung prima, der Wert bleibt im Taskmanager konstant. Dank dir habe ich jetzt auch ein "aufgeräumtes VI" und ich werde auch nur noch solche hier hoch laden.
Allerdings hätte ich noch eine weitere Frage die Problematik liegt allerdings woanders. (Sollte ich dann ein neues Thema eröffnen??)
Es geht um die Einhaltung des Zeitintervalls für die Abfragung des OPC Servers. Mir läuft das schon nach kurzer Zeit davon, interessanterweise nicht reproduzierbar gleich, sondern immer anders. Wie du gesehen hast versuche ich das mit einer zeitgesteuerten Schleife, allerdings mit mäßigem Erfolg.
Gibt es hierfür elegantere Standardlösungen, das Problem müsste ja eigentlich oft auftauchen?

Schöne Grüße nochmals und Danke für die Hilfe bezüglich des Speichers.
Andy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: