Retainspeicher verbratucht (viel) mehr als erwarte

Curby

Level-1
Beiträge
29
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgenden Speicher definiert:

Code:
VAR_GLOBAL CONSTANT
    n:INT:=300;       
END_VAR

VAR RETAIN PERSISTENT
    Arr1 AT%MB0:    ARRAY[1..n] OF BOOL; 
    Arr2 AT %MB500:    ARRAY[1..n] OF BOOL;
    Arr3 AT %MB1000: ARRAY[1..n] OF BOOL;
    Arr4 AT %MB1500 : ARRAY[1..n] OF BOOL;
END_VAR

Demnach müsst ich doch einen Speicherbedarf von 4*300=1200 Werten haben. Codesys sagt mir nun, ich hab 47kByte Retainspeicher aufgebraucht. Das kann doch gar nicht sein! Oder?

Kann mich einer aufklären :)?

mfg
Jens
 
Hallo Jens,
Welche SPS nutzt du denn? Hast du eventuell noch an einer anderen Stelle in deinem Programm irgendwo Variablen als Retain Persistent gespeichert (z.B. in Funktionsblöcken?)

Wie sind die Einstellungen für die Speicheraufteilung?

Gruß
Daniel
 
Ich habe mal probiert und aus dem Projekt alles entfernt und nur "n := n +1" reingeschrieben. Dann habe ich immernoch 21% retainspeicher verbraucht. Ich nehme an, das werden die eingebetteten Bibliotheken sein evtl.?
 
Ok, man muss auch das Manual lesen.

Ein Funktionsblock hat den Speicher bverbraucht, weil dieser viele Vairablen hatte und beim FUnktionsblock eben alle Variablen immer im Retainspeicher angelegt werden, bzw. das ganze "Objekt".
 
Zurück
Oben