NOVRAM gelöscht

grosser_marco

Level-1
Beiträge
45
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen,
ich hoffe Ihr könnt mir bei meinem Problem helfen.
Ich habe ein Projekt mit einem Panel-PC von Beckhoff mit integriertem NOVRAM.
Nun ist es so, daß in diesem Projekt ziemlich viele Parameterwerte (Offsets etc.) und Produktionsdaten (ID-Nummern, sich ändernde Prozesszustände/Schrittmerker etc.) unter allen Umständen erhalten bleiben müssen, also nach Spannungsausfall als auch nach Systemabsturz.
Dazu habe ich unter TwinCAT 2.10 diese Variablen im Projekt als AT%Q* deklariert und sie im System-Manager mit den entsprechend angelegten NOVRAM-Variablen verknüpft. Als Bussystem wird EtherCAT verwendet, in Verbindung mit TwinSAFE.
Nun habe ich heute das Problem gehabt, daß mir das System aus irgendwelchen Gründen plötzlich abgestürzt ist, wahrscheinlich hatte es mit einem EtherCAT-Koppler zu tun, der plötzlich nicht mehr mit Spannung versorgt wurde. Jedenfalls zeigte das System noch den RUN-Zustand an und auch die PLC lief noch, aber es wurden keine Eingänge mehr eingelesen und keine Ausgänge mehr gesetzt. Viele der Teilnehmer am EtherCAT meldeten ebenfalls Störung oder gingen von OP in SafeOP.
Ich habe dann mehrmals einen IO-Reset All versucht, auch einen mehrmaligen Systemneustart. Als das alles nichts half, habe ich den Rechner neu gestartet.
Danach waren sämtliche Variablen des NOVRAM auf 0 gesetzt, also gelöscht. Ich kann nicht sagen, ob sie erst nach dem Neustart gelöscht waren oder schon nach dem Systemabsturz.
Das darf unter keinen Umständen passieren...!!!!
Ist das eine Eigenart von TwinCAT? Beckhoff sagte mir, daß der NOVRAM sich nicht einfach so von selbst löscht...
Aber woran könnte es dann liegen? Wenn der NOVRAM nicht unter allen Umständen funktioniert, dann hab ich keine Ahnung wie ich meine Daten sichern soll.
Habt Ihr eine Idee zu dem Problem und der Lösung? Bitte helft mir!! Danke!
 
Zuletzt bearbeitet:
Irgendwo im Systemmanager kann man einen Haken für "erst lesen beim Hochlaufen" setzen. Wie das genau heist kann ich dir im Moment nicht sagen. Aber wenn der nicht gesetzt ist, verhält sich das genau so.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und erstmal danke für die Antwort.
Die Option heißt "Auto Init Linked PLC Outputs", ich denke jedenfalls, das du die meinst. Wenn der Haken dort nicht gesetzt ist, dann werden die Variablen nicht durch den NOVRAM initialisiert.
Aber der Haken ist gesetzt, und ich hab die Steuerung und den PC auch schon viele Male neu gestartet und jedesmal standen die Werte noch drin, wie es sein soll.
Ich denke, es hat irgendwas mit dem Systemabsturz zu tun.
Siehst du denn irgendeine andere Möglichkeit, Daten weitestgehend netzausfall- und absturzsicher abzulegen?
Ich komme eigentlich aus der SIMATIC-Sparte, dort sind remanente Daten auch wirklich remanent - es sei denn die Batterie fällt aus, sofern benötigt...;-)
 
Ich habe soetwas noch nicht erlebt. Eventuell liegts am IO-Reset? Da ja die Novram-Variablen eigentlich im IO-Bereich liegen. (Glaube ich)
ALs Lösung könnte man noch eine Datei schreiben, aber schön ist das nicht.
 
Naja, ich habe im Nachhinein gestern versucht, den Fehler nochmals herbeizuführen. Ich habe also den ausgefallenen Ethercat-Teilnehmer wieder abgeklemmt, mehrmals einen kompletten IO-Reset und einen Systemneustart ausgeführt - und die Werte blieben erhalten. Ich werd am Montag nochmal Beckhoff anrufen, irgendeine Ursache für dieses Verhalten muß es ja geben.
Aber jetzt muß ich dich doch noch mal fragen: Was spricht gegen das Schreiben der Werte auf eine Datei und Laden beim Systemneustart? Ich gebe zu, daß die Nutzung des NOPVRAM eleganter und wahrscheinlich schneller wäre, aber ein Massiver Zugriff auf die Sicherungsdateien würde nur bei einem Systemneustart erfolgen, ansonsten nur aller paar Sekunden eine oder zwei Dateien mit jeweils maximal 50 Byte...
Danke für deine Hilfe im Voraus und einen schönen Abend noch!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich verwende für die Sicherung

Code:
VAR_GLOBAL PERSISTENT


END_VAR
Dann kannst Du die Daten vom Programm aus sichern. Lies doch dazu die Hilfe im Information System. Vielleicht ist das, was Du suchst. Weiterer Vorteil: Du kannst die Datei(en) irgendwo sichern, kopieren etc.

LG
 
Also ich kenne insgesamt drei Arten der remantenten Datensicherung:

1. Variablen als "VAR PERSISTENT" deklarieren.
Vorteil: Einfach zu handhaben, beliebig viele Daten
Nachteil: Funktioniert nur, wenn der Rechner sicher heruntergefahren wird. Bei einem plötzlichen Spannungsausfall werden die Daten nicht gesichert!!!

2. NOV-RAM mit Verknüpfung über den System Manager:
Vorteil: Einfach zu handhaben (wenn das "Häkchen" gesetzt ist ;-) )
Nachteil: Begrenzter Speicherplatz, sehr hohe Systembelastung wegen des zyklischen Daten-Schreibens, wenn viele Daten gesichert werden sollen

3. NOV-RAM ohne Verknüpfung über den System Manager (mittels FB):
Vorteil: Schont die Systemressourcen, da der FB nicht immer ausgeführt werden muss (Daten werden z. B. nur bei Eingabe neuer Daten geschrieben).
Nachteil: Evtl. ist einiges mehr an Programmieraufwand nötig.


Also ich entscheide mich meist für Methode 1 wenn eine USV vorhanden ist. Ansonsten nehme ich Variante 3 und schreibe die Daten immer wenn der Bediener z. B. einen neuen Datensatz abspeichert oder zyklisch alle 2 Sekunden oder so ähnlich (je nach Anforderung). Beim Systemausfall und anschließendem Neustart frage ich ein Bit ab und lese die Daten aus dem Nov-Ram aus.
 
1. Variablen als "VAR PERSISTENT" deklarieren.
Vorteil: Einfach zu handhaben, beliebig viele Daten
Nachteil: Funktioniert nur, wenn der Rechner sicher heruntergefahren wird. Bei einem plötzlichen Spannungsausfall werden die Daten nicht gesichert!!!

Aus diesem Grund sichere ich die Daten über den zugehörigen Funktionsbaustein zyklisch weg. Damit kann ein ev. Datenverlust minimiert werden. (je nachdem wie intelligent die Daten weggesichert werden)
Alle zwei Sekunden sollte hier aber sicher nicht weggesichert werden. (wegen der max. Schreibzyklen der Karte)

LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,
das Problem war tatsächlich die Verlingung der NOVRAM-Variablen im Systemmanager. Wenn man dann die PLC Stoppt (nicht das System, nur die PLC), dann werden alle NOVRAM-Variablen gelöscht.
Nach Rücksprache mit Beckhoff mache ich es jetzt so: Ich packe alle zu sichernden Variablen in eine Struktur, die ich mit dem FB NovramReadWrite zyklisch (aller 0,5 Sekunden) wegsichere. Laut Beckhoff ist das für den Novram-Baustein kein Problem, da es sich hierbei nicht um einen Flash handelt und auch bei Verlinkung im Systemmanager die Daten zyklisch geschrieben werden.
Ich hoffe, die haben recht...
Viele Grüße
 
Zurück
Oben