Step 7 S7-200: CPU Austausch mit Problemen

Draco

Level-1
Beiträge
68
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich stehe vor einem Problem, dessen Lösung ich scheinbar nicht kenne (mitunter weil mir die Erfahrung fehlt).

Aufgabe:
Ich muss eine S7-200 CPU 226 auswechseln, da das verbaute Modul sporadisch einen Sammelfehler ausgibt. Als Ursache ziehe ich einen Ölfilm (=sporadischer Kurzschluss...) auf der CPU heran, der von einer defekten Filtermatte am Schaltschrank kam (Lüfter sitzt direkt vor dieser CPU).

Ich habe also zunächst die Bauteilnummer 216-2AD23-0XB0 abgelesen und eine identische CPU gekauft. Die Software besteht aus einem
- Systemdatenbaustein
- Programmbaustein
- Datenbaustein.

Die Daten liegen mir vom ehem. Programmierer für MicroWIN 4.0 vor. Habe also diese Daten hergenommen und auf die neue CPU aufgespielt.
Bevor ich die alte CPU ausgebaut habe, habe ich mein Laptop angeschlossen und "Datenbaustein aus RAM erstellen" ausgewählt und abgespeichert (um den aktuellsten Datenbaustein auch in die neue CPU zu "hacken").
Danach CPU ausgewechselt, den soeben gesicherten Datenbaustein separat aufgespielt und die Anlage gestartet.

Problem:
Diverse Funktionen an der Maschine funktionieren nun nicht mehr. So fehlt beispielsweise auf dem angeschlossenen TD200 der Anzeigetext (teilweise).
Letztlich musste ich die alte CPU wieder einbauen - damit läuft es zunächst wieder.

Die alte CPU ist prinzipiell in Ordnung, hat lediglich alle 10 - 50 Stunden einen Aussetzer (Sammelfehler), der sich durch einen Neustart beheben lässt.
Sprich, ich bin theoretisch in der Lage ein komplettes Backup von der alten CPU zu machen.

Die Softwareversion, die ich vom Programierer habe, verglich ich per "Zielsystem vergleichen" mit der alten CPU. Ergebnis war, dass Systemdaten- und Programmbaustein identisch sind, lediglich der Datenbaustein abweicht.
Genau diesen hatte ich gehofft durch o.g. Verfahren separat zu sichern.



Was mache ich denn falsch? ...
 
Anderer Vorschlag: alte CPU öffnen (je 2 Rastklammern seitlich mit Schraubendreher aushebeln) und Platinen mit Isopropanol o. ä. reinigen, anschliessend Kunststoffspray (z. B. Plastik 70 oder Urethan) drauf. Die SIPLUS-Ausführungen der 200er sind ebenfalls lackiert.
 
Um ehrlich zu sein, ich trau mich das nicht, solange ich keine funktionierende 1:1 Kopie der CPU habe. Im moment habe ich sporaidsche Störungen, die leicht zu beheben sind, ohne nennenswert Produktionsausfall zu haben. Sollte ich die alte CPU unbeabsichtigt beschädigen, wäre das Desaster groß.
Deinen Vorschlag möchte ich anschließend gern nachkommen, um die CPU auf diesem Weg zu "retten".

Ein anderer Grund ist auch, dass ich insgesamt vielleicht 20 S7-200 CPUs im Einsatz habe und ein solcher Fehler irgendwann wiederkehren wird. Ich muss schlicht einmal lernen / wissen, wie ich eine CPU 1:1 auswechseln kann ;)

Hoffe, jemand hat eine zünendende Idee.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!

Versuch mal den Datenbaustein mit Upload von SPS>>>PC den Datenbaustein aus der CPU in dein Projekt zu bekommen.
Dann vergleiche mal manuell die Datenbausteine aus der CPU und dem Projekt.
Danach übersetze und übertrage nochmal alles.

Ich kann mir nur vorstellen, dass Informationen für das TD200 (die ja im Datenbaustein abgespeichert sind) und andere Parameter fehlen und du es deshalb nicht sauber zum Laufen bekommst.


Gruß,

Ottmar
 
Du kannst dir online den Datenbaustein anschauen und mit deinem Backup vergleichen, dann siehst du welche Unterschiede es gibt. Vielleicht wurden Parameter bei IBN oder Betrieb geändert ?
 
"Laden aus CPU" heißt der Button.

Und wenn die Symbolik und Kommentare danach i.O sind, dann kannst ja eigentlich das "alte" Projekt einmotten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt zweierlei Möglichkeiten, dessen Unterschied ich nicht 100%ig verstehe.
Zu Deiner Info: Die S7-200 hat einen Datenbaustein, in der die Initialwerte der Variablen stehen. Der Datenbaustein befindet sich auf dem internen EEPROM.
Außerdem hat sie einen RAM, in dem die Variablen gespeichert werden. Wann immer in SPS/HMI während der Laufzeit Variablen verändert werden, landet das nur im RAM.

Bei jedem Neustart werden alle nicht remanenten Variablen im RAM erneut mit den Startwerten aus dem Datenbaustein geladen. Variablen, die nicht im DB vorhanden und auch nicht remanent sind, werden mit 0/false initialisiert.
Wird beim Neustart Remanenzverlust festgestellt, werden auch die remanenten Variablen im RAM neu initialisiert und der Sondermerker SM0.2 gesetzt.
(Außerdem kann man noch einen externen EEPROM stecken, der ebenfalls einen DB enthalten kann. Wenn dies der Fall ist, wird bei jedem Neustart als Erstes der interne mit dem externen DB überschrieben. Programm natürlich ggf. auch.)

Da sich also RAM und DB im aktuellen Programmverlauf unterscheiden können, hast Du es vollkommen richtig gemacht, zunächst den aktuellen RAM als DB zu erstellen/speichern.

Anschließend sollte das "Laden aus CPU" (STRG-U) möglichst in ein leeres Projekt erfolgen, bei dem mind. Programm-, Daten- und Systemdatenbaustein übertragen werden sollen. Dieses geladene Projekt kann dann in die neue CPU geladen werden und sollte damit eigentlich identisch zur Ursprungs-CPU sein.
 
Zu Deiner Info: Die S7-200 hat einen Datenbaustein, in der die Initialwerte der Variablen stehen. Der Datenbaustein befindet sich auf dem internen EEPROM.
Außerdem hat sie einen RAM, in dem die Variablen gespeichert werden. Wann immer in SPS/HMI während der Laufzeit Variablen verändert werden, landet das nur im RAM.

Bei jedem Neustart werden alle nicht remanenten Variablen im RAM erneut mit den Startwerten aus dem Datenbaustein geladen. Variablen, die nicht im DB vorhanden und auch nicht remanent sind, werden mit 0/false initialisiert.
Wird beim Neustart Remanenzverlust festgestellt, werden auch die remanenten Variablen im RAM neu initialisiert und der Sondermerker SM0.2 gesetzt.
(Außerdem kann man noch einen externen EEPROM stecken, der ebenfalls einen DB enthalten kann. Wenn dies der Fall ist, wird bei jedem Neustart als Erstes der interne mit dem externen DB überschrieben. Programm natürlich ggf. auch.)

Da sich also RAM und DB im aktuellen Programmverlauf unterscheiden können, hast Du es vollkommen richtig gemacht, zunächst den aktuellen RAM als DB zu erstellen/speichern.

Anschließend sollte das "Laden aus CPU" (STRG-U) möglichst in ein leeres Projekt erfolgen, bei dem mind. Programm-, Daten- und Systemdatenbaustein übertragen werden sollen. Dieses geladene Projekt kann dann in die neue CPU geladen werden und sollte damit eigentlich identisch zur Ursprungs-CPU sein.

DAS war mal eine Hilfe soweit, vielen Dank dafür. Ich werde dies gleich ausprobieren
 
So, test erfolglos *nerv*

Bin an die alte (eingebaute) CPU dran, neues Projekt geöffnet, Adresse der CPU ausgewählt
- Datenbaustein aus RAM erstellen gemacht
- DANACH Laden aus CPU (Programmbaustein, Datenbaustein, Systemdatenbaustein) gemacht, Projekt abgespeichert.
- Neue CPU an Strom angeschlossen, gesamtes Projekt raufgeladen
- CPU ausgewechselt

Läuft nicht. TD200 zeigt praktisch nichts an.
Die alte CPU hat E-Stand 03 (die neue: 05), kann das ein Problem sein?
 

Hm dort geht es um den Wechsel eines HMI TD200. Mein Problem ist der Austausch der CPU.
Dass das TD200 o.k. ist sehe ich, weil es mit der alten CPU problemlos funktioniert (übrigens ist das Nicht-richtig funktionierende TD nur eins der Probleme, die ich bekomme wenn ich die neue CPU einbaue)

edit:
was stelle ich mit den 2 Poti-Reglern auf der CPU ein, die mit "0" und "1" bezeichnet sind?
 
Erst hast du den DB aus RAM erstellt. Mit dem erneuten Upload
DANACH Laden aus CPU (Programmbaustein, Datenbaustein, Systemdatenbaustein) gemacht, Projekt abgespeichert
hast du den erstellten DB mit dem ursprünglichen DB aus dem Ladespeicher überschrieben.

Hast du dir die DBs (RAM/Ladespeicher) mal angeschaut, um zu sehen wo die Unterschiede sind ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Werte der beiden Potis stehen in den SMB (Sondermerkerbyte) 28 und 29, damit kann man Werte vorgeben, z. B. für Timer, PWM-Ausgänge, mathematische Operationen etc. Wofür SMB28 und SMB29 verwendet werden, kannst du nur aus dem Programm ersehen.
 
Hm dort geht es um den Wechsel eines HMI TD200. Mein Problem ist der Austausch der CPU.
Dass das TD200 o.k. ist sehe ich, weil es mit der alten CPU problemlos funktioniert (übrigens ist das Nicht-richtig funktionierende TD nur eins der Probleme, die ich bekomme wenn ich die neue CPU einbaue)

Läuft nicht. TD200 zeigt praktisch nichts an.
Die alte CPU hat E-Stand 03 (die neue: 05), kann das ein Problem sein

Ich bezog das auf die verschiedenen CPU - Versionen.

In dem verlinkten Thread wird darauf eingegangen
 
So fehlt beispielsweise auf dem angeschlossenen TD200 der Anzeigetext (teilweise).
Ein paar projektspezifische Texte werden aber angezeigt?
Das sieht nach einer dynamischen Anzeigeprogrammierung aus. Der Programmierer der das drauf hatte, der hat bestimmt auch noch andere intelligent (?) programmierte Programmteile. Da kann es sein, daß das Laden eines aus Online erzeugten Datenbausteins kontraproduktiv ist.

Ich würde mir vom TD200 alle Einstellwerte abschreiben. Dann das originale Projekt in die neue CPU laden mit dem Datenbaustein so wie er im Projekt ist. Den gesicherten Datenbaustein NICHT in die CPU spielen.
Dann die CPU starten und die aufgeschriebenen Einstellwerte eingeben.

Wenn dann die Maschine nicht wie mit der original-CPU läuft, dann den Datenbaustein aus dem Projekt mit dem in der original-CPU vergleichen. Wieviele Unterschiede werden angezeigt? Die angezeigten Unterschiede manuell ins Offline-Projekt einpflegen und dann den Datenbaustein erneut in die neue CPU laden.

Du kannst auch die Maschine in einen sicheren gestoppten Grund-Zustand bringen, die CPU auf Stop schalten und mit der Statustabelle mal die Werte der Merkerbytes MB0..MB31 auslesen und in die neue CPU schreiben (im Stop).

- Welche Firmwareversion hat die originale CPU, welche Firmwareversion hat die neue CPU?
- Werden bei Zielsystem > Informationen Runtimefehler angezeigt?
- Läuft die Uhr der CPU? Ist sie korrekt gestellt?
- Wird in dem Programm TODR/TODW verwendet?
- Wird in dem Programm SMB31 oder SMW32 verwendet?
- Wird in dem Programm SMB28 oder SMB29 verwendet?
- Sind in dem Originalprojekt oder in der Maschinen-Dokumentation Inbetriebnahmehinweise?
- Sind in dem Originalprojekt Statustabellen vorhanden? Welche Adressen sind da eingetragen?
- Ist die SPS außer mit dem TD200 auch noch anderweitig vernetzt?
- Gibt es Kontakt zum Hersteller bzw. Programmierer der Maschine?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um die zuletzt gestellten Fragen zu beantworten.

-Am TD 200 werden keine (Mess- / Soll- ...) Werte eingetragen. Dies TD200 dient lediglich der Auswahl welcher Antrieb mit dem Analog-Joystick daneben bewegt werden soll.

- Die alte CPU ist E-Stand 03, die neue CPU ist E-Stand 05
- Uhr läuft korrekt
- DOkumentation gibts nicht
- Statustabellen sind sehr viele vorhanden
- SPS ist via Profibus mit 2 weiteren S7-200 vernetzt
- Hersteller / Programmierer gibts nicht / nicht mehr.


Aber mal zusammengefasst von meiner Seite:
Es muss doch grundsätzlich problemlos möglich sein, baugleiche Hardware auszuwechseln ohne Programmieraufwand.
Ich habe das Programm, ich kann zum Glück noch immer problemlos auf die alte CPU zugreifen (ist noch immer eingebaut, macht momentan 1x in 2 Wochen dies SF-Problem).
Da muss es doch eine Servicefreundliche Lösung geben ?!

Das einzige, was ich mir vorstellen könnte - reine Theorie (weil ich es nich tbesser weiss) - ist, dass meine neue CPU trotz gleicher Bestellnummer irgendwie nicht 100%ig identisch ist und daher die Probleme kommen.
Ich hätte noch eine CPU mit E-Stand 04 im Schrank...
 
Liegt das Problem evtl. nicht zwischen der betroffenen CPU und dem TD sondern in der Kommunikation zwischen den CPU's?
 
Keine Ahnung.
Aber wenn das Backup richtig eingespielt wurde, müsste doch eigentlich auch sämtliche Kommunikations-Konfiguration übernommen worden sein, richtig?
 
Zurück
Oben