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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: USV, UPS, Persistente Daten, Daten beim Reboot fehlerhaft

  1. #1
    Registriert seit
    22.01.2015
    Beiträge
    24
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forumsgemeinde,

    Ich möchte im Falle eines Spannungsausfalls Daten sichern, sodass sie bei Spannungswiederkehr immer noch Verfügbar sind und das Pragramm dort weiter arbeiten kann wo es aufgehört hat. Ich verwende eine Beckhoff CX8090 und habe den Funktionsbaustein FB_S_UPS_CX80xx implementiert. Zweifellos werden beim Spannungsausfall Daten abgespeichert, aber leider haben einige der als Persistent deklarierten Variablen nach dem Reboot falsche Werte, obwohl ich beim Ausschalten noch beochbachten kann, dass die Variablen die richtigen Werte annehmen. Ich glaube dass ich eine recht große Datenmenge als Persistent deklariert habe (ein Array mit 25 Elementen von einer Datenstruktur die drei weitere Datenstrukturen enthält und mehr) und es daher vermutlich ein Speicherproblem ist.

    Meine Fragen: Wie kann ich herausfinden wieviel Speicherplatz für Persistente Daten schon belegt bzw. noch frei ist? Könnte der Fehler auch andere Ursachen haben?

    Außerdem: Welchen Vorteil hat eigentlich Quick Shutdown? Ich habe das bei dem Funktionsbaustein FB_S_UPS_CX80xx mal mit und mal ohne Quick Shutdown getestet. Ergebnis war, dass mit Quick Shutdown, die SPS alles neu initialisiert obwohl sie ja eigentlich die Persistenten Daten schreiben sollte. Ohne Quick Shutdown funktioniert es so wie oben beschrieben...
    Zitieren Zitieren USV, UPS, Persistente Daten, Daten beim Reboot fehlerhaft  

  2. #2
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Hallo Sireth,

    deine Vorgehensweise ist fast richtig.
    Vorab:
    Es gibt keinen Speicherplatz für persistente Daten...
    Die Möglichkeit der Datenremenanz hängt vom Speicher auf der Steuerung sowie dem eingestellten Routerspeicher (System->Echtzeit) ab. Der Routerspeichersollte angepasst werden, wenn du dich irgenwo im MB-Bereich bei der Größe der zu sichernden Daten befindest.

    Ansonsten zur Vorgehensweise:
    Implementiere den FB_WritePersistentData und rufe ihn auf, sobald du einen Spannungseinbruch detektierst.
    Funktioniert das besser?

    Bitte um Rückmeldung!

    Beim Quick Shutdown wird vermutlich gar keine Zeit mehr sein, die persistenten Daten zu sichern.

    Gruß,
    mac203

  3. #3
    Sireth ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.01.2015
    Beiträge
    24
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die Antwort. FB_WritePersistentData schreibt aber laut FAQ-thread auf den Flash-Speicher, da mache ich mir Sorgen den zu zerstören. Ich muss erst sehen wie ich den das mit dem NOVRAM verknüpfen kann

  4. #4
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Was hat das NOVRAM mit den persistenten Daten zu tun?
    Das sind zwei komplett unterschiedliche Speichermedien die auch vollkommen anders behandelt werden müssen.

    Logisch schreibt FB_WritePersistentData in den Flash Speicher. Wohin auch sonst? Da liegen doch die persistenten Daten.
    Der FB_WritePersistentData soll doch im Falle eines Spannungseinbruchs gestartet werden und genau die persistenten Daten explizit auf die Karte legen.

  5. #5
    Sireth ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.01.2015
    Beiträge
    24
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    FAQ: alles rund um TwinCAT 2

    Ich habe keine Ahnung, wie der Baustein arbeitet. Vermutlich wird er bei Spannungsausfall mehrfach ausgeführt und schreibt jedes mal eine große Datenmenge auf den Flash. Ich mache mir sorgen, dass ich durch kleine Fehler in der Programmierung den Flash zerstören könnte, weil zu häufig darauf zugegriffen wird. Daher lieber NV-RAM. Dann heißt es halt nicht "Persistente Daten" ... Es ist ein Umweg aber ich glaube es ist sicherer. Allerdings bin ich jetzt auch wieder verwirrt, weil brauche ich dann überhaupt noch FB_WritePersistentData? Unter obigem link heißt es man sollte es Verknüpfen wenn ich das richtig verstanden habe, aber unter
    http://infosys.beckhoff.com/index.ph...cnovram.htm&id steht, man darf die Variablen die mit NV-RAM verknüpft sind nicht mehr als Persistent deklarieren...

  6. #6
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Nun ich weiß ziemlich genau, wie der Baustein funktioniert.

    Wenn du den Baustein beim Spannungseinbruch aufrufst, also genau dann, wenn du über die USV die Info bekommst, wird dieser nur einmal aufgerufen.
    TwinCAT ruft die Funktion autoamtisch beim geregelten Herunterfahren auf. Das geschieht aber nicht (immer zuverlässig) wenn die USV einfach abschaltet.

    Wenn du also persistente Daten verwenden möchtest, dann ist das der einzige Weg.
    Dazu müssen dann die Variablen mit dem Schlüsselwort PERSISTENT gekennzeichnet werden.

    Andere Vorgehensweise ist das NOV-RAM.
    Physikalisch sieht es so aus, dass es zwei Speicher (ROM und RAM) gibt, die automatisch gefüllt werden.
    Beim Ausschalten des Geräts wird dann automatisch vom ROM ins RAM geschrieben.
    Aber um die Daten erst mal in den ROM Bereich zu bekommen, muss auch hierzu ein Baustein aufgerufen werden:
    FB_NovRamReadWriteEx
    Dieser hingegen kann z.B. zyklisch aufgerufen werden, ohne dass es Probleme mit der Haltbarkeit bzw. Lebensdauer von Speicher gibt.
    Aber: Variablen müssen hierzu immer über AT%MB/MX adressiert werden.
    Und: Der Novram Speicher ist Geräte-abhängig. D.h. der Speicher ist begrenzt und unterschiedlich beim jeweils eingesetzten Gerät.

  7. #7
    Sireth ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.01.2015
    Beiträge
    24
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Es wäre gut zu wissen wie der Baustein arbeitet. Wann und wie oft schreibt er die Daten? Ich gehe jetzt davon aus, dass der nur einmal ausgeführt wird sobald er die Flanke durch den Spannungsausfall erhält. Ich muss die Anlage aber erst sicher stoppen bevor die endgültigen Daten gespeichert werden. Das heißt die Programm muss erst noch einige Zyklen weiterlaufen bis die zu speichernden Daten vorhanden sind...

  8. #8
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Er schreibt, wie zuvor schon beschrieben nur bei steigender Flanke die Daten.
    Den Zeitpunkt zum Schreiben, kannst du also vollkommen frei wählen.

    Aber deine Sorge ist berechtigt, aber sicherlich in dem Maße unebgründet.
    Du arbeitest mit einer Industrie-Speicherkarte, die pro Zelle (soweit ich weiß) ca. 60.000 Schreib-/Lesezyklen erlaubt. Die Zellen sind je nach Gesamtkartengröße vielleicht 16B-16kB groß.
    Jetzt rechne mal, wie lange deine Karte hält, bei der Datenmenge, die du sichern möchtest.
    Bedenke, du schreibst nur einmal beim Ausschalten auf die Karte.

  9. #9
    Sireth ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.01.2015
    Beiträge
    24
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich würde mir das tatsächlich gerne mal ausrechnen, aber woher weiß ich wie viel Speicher meiner zu sichernden Variablen benötigen?

  10. #10
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, da hilft wohl nur rechnen.
    Es gibt keine Funktion von Tc die dir die PERSISTENT Variablen aufsummiert.

Ähnliche Themen

  1. Beckhoff CX-5020 Persistente Daten
    Von Leto im Forum CODESYS und IEC61131
    Antworten: 19
    Letzter Beitrag: 14.11.2012, 14:33
  2. Umändern der Persistente Daten
    Von j_poool im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 10.11.2011, 23:30
  3. DB-Daten beim Programmladen retten
    Von Feng im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 04.06.2011, 13:51
  4. Persistente oder Remanente daten??
    Von COOLT im Forum CODESYS und IEC61131
    Antworten: 16
    Letzter Beitrag: 14.08.2009, 11:50
  5. Antworten: 17
    Letzter Beitrag: 13.05.2008, 09:41

Stichworte

Lesezeichen

Berechtigungen

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