Wenn man die Aktualwerte per "Variable steuern" (VAT) in den Arbeitsspeicher zurückschreibt, dann wird der Ladespeicher nicht verwendet/verändert.
Ich habe dazu auf die schnelle noch nichts gefunden, wird das vllt. im Handbuch oder einem FAQ beschrieben?
Dazu finde ich auf die Schnelle auch nichts - das sollte man aber einfach wissen wenn man mit S7-SPS rumspielt.
- "Variablen steuern" ändert den Wert von Variablen nur im Arbeitsspeicher.
- Jedes Laden von Bausteinen in die S7-400-CPU lädt die Bausteine in den Ladespeicher RAM und von da in den Arbeitsspeicher.
- beim Laden von DB in die CPU werden die online Aktualdaten im Arbeitsspeicher mit den gerade in den Ladespeicher geladenen offline Aktualdaten initialisiert.
- beim Herausladen von DB aus der CPU werden die DB aus dem Ladespeicher (wenn da vorhanden) mit den online Aktualdaten aus dem Arbeitsspeicher (wenn da vorhanden) herausgeladen
Ich habe jetzt wie beschrieben "Zielsystem > Anwenderprogramm laden auf Memory Card" ausgeführt.
Dann habe ich die SPS gestartet und die DB's in den Ladespeicher RAM zurückkopiert. Die Ladespeicher RAM ist jetzt bei 44%.
Dieses Vorgehen ist bei FLASH-Speicherkarte relativ sinnfrei. Du hast Glück, daß Deine DB komplett in den integrierten Ladespeicher RAM passen. Was würdest Du tun, wenn Deine DB nicht alle in den integrierten Ladespeicher RAM passen? Dafür muß es doch auch eine Lösung geben ...
Wenn Du nun ein "Zielsystem > Anwenderprogramm laden auf Memory Card" aus Deinem offline-Projekt gemacht hast und danach noch vorher gesicherte Aktualwerte durch nachträgliches laden in die CPU wiederhergestellt hast, dann ist nicht sicher, daß deine CPU nach einem Kaltstart ohne Programmierer-Eingriff das Anwenderprogramm wieder vernünftig starten kann.
Man muß für alle DB nachdenken, welche Werte bei CPU-Kaltstart bzw. nach Urlöschen die Anfangs-Aktualdaten sein sollen. Diese Werte müssen vor dem "Zielsystem > Anwenderprogramm laden auf Memory Card" im offline DB (im Projekt) als Aktualwerte eingetragen sein.
Maschinen-Einstellwerte, Rezepturen und ähnliches können vermutlich auch die zuletzt online eingestellten Aktualwerte sein - diese kann man vor dem "Zielsystem > Anwenderprogramm laden auf Memory Card" aus der CPU ins offline Projekt zurückladen, dadurch werden sie auch nach dem Laden auf Memory Card zu anfänglichen Aktualdaten und müssen danach nicht noch extra wieder eingestellt werden.
Man kann aber nicht einfach pauschal alle DB aus der CPU ins Projekt zurückkopieren. Es gibt auch Werte, wo es unerwünscht oder gar gefährlich wird, wenn man die Aktualdaten der laufenden Maschine aus dem Arbeitsspeicher als anfängliche Aktualdaten nach Kaltstart/Urlöschen verwendet, wie Schrittketten-Variablen, Objekt-Betriebsarten, aus dem Prozess berechnete Werte ... eventuell sind auch noch Variablen vorhanden, die bei Kaltstart der CPU ein besonderes Verhalten steuern sollen und deshalb im Ladespeicher unbedingt einen bestimmten Wert (z.B. 0) haben müssen und dann nach Ihrer Verarbeitung im Arbeitsspeicher auf einen anderen Wert gesetzt werden.
Harald