Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: Fehler 3101: Datenbereich zu groß?

  1. #1
    Registriert seit
    05.05.2010
    Ort
    Südtirol
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich programmiere ein kleines Überwachungssystem, das einige Eingänge überwacht und bei Auslösung ein SNMP-Trap verschickt. Das Ganze wird mit einer Wago 750-841 realisiert.

    Nun bekomme ich beim Übersetzen des Programms in CoDeSys folgende Fehlermeldung:

    Fehler 3101: Datenbereich zu groß: 65535 Byte (63K). Maximale Größe: 1286979249 Byte (57132776K)

    Leider sagt mir die Fehlermeldung überhaupt nichts, da der Datenbereich nach Adam Riese weit unter dem Limit liegt, das CoDeSys mir mitteilt. Auch Handbücher, Hilfen und der Große Bruder Google haben mir nicht weitergeholfen.

    Das ist übrigens mein erstes Projekt, ich bin noch blutigster Anfänger.
    Zitieren Zitieren Fehler 3101: Datenbereich zu groß?  

  2. #2
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Ich weiß leider nicht mehr genau, welcher Fehler zu dieser Meldung gehört. Darum prüfe folgende Punkte mal ab:

    - Hast Du in der Steuerungskonfiguration evtl. Teilnehmer mit unsinnig belegten PDO's (10 Kanäle mit LREAL)

    - Im Programm Arrays oder Strukturen größer als das Zielsystem erlaubt (normalerweise 64K), z.B. Array [0..5000] OF LREAL

    - Verschwindet die Fehlermeldung, wenn Du bei Projekt-> Optionen -> Übersetzungsoptionen, das Debugging ausschaltest oder die Anzahl der Datensegmente vergrößerst?

  3. #3
    troebbe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2010
    Ort
    Südtirol
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    - Die Steuerungskonfiguration ist gecheckt, da ist alles in Ordnung.
    - in den Übersetzungoptionen kann ich diese beiden Optionen momentan nicht verändern, da mir noch Hardwarekomponenten für die geplante Steuerung fehlen und ich deshalb im Simulationsmodus arbeite.
    bez. dem zweiten Punkt: wie finde ich die Größe einer Struktur heraus? Schließlich kann sich die ja verändern?

    Ich habe inzwischen auch rausgefunden, dass es sich um ein Programm handelt, das mir diesen Fehler erzeugt. Wenn ich dieses vom Übersetzen ausschließe, funktioniert der restliche Code.

  4. #4
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Klingt irgendwie nicht nach den Problemen, die ich mit der Speichergröße hatte, aber:

    - Strukturen sind auch fest definiert. Du kannst die einzelnen Variablen einer Struktur zusammenrechnen (Die Größe jeder Variablen steht in der Hilfe). Aber ich denke hier reicht der Daumenfaktor. Wenn Du eine Struktur mit Strings[100] (z.B. 100 Byte) und LREAL (8Byte) hast und diese Struktur dann in ein Array[0..100] packst, kommst Du bald an eine solche Größe.

  5. #5
    troebbe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2010
    Ort
    Südtirol
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn ich die Variablen im Deklarationsteil zusammenzähle, komme ich auf ein paar hundert Byte.
    Wie verhält sich das, wenn ich Funktionsblöcke innerhalb dieses Programms aufrufe? Werden die dazugezählt oder nicht?

  6. #6
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Ja. Jeder angelegte Instanz eines FB's belegt einen Datenbereich. Das kannst Du auch ganz einfach testen, in dem Du Deinem Projekt FB's hinzufügst und im Kompilierfenster Dir die Größe der verbrauchten Daten anschaust....

  7. #7
    troebbe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.05.2010
    Ort
    Südtirol
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    okay... verstanden hab ichs, glaub ich. Das heisst, ich habe jetzt mal nach und nach Funktionsblöcke aus dem Programm gelöscht und jedes mal versucht, zu übersetzen.

    Und siehe da: Wenn ich den letzten Funktionsblock weglasse, dann funktioniert das Programm. Im Kompilierfenster steht dann:
    Bausteinindizies: 189 (18%)
    Größe der verbrauchten Daten: 0 von 249856 Bytes (0.00%)
    Größe der verbrauchten Retain-Daten: 0 von 16384 Bytes (0.00%)

    Ich gehe mal davon aus, dass der Speicherverbrauch durch die Bausteinindizies angegeben wird. Da ich den entfernten Funktionsblock im gleichen Programm aber nochmal verwende, kann ich mir nicht erklären, warum dieser Wert plötzlich auf 18% sinkt. Schließlich steht der andere FB ja noch, da kann es doch nicht sein, dass dieser Block einmal ganz wenig und einmal ganz viel Speicher benötigt?

Ähnliche Themen

  1. Der Datenbaustein ist zu groß!
    Von Flutlicht im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 29.10.2010, 18:38
  2. Schaltschrank für EFH. Wie groß?
    Von forellengarten im Forum Schaltschrankbau
    Antworten: 10
    Letzter Beitrag: 16.12.2009, 16:50
  3. Antworten: 13
    Letzter Beitrag: 16.06.2009, 22:21
  4. Anlaufkondensator zu groß
    Von mitchih im Forum Antriebstechnik
    Antworten: 5
    Letzter Beitrag: 20.04.2009, 08:53
  5. Datenbereich Typ Any im FB auslesen
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.01.2006, 18:44

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •