Step 7 RAM VS EPROM bei 6ES7 416-2XK02-0AB0

Clyde82

Level-2
Beiträge
230
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich bin auf Arbeit an einer Sache fast verzweifelt. Ich sollte eine CPU: 6ES7 416-2xK02-0AB0 um eine CP und eine TCP/IP Verbindung erweitern. Die CPU hat von Haus aus einen EPROM stecken. Ich bin wiefolgt vorgegangen:

1. AG-Abzug gemacht und im Programm abgelegt
2. Hardware offline erweitert, übersetzt und eingespielt
3. Jetzt kommt mein Problem:

Nachdem die neue Hardware in der CPU war, wollte ich die DBs aus dem Online-Abzug zurückspielen und aufeinmal war der RAM voll. Ja passiert, also komprimiert und dann immer noch voll, bei 100%. Ich bin dann dahergegangen und hab mal die Fehler-OBs OB81-85 und 121,122 gelöscht ausm AG nur um sie anschließend zurückzuspielen, RAM immer noch voll trotz komprimieren. Jetzt das noch seltsamere, ich hab dann die CPU mal spannungslos gemacht und die Pufferbaterien ausgebaut und hab 5 min gewartet. Anschließend, wieder alles hochgefahren, CPU hat wie erwartet das alte Programm vom EPROM geladen, ABER RAM zu 0% belegt. Ich hab ein Online/Offline vergleich gemacht, alle Bausteine vorhanden, CPU grün alles läuft. Ich konnte dann wieder Sachen hinzufügen, auch neue Bausteine wo er im Vorfeld gemeckert hat, es wäre voll. Dann aus Spass nochmal versucht alle Online abgezogenen DBs einzuspielen und ich hab mich im Kreis gedreht, RAM voll.

Ich kann das an der Stelle nicht nachvollziehen, selbst wenn die CPU das Programm vom EPROM lädt, müsste doch der RAM zumindest etwas belegt sein durch die vorhandenen Bausteine oder hab ich hier irgendwo eine Wissenslücke? Hat das vielleicht was mit dem MRESET-Knopf zu tun?

Kann ich theoretisch den EPROM gegen ein RAM Modul austauschen?

P.S. mit RAM meine ich hier den Load Memory RAM.
 
Zuletzt bearbeitet:
Wenn die CPU urgelöscht wird, dann werden die ablaufrelevanten Daten direkt in den Arbeitsspeicher geladen. Danach ist es meiner Meinung nach plausibel, dass der Ladespeicher leer ist.

Wenn du über den normalen Ladebefehl einen Baustein lädst, dann wird er in den Ladespeicher im RAM geladen, und dann beim Aktivieren in den Arbeitsspeicher kopiert.
Wenn das Programm auf der Flash-Karte (und dein AG-Abzug) größer als der Ladespeicher im RAM ist, dann kannst du deinen AG-Abzug nicht laden. Denn beim Übertragen aus dem Simatic Manager lädst du in den Ladespeicher RAM. Der benötigte Platz für das Programm im Arbeitsspeicher ist etwas kleiner als der Platz im Ladespeicher, das scheint mir bei dir sehr voll zu sein. So kannst du Änderungen nur noch in Stopp und direkt auf den Flash-Speicher laden.

Ladespeicher der CPU lässt sich nicht erweitern. Du kannst eine RAM-Karte stecken, dann aber darauf achten, dass die Pufferbatterie elementar wichtig ist. Auf jeden Fall eine Überwachung und Störmeldung wenn eine defekt ist vorsehen.
 
Uff - 614kb im Ladespeicher, 412kb im Arbeitsspeicher und die CPU hat nur um die 296kb Ladespeicher.

Ja, dann kannst du dein Programm nur noch in Stopp laden, und dann direkt alles auf die Flash Karte laden damit das RAM Ladespeicher Limit nicht zum Tragen kommt.
Mit einer RAM Karte kommst dann etwas weiter. Nur wenn du beim Arbeitsspeicher irgendwann am Limit bist, dann geht es nur mit einer neuen CPU. Die alten 400er waren sehr sparsam mit Speicher ausgestattet.

Ich erinnere mich ganz übel an ein ähnliches Erlebnis bei einer ganz alten 300er mit der großen Speicherkarte, aus einer kleinen Bausteinänderung wurde ein Tageswerk.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du VOR dem AG-Abzug geschaut, ob der Ladespeicher(RAM) verwendet ist, d.h. ob einige Bausteine im Ladespeicher(RAM) liegen? (*) Das wäre ein Anzeichen dafür daß das Programm auf der Memory Card (EPROM) nicht aktuell ist (es wurden nach Übertragen auf die Speicherkarte noch (geänderte?) Bausteine in die CPU geladen).

(*) im Bausteine-Ordner "online" nachsehen, da steht bei jedem Baustein ob er im Ladespeicher(EPROM) oder Ladespeicher(RAM) liegt. RAM: der Baustein wurde nach dem Erstellen der Memory Card in die CPU geladen. Vermutlich unterschiedlich zur Baustein-Version auf der EPROM-Speicherkarte.


Der kleine in der S7-400-CPU eingebaute Ladespeicher(RAM) ist nur für kleinere (temporäre/testweise) Programmänderungen gedacht. Sobald das Programm größer als der eingebaute Ladespeicher(RAM) wird, dann muß eine Ladespeicher-Erweiterung (Speicherkarte) gesteckt werden. Das kann eine komfortable RAM-Speicherkarte sein (dann darf aber nicht die Batteriepufferung und das PS400 ausfallen oder gezogen werden), das kann aber auch eine nullspannungsfeste EPROM-Karte sein, dann muß man das Programm mit "Anwenderprogramm laden auf Memory Card" aus dem PG auf die Speicherkarte in der CPU laden. Das geht allerdings nur im STOP der CPU, weshalb es oft nicht gleich möglich ist und später vergessen wird. Dann ist auf der EPROM-Speicherkarte noch das alte Programm und beim nächsten Urlöschen wird dieses alte Programm wieder in den Arbeitsspeicher geladen.

DB-Aktualwerte vom PG in die CPU zurückkopieren kann man bei EPROM-Speicherkarte in der Regel NICHT durch Zurückkopieren der DB in die CPU machen (weil die DB dann im viel zu kleinen Ladespeicher RAM landen), sondern muß die DB-Aktualwerte mit VAT-Variablentabellen in die CPU übertragen (d.h. die Werte steuern) oder mit sonstiger PG/OP-Kommunikation/externen Tools die Werte sichern/zurückschreiben. Das ist nun mal so bei S7-400 mit EPROM-Speicherkarte und das sollte man wissen bevor man an S7-400 spielt.

Nachträglich kann man die VAT-Tabellen mit PLCSIM erzeugen: AG-Abzug in PLCSIM laden, CPU in STOP lassen! Nun die VAT der interessierenden DB-Aktualwerte erstellen. Dann mit den VAT die Aktualwerte in der realen CPU einstellen. Weil dieses Vorgehen sehr aufwendig ist, sollte der original-Programmierer für vernünftige DB-Startwerte und/oder vorbereitete VAT für das Einstellen der Werte (und ggf. Rezepturen/Maschinen-Einstellwerte im HMI) gesorgt haben.

Harald
 
gute Erklärung Harald. Kannst Du in dem Zusammenhang noch etwas zu "RAM nach ROM kopieren" sagen? Werden dabei die DB Aktualwerte als was auch immer auf die Flashkarte geschrieben?
 
Bei "RAM nach ROM kopieren" werden alle DB-Aktualwerte aus dem Arbeitsspeicher (*) in die DB-Aktualwerte im Ladespeicher (MMC oder ROM) kopiert und werden dadurch zu "anfänglichen Aktualwerten" (also zu Startwerten, es sind aber nicht die "Anfangswerte" des offline-Projektes). Beim nächsten Urlöschen werden die DB mit diesen Werten als Aktualwert in den Arbeitsspeicher kopiert.

S7-400 können nicht "RAM nach ROM kopieren". Das können nur CPU welche die SFC82 .. SFC84 haben.

(*) Es werden auch alle DB+FB+FC+OB+Systemdaten aus dem Ladespeicher(RAM) in den Ladespeicher(ROM) kopiert bei CPU, welche das unterstützen, z.B. 314IFM.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo beisammen,

wenn mich nicht alles täuscht gibt es in der Toolbox von Jochen eine Funktion die DBs in Textdateien speichert. Aber ehrlich gesagt gefühlt schon 100 Jahre nicht mehr verwendet.

Gruß Tia
 
Zurück
Oben