Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

retain-Speicher zu klein (750-841), wer kann helfen ????

jmagiera
2007-10-04
2007-10-05
  • jmagiera - 2007-10-04

    Habe ein funktionierendes Programm auf einer Wago 750-841. Wenn bestimmte Vorgaben im Programm geändert werden, wird der retain-Speicher zu klein . Kann mir jemand helfen ?????

     
  • gravieren - 2007-10-04

    Hi

    Geht das etwas genauer ?

     
  • jmagiera - 2007-10-04

    Nochmal vielen Dank !

    Das System speichert die Zustände von 32 bis 64 Schaltern (on / off). Die Zustände der Schalter sollen in 4000 unterschiedlichen Variationen (also max. 64 x 4000) gespeichert werden. Die gespeicherten Zustände sind dann über eine Speicherplatz-Anwahl abrufbar. Bis 32 x 4000 klappt´s, ab 40 Schaltern sind nur noch ca. 2500 (x 40) Variationen möglich, das Programm meldet dann beim Übersetzen, daß der retain-Speicher zu klein ist.

     
  • Tobi - 2007-10-05

    Hallo und guten morgen

    Auf die Gefahr hin, das meine Antwort bzw mein Hinweiß völlig daneben ist, aber warum willst du die Zustände denn speichern? warum fragst du die zustände nicht einmal nach dem Start bzw nach Änderung neu ab? Dann müsstest du die Werte nicht speichern, und würdest dir den wertvollen retainspeicher sparen.

    edit :Jetzt hab ich erst verstanden, was du machen möchtest. Es geht nicht um die Stellung, sondern um die Zustände, die das Programm verwalten soll.

    Erstmal: Wenn du 64 Schalter verwalten möchtest, kannst du das ja perfekt in einem LWORD, wenn verfügbar in der Implementierung, oder zwei DWORD's verwalten. ( SchalterA.0 := true; ( Schalter 1 on) usw)

    Ich nehme mal an, das du die Zustände irgendwie extern einstellen möchtest. Wie ist das geplant? Poste doch mal etwas Code, dann wirds vielleicht noch etwas klarer....

     
  • Tobi - 2007-10-05

    Noch was: Nur mal so als Denkanstoß:

    Speicherplatzbedarf für ein DWORD ist 32 Bit ( LWORD64 Bit). Das bedeutet, dass du Pro Satz einen Bedarf von 64 Bit hast.

    4000*64Bit = 256kbit; => 32 kB Ich weiß nicht genau, wofür der persistente Speicher alles verwendet wird und wie groß er ist, aber ich denke, dass 32 kb nur retain-Variablen schon recht viel sind, oder?

     
  • debug - 2007-10-05

    Hallo Jmagiera,

    der 750-841 hat nur 16KB Retainspeicher. Das erklärt, warum 32x4000 klappt.

    Wie oft musst Du die Daten niederschreiben? Schließlich ist im Controller noch genug Platz für Dateien.

     
  • Tobi - 2007-10-05

    Aha. Dachte ich mir doch fast. Also, dann wäre es wohl angebracht, das wie debug schon sagt im Programmcode festzuhalten. Anders wird es dann wohl nciht gehen...

     
  • jmagiera - 2007-10-05

    Also: die Zustände werden mit 32 - 64 externen Schaltern erzeugt und werden an einer frei einstellbaren Speicherposition (0000 ... 3999) gespeichert. Die Zustände (32 - 64 x 4000) sind dann von der gewünschten Speicherposition (0000 ... 3999) abrufbar und MÜSSEN remanent gespeichert werden, weil die ganze Anlage regelmäßig ausgeschaltet werden muß.

    Wenn ich das richtig sehe, ist da mit dem Programmcode nicht viel zu machen.

    WAGO sagt, daß man den retain-Speicher der 750-841 von 16K auf 24K ändern kann. Vielleicht hat ja jemand ´ne Bedienungsanleitung für Anfänger ??

    Vielen Dank für Eure Hilfe und Eure Zeit, bin ganz begeistert !

     
  • debug - 2007-10-05

    Hallo Jmagiera,

    die 24k reichen Dir nicht. Du brauchst 32k!

    Schreibe die Daten einfach in eine Datei.

    Vorteile:- Es sind auch 128 Schalter möglich.
    - Es sind mehr als 4000 Speicherpositionen möglich.
    - Backup möglich.
    - Du brauchst nur für eine Speicherpositionen Platz im RAM.

     
  • Oberchefe - 2007-10-05

    Wie wäre es mit einer Power-Up Routine die die Zustände per Programmcode in den flüchtigen Speicher schreibt? Oder sind es keine Konstanten sondern echte Variablen? Etwas mehr Informationen zur Anwendung würde die Hilfestellung evtl. erleichtern.

     

Log in to post a comment.