Step 7 S7-300 Backup einspielen auf neue MMC - Problem mit Profibus DP

gadgetfreak

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe mit der "alten" Simatic-Software leider zu wenig Erfahrung und bin auf folgendes Problem gestoßen. Ich denke es fehlt nur ein entscheidener Schritt, aber leider habe ich den nach einigen Stunden und intensiver Suche im Forum und Netz mir noch nicht selbst erschließen können. Vielleicht hat ja jemand den entscheidenden Tip parat!?
Ich habe eine Anlage mit einer S7-300 CPU317-2, Firmware-Version: V2.1 6ES7 317-2AJ10-0AB0. Die Anlage ist von 2007 und es gibt leider die Projektdatei nicht mehr. Grundsätzlich wollte ich erstmal ein Backup haben, damit ich im Falle eines Geräteausfalls oder bei Versagen der MMC diese Ersetzen kann und die Maschine (relativ) schnell wieder lauffähig wäre!
Dafür habe ich im Simatic-Manager ein neues Projekt angelegt und "Station laden in PG" ausgeführt. Das ganze habe ich dann (sicher und mehrfach) gespeichert.
Jetzt wollte ich den Fehlerfall simulieren und habe eine andere, gleich große (512KB) MMC genommen und wollte dort das Backup einspielen und die Anlage mit der "neuen" MMC laufen lassen! Da, soweit ich herausfinden konnte, meine CPU keinen internen Speicher hat sondern beim Start die Anwendung von der MMC ins RAM lädt dachte ich dies sollte kein Problem darstellen!
Beim Einlegen der "neuen" MMC in die CPU verlangt diese natürlich erstmal ein Urlöschen, welches ich durch Reset gedrückt halten bis STOP zwei mal blinkt und anfängt dauerhaft zu leuchten, los lassen und direkt noch einmal Reset drücken, durchgeführt habe. Danach ist die CPU regulär in STOP (dauerleuchten).
Dann habe ich über "erreichbare Teilnehmer" die CPU geöffnet, unter Bausteine alles gelöscht und dann den Punkt "RAM zu ROM kopieren" gewählt. Nun sollte, nach meinem Verständnis, die "neue" MMC leer sein. Zur Sicherheit habe ich, mit der Taste an der CPU, danach nochmal ein Urlöschen durchgeführt. Ich konnte mir anhand der Doku nicht zweifelsfrei erschließen in welchem Moment die CPU sich die Anwendung wieder von der MMC ins RAM lädt (ich vermute wenn man auf RUN schaltet. oder?!).
Nun habe ich über "Übersetzen und laden" versucht alle Punkte (Hardware und Bausteine) in die CPU zu laden. Die schlägt zuerst fehl mit der Meldung:
Code:
Test\ABC\Hardware
-> Beim Laden des Objektes ist ein Fehler aufgetreten

Das Laden der Systemdaten auf die Station ABC wird nicht ausgeführt, weil sich die projektierte Baugruppe CPU317-2 (Träger 0, Steckplatz 2) von der Zielbaugruppe unterscheidet.
-> Baugruppenname: CPU317-2 (Offline), CPU 317-2 DP (Online)
Was ich an diesem Punkt nicht ganz verstehe ist warum die Station noch mit dem Namen des Programms der Anlage aufgelistet wird wenn ich doch eigentlich alles gelöscht habe?! Ausserdem verstehe ich auch nicht warum das Backup einen anderen Baugruppennamen im Projekt hinterlegt hat als die Station, obwohl erst ein paar Minuten vorher ausgelesen!?
Um weiter zu probieren habe ich den Baugruppenname im Projekt an den der CPU Online angepasst (CPU 317-2 DP) und erneut alles "übersetzt und geladen". Diesmal läuft alles durch nur mit den Hinweisen das die Bausteine bereits vorhanden sind. Ist logisch für mich, die wurden ja im ersten Versuch schon kopiert auch wenn die Übertragung der Hardwaredaten fehlgeschlagen war!
An diesem Punkt habe ich es in der Konstellation versucht noch einmal RAM zu ROM durchzuführen (ist das an der Stelle notwendig weil mit "Übersetzen und laden" nur alles in den RAM der CPU geladen wird?!) und auch ohne.
Das Problem was ich jetzt habe ist das die Anwendung mit der "neuen" MMC dem ersten Anschein nach startet, das HMI aber direkt meldet das es zu mehreren Profibus Adressen keine Verbindung aufbauen kann. An der CPU (Adresse 2) hängt per Profibus ein ET200S (Adresse 5) mit den ganzen Ein- und Ausgängen. Eine Festo CPX Ventilinsel (Adresse 16) und drei Danfoss FC Frequenzumrichter (mit den Adressen 10, 15 und 20).
Ich vermute daher das ich der CPU noch mit einem extra Schritt die Adressierung und das Profibus Netzwerk mitteilen muss!? Unter HW Konfig werden mir aber alle Teilnehmer mit Adressen und Adressierung der Ein- und Ausgänge korrekt angezeit. Wird die mit "Übersetzten und Laden" nicht mit übertragen?
Wenn ich die "alte" MMC in die CPU einlege, Urlöschen durchführe und auf RUN schalte funktioniert die Anlage sofort wieder wie gewünscht!
Welche Schritte sind also tatsächlich notwendig um ein Backup auf eine "jungfräuliche" CPU bzw. MMC zu laden?
Oder muss ich beim Backup noch etwas beachten und noch etwas anderes außer "Station laden in PG" durchführen?
Grüße
Konrad
 
Soweit ich das überfolgen habe, ist das Problem, dass die CPU nicht ersatzteilkompatibel ist.
Möglichkeit 1 CPU löschen und dann die passende einfügen Händisch.
Möglichkeit 2 CPU Objekt tauschen über rechtsklick auf die CPU im Simatic Hardwaremanager.
Möglichkeit 3 neues Projekt anlegen und dort den Hardware Istzusand nachbauen. Mit der Vorlage vom AG-Abzug.
Und nur die Bausteine von Online Übernehmen.

Desweitern ist es wichtig, welche Seriennummer die neue 317-2 DP für eine Nummer genau hat. Dann kann man nachlesen, wo das Problem sein könnte.
Ram to Rom braucht man eigentlich bei den MMC Karten nicht mehr. Kannst im Handbuch nachlesen.

AG Abzug hast du richtig erstellt. Dein Problem wird nur sein, dass die 2 CPU unterschiedlich sind.

1648242960517.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Desweitern ist es wichtig, welche Seriennummer die neue 317-2 DP für eine Nummer genau hat. Dann kann man nachlesen, wo das Problem sein könnte.
Danke schon mal für das Feedback. In dem Fall habe ich aber ja keine andere CPU genutzt! Ich möchte im Grunde einfach nur, ohne Prommer, das Programm von einer MMC auf eine zweite "duplizieren". Ich habe den Eindruck das, mit dem oben von mir beschriebenen Vorgehen, bestimmte Teile, vorrangig der Hardwarekonfiguration, nicht mit gesichert bzw. wiederhergestellt werden!
 
Machst Du Deine Spielereien an der produktiven SPS an der Maschine/Anlage???
Davon würde ich DRINGEND abraten...
Kauf Dir eine SPS und mach das auf dem Bürotisch!
Ich kenn Geschichten, da wurde Leuten fristlos gekündigt, weil sie ne wichtige Anlage irreparabel in Klump gefahren haben!
Nebenbei, besorgt Euch erstmal den Softwarestand. Mit dem AG-Abzug kommst Du auf Dauer nicht weiter!

Mit Deiner Aktion hast Du vermutlich jetzt schon wichtige Aktualdaten verloren!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Konrad,

sehr wahrscheinlich fehlen dir benötigte Konfigurationsdateien der Geräte, die im Projekt verwendet sind, insbesondere die GSD-Dateien der Busteilnehmer. Solange du jedoch die Hardwarekonfiguration nicht neu übersetzt, sollte dein Plan dennoch aufgehen. Nimm deine herausgeladene Originalsicherung, ohne den Baugruppennamen der CPU oder sonst was zu verändern. Markiere im Bausteinordner im Simatic-Manager den Baustein "Systemdaten" und lade diesen in die Steuerung. Den Hinweis auf unterschiedliche Baugruppennamen kannst du einfach ignorieren bzw. bestätigen.

Ferner könntest du dir die benötigten GSD-Dateien besorgen und einpflegen. Den Aufwand würde ich aber nur betreiben, wenn Änderungen an der Konfiguration unvermeidlich werden.

Ducati hat absolut recht. Deine Aktion war ziemlich riskant. Alle Aktualwerte sind jetzt erst einmal verloren. Mit Ram-to-Rom werden bei CPUs mit MMC übrigens die Aktualwerte aus dem Arbeitsspeicher in den Ladespeicher (MMC) gesichert. Das hätte man vor dem Ziehen der alten MMC durchführen können. Aber selbst das ist ohne genaue Programm- und Anlagenkenntnis gewagt.
 
Die Anlage ist von 2007 und es gibt leider die Projektdatei nicht mehr.
Warum gibt es das Projekt nicht? Sagt der Hersteller bzw. die Firma die zuletzt dran war "Finger weg!" und Du sagst "Mach ich trotzdem!" ?

Da, soweit ich herausfinden konnte, meine CPU keinen internen Speicher hat sondern beim Start die Anwendung von der MMC ins RAM lädt dachte ich dies sollte kein Problem darstellen!
(...)
Ich konnte mir anhand der Doku nicht zweifelsfrei erschließen in welchem Moment die CPU sich die Anwendung wieder von der MMC ins RAM lädt (ich vermute wenn man auf RUN schaltet. oder?!).
Das Programm von der MMC wird nur beim Urlöschen in den Arbeitsspeicher kopiert. Die CPU verlangt daß ein Mensch das Urlöschen auslöst, weil dabei Daten verloren gehen, die jemand mit Ahnung wieder herstellen/einstellen muß.

Nun habe ich über "Übersetzen und laden" versucht alle Punkte (Hardware und Bausteine) in die CPU zu laden. Die schlägt zuerst fehl mit der Meldung:
Code:
Test\ABC\Hardware
-> Beim Laden des Objektes ist ein Fehler aufgetreten

Das Laden der Systemdaten auf die Station ABC wird nicht ausgeführt, weil sich die projektierte Baugruppe CPU317-2 (Träger 0, Steckplatz 2) von der Zielbaugruppe unterscheidet.
-> Baugruppenname: CPU317-2 (Offline), CPU 317-2 DP (Online)
Da solltest Du vorher auf den unterschiedlichen CPU-Name hingewiesen worden sein und entscheiden, ob Du trotzdem laden willst. Das ist eine Schutzfunktion für unkonzentriert/unbedarft arbeitende Programmierer, damit die nicht so einfach/versehentlich das falsche Programm auf die falsche CPU laden, besonders sinnvoll beim Laden über Netzwerk.

Was ich an diesem Punkt nicht ganz verstehe ist warum die Station noch mit dem Namen des Programms der Anlage aufgelistet wird wenn ich doch eigentlich alles gelöscht habe?!
Wird sie doch gar nicht?! Die CPU hat online wieder den Standard Name "CPU 317-2 DP", und in Deinem herausgeladenen Programm heißt sie noch "CPU317-2", wie sie von einem Programmierer mal benannt wurde.

Wenn ich die "alte" MMC in die CPU einlege, Urlöschen durchführe und auf RUN schalte funktioniert die Anlage sofort wieder wie gewünscht!
Woher weißt Du das?? Nur weil keine Fehlermeldungen mehr kommen, heißt das nicht, daß Deine Anlage wieder richtig funktioniert. Soviel Glück ist eher unwahrscheinlich. Dafür müssten alle relevanten Anlagen-Einstellwerte mit den richtigen/aktuellen Werten auf der MMC liegen. Oder gibt es im HMI oder sonstwie eine Funktion, die alle letzten Einstellwerte wiederherstellt?

Harald
 
Danke nochmals für das viele Feedback und die mahnenden Worte.

Da aber viel über das Ganze drumherum gesprochen wurde möchte ich erstmal ein paar Dinge klarstellen, die ich in meinem Ursprungsposting absichtlich nicht genannt habe um bei den technischen Details zu bleiben:
1. Nein, hier wird keiner gefeuert, das ist alles mit den "oberen Etagen" abgesprochen. (Erklärung folgt weiter unten)
2. Ja, es ist eine produktive SPS, aber wie soll man die Funktionsfähigkeit eines eingespielten Backups am Schreibtisch ausprobieren?
3. Nein, es gibt keine Projektdatei. Nicht beim Hersteller, nicht auf unserem Server. Es gibt einfach keine. Punkt!
Kurzer Einwurf zum Hintergrund: Die Maschine kann nur unser "altes" Format. Mit unseren anderen Maschinen können wir aber auch das alte Format fahren. Daher ist die Frage ob die Maschine demnächst überhaupt noch benutzt werden kann oder eben nicht! Wenn die Maschine heute ausfällt oder aufgrund der "Spielereien" nicht mehr geht dann werden die restlichen Aufträge für das "alte" Format eben auf den neuen Anlagen gefahren! Wir sind bereit den Weg zu gehen die Hardware von Grund auf mit einer neuen SPS auszustatten oder das Programm von Grund auf neu zu programmieren, falls es notwendig sein sollte!
4. Aktualwerte: Ich gebe zu das war "maximal dumm", die Werte scheinen aber tatsächlich im ROM gewesen zu sein. Wir haben die Maschine mit der "alten" MMC in Betrieb genommen und eine Charge ohne Fehler und Auffälligkeiten produziert. Es gibt auch nur das eine Format auf der Maschine. In dem Fall also anscheinend Glück gehabt.
Wobei ich zu dem Thema auch noch eine Anmerkung bzw. Frage habe: Soweit ich im Handbuch nachlesen konnte speichert die SPS bei Netzausfall die RAM-Daten auf der MMC, aber vermutlich nicht als "Initialwerte" da dies ja durch den Befehl "RAM zu ROM" ausgelöst werden müsste. Trotzdem sind diese Aktualwerte ja in einer Form auf der MMC vorhanden. Diese Maschine z.B. wird sehr häufig vom Netz getrennt und steht manchmal tagelang ohne Versorgungsspannung herum. Ich konnte jetzt nicht herausfinden ob nach einem Urlöschen nur die Initialwerte oder eben auch diese abgelegten Aktualwerte vom ROM ins RAM geschrieben werden?!

Um zu dem ganzen Vorgehen auf den Punkt zu kommen:
Am Ende des Ganzen möchte ich an dem Programm ein paar Kleinigkeiten ändern um die Maschine für das neue Format kompatibel zu machen. Ich habe mir (natürlich am Schreibtisch!) den geladenen AWL Code so weit selbst kommentieren und nachvollziehen können das eine Änderung nicht das Problem wäre. Es handelt sich nur um 2 FCs, der eine übersetzt in jedem Zyklus den Zustand von Merkern auf die Ausgänge bzw. von den Eingängen auf Merker, da soll ein zusätzlicher Ausgang geschaltet werden und in dem zweiten FC sind die Fertigungsschritte mit einer Sprungliste umgesetzt in der ein paar Sprungmarken in Ihrer Reihenfolge abgeändert werden sollen.
Meine Ursprünglicher Gedanke war eben mit einer Kopie auf einer "neuen" MMC zu arbeiten um für die verbleibenden Produktionstage notfalls auf die "alte" MMC wechseln zu können. Daher der ganze "Aufwand" das Backup auf die "neue" MMC einzuspielen.
Zwischenzeitlich bin ich über den S7 Image Writer gestolpert mit dem Leute das Dateisystem von mit Windows formatierten MMCs wiederherstellen. Ich habe von der "alten" MMC damit ein Image gezogen und sollte damit ja in der Lage sein wieder die Karte in den ursprünglichen Zustand zurücksetzen zu können, oder habe ich da "wieder" einen Denkfehler?!
Die zwei geänderten FCs sollte ich dann ja einfach Online auf die "alte" MMC übertragen können um die Änderungen einzuspielen, oder welche Vorgehensweise würdet Ihr in diesem Fall empfehlen?

Trotz allem möchte ich einfach gerne verstehen an welcher Einstellung es eben noch hakt das Backup auf eine "neue" MMC einzuspielen. Ich gehe eben gerne den schwereren Weg wenn ich daraus Erkenntnisse gewinnen kann und es, wie in diesem Fall, auch einfach "darf"! Dann versuche ich diese Erfahrungen mitzunehmen!

Jetzt hätte ich noch ein paar Punkte zu euren Antworten:
Nimm deine herausgeladene Originalsicherung, ohne den Baugruppennamen der CPU oder sonst was zu verändern. Markiere im Bausteinordner im Simatic-Manager den Baustein "Systemdaten" und lade diesen in die Steuerung. Den Hinweis auf unterschiedliche Baugruppennamen kannst du einfach ignorieren bzw. bestätigen.
Hab ich probiert, das Problem das ich am HMI die Meldung über fehlende Kommunikation zu den PROFIBUS-Teilnehmern erhalte bleibt leider bestehen!
Nach meines Verständnis fehlt der SPS nach dem Einspielen irgendeine Konfiguration bezüglich des PROFIBUS-Netzes?!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
2. Ja, es ist eine produktive SPS, aber wie soll man die Funktionsfähigkeit eines eingespielten Backups am Schreibtisch ausprobieren?
Am Schreibtisch sollst Du die allgemeine Vorgehensweise üben, wie man einen AG Abzug macht und wieder einspielt... Da kannst Du in einem Testprogramm auch Variablen in nem DB setzen und schaun, ob die nach der Wiederherstellung noch den selben Wert haben...
Wenn Du dann die Schritte aus dem FF im Schlaf beherrscht, kannst Du auch an die Anlage;)

Zu Änderungen ohne Originalprojekt:
- entweder das Projekt rekonstruieren, HW-Konfig selbst neu erstellen etc...
- oder halt nur den einen FC ändern und nur den einen einspielen...
 
... Soweit ich im Handbuch nachlesen konnte speichert die SPS bei Netzausfall die RAM-Daten auf der MMC, aber vermutlich nicht als "Initialwerte" da dies ja durch den Befehl "RAM zu ROM" ausgelöst werden müsste. Trotzdem sind diese Aktualwerte ja in einer Form auf der MMC vorhanden. Diese Maschine z.B. wird sehr häufig vom Netz getrennt und steht manchmal tagelang ohne Versorgungsspannung herum. Ich konnte jetzt nicht herausfinden ob nach einem Urlöschen nur die Initialwerte oder eben auch diese abgelegten Aktualwerte vom ROM ins RAM geschrieben werden?! ..
Au, entschuldige bitte! Ich hatte in #6 bei "MMC" an die alten S7 mit den großen Speicherkarten gedacht. Bei denen war es so, dass Programmänderungen und Aktualwerte über "RAM to ROM" gesichert werden musste.
Es hätte mich aber auch mal einer korrigieren können ;)!
 
Soweit ich im Handbuch nachlesen konnte speichert die SPS bei Netzausfall die RAM-Daten auf der MMC
In welchem Handbuch konntest Du das lesen??? :unsure:

Die Aktualwerte remanenter DB werden in einem speziellen Remanzspeicher in der CPU gespeichert (Teil des Arbeitsspeichers).

Remanenzverhalten der S7-300 CPU 31x sowie der Komplettgeräte C7-6xx mit MMC
PDF Speicherkonzepte der S7-300 CPUs und C7-Geräte
Gerätehandbuch 03/2011 S7-300 CPU 31xC und CPU 31x: Technische Daten Kapitel 5 Speicherkonzept

Das Gerätehandbuch 01/2006 für genau Deine CPU 317-2 DP (6ES7317-2AJ10-0AB0) Firmware V2.1 gibt es beim Siemens Online Support nicht mehr zum Download. Ich hänge es hier mal an. siehe da Kapitel 4 Speicherkonzept

Harald
 

Anhänge

  • HB_CPU31xC_und_CPU31x_d.pdf
    2,5 MB · Aufrufe: 10
Au, entschuldige bitte! Ich hatte in #6 bei "MMC" an die alten S7 mit den großen Speicherkarten gedacht. Bei denen war es so, dass Programmänderungen und Aktualwerte über "RAM to ROM" gesichert werden musste.
Wenn man bei den CPU mit MMC die DB-Aktualwerte auf die MMC sichern will, dann muß man ebenfalls "RAM to ROM" aufrufen (kopiert pauschal alle DB in den Ladespeicher MMC, auch die nicht remanenten!), oder selektiv SFC84 WRIT_DBL programmieren. Da werden die Aktualwerte vom Arbeitsspeicher zu Initialwerten im Ladespeicher. "RAM to ROM" für pauschal alle DB kann aber problematisch sein, z.B. falls der Programmierer eine spezielle Behandlung von Urlöschen/Initialisierung anhand DB-Werten programmiert hat - die Erkennung funktioniert dann nicht mehr. Oder wenn Schrittmerker in DB liegen ...

Harald
 
Zurück
Oben