Step 7 Datenbaustein Daten in Anfangswerten Rücksichern mit Simatic Manager

Walterman_2010

Level-2
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Zusammen,

ich bin zwar neu im Forum, aber nicht neu im Thema SPS.
Nun möchte ich gerne eine Maschine von Step 7 auf TIA hochrüsten und damit die Daten nicht flöten gehen alle wichtigen DBs Rücksichern.
IM TIA Portal hätte ich die Möglichkeit eine "Momentaufnahme" zu machen und diese in den "Startwerten" zu schreiben. Dies geht im Simatic Manager leider nicht, oder ich hab es noch nicht gefunden.

Mein Plan B sieht wie Folgt aus:
- Aus dem DB eine Quelle Generieren (dort sind die "Momentanwerte" enthalten, sobald das PG Verbindung mit der SPS hat)
- Mittels eines Excelscrips kopiere ich die "Momentanwerte" in die "Anfangswerte"
- Ich Kopiere das zurück in die Quelle und übersetze diese
- im Anschluss lade ich den DB (mit neuen Anfangswerten) in die SPS

Es scheint soweit zu funktionieren, ist aber sehr umständlich sowie Fehleranfällig, da ich viele Datenbausteine im Projekt habe.
Gibt es im Step 7 Simatic Manager eine elegantere Variante der Datensicherung, ähnlich wie der vom TIA beschriebenen?

Gruß
Walterman
 
Nun möchte ich gerne eine Maschine von Step 7 auf TIA hochrüsten
Keine gute Idee. Würd ich mir nochmal in Ruhe überlegen und wenn es keine zwingenden Gründe gibt, würd ich für S7-300/400 bei Step7 classic bleiben.
Gibt es im Step 7 Simatic Manager eine elegantere Variante der Datensicherung
Am Ende die Frage, was Du jetzt konkret genau sichern willst/musst bzw. auch auf keinen Fall sichern darfst.

Mit Step7 classic das aktuelle Projekt öffnen, online gehen, online die gewünschten DBs markieren, rechtsklick->Laden in PG. fertig.

Ist das ne "neuere" 300er mit MMC?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Plan B sieht wie Folgt aus
Viel zu umständlich.
Lade die DB von online ins PG (wie ducati schon schrieb). Dabei im Projekt im Bausteine-Ordner auf Online umschalten, damit die Symbolik erhalten bleibt. Dann hast du schon mal alle Aktualwerte vom Zeitpunkt des Herausladens - sozusagen die "Momentaufnahme" (Schnappschuss).

Die DB aber nicht einfach wieder in die CPU zurückladen, weil dann werden die aus dem Arbeitsspeicher herausgeladenen Aktualwerte ALLE zu Anfangswerten im Ladespeicher (MMC)!
Nur die Aktualwerte im Arbeitsspeicher online ändern geht mit Variablentabellen (VAT) oder mit der Online-Ansicht der DB (nicht alle Datentypen) oder man programmiert sich was mit einer Kommunikations-Lib (z.B. Excel + Libnodave). Es gibt auch fertige Drittanbieter-Programme zum sichern und zurückspielen der Variablen-Aktualwerte.

- im Anschluss lade ich den DB (mit neuen Anfangswerten) in die SPS
Das ist keine so gute Idee, besonders wenn man das Programm nicht sehr genau kennt. Normalerweise sollte sich der ursprüngliche Programmierer Gedanken gemacht haben, welche Anfangswerte er festgelegt hat. Mit anderen Anfangswerten könnte es sein, dass das Programm nicht mehr richtig startet.
Ist vielleicht im Programm etwas eingebaut, was die Maschinen-Einstellwerte sichert und ggf. wieder einspielt?
 
Danke für die Antworten und Hinweise, ich werde es gleich mal ausprobieren.

Würd ich mir nochmal in Ruhe überlegen und wenn es keine zwingenden Gründe gibt, würd ich für S7-300/400 bei Step7 classic bleiben.
Wäre Windows 11 nicht gekommen hätte ich es wahrscheinlich auch nicht vorgeschlagen. Es ist zwar mega unhandlich da die Visualisierung in Tia V13 realisiert ist. Aber das Hauptproblem ist das Step 7 mit Win 11 absolut beschissen läuft. habe auch schon das letzte Update V5.7 glaub ich, installiert, aber verbessert hat es nichts.
Die Anlage bekommt jetzt eh einige größere Programm Änderungen deshalb die Überlegung das auf ein modernes System hoch zu rüsten.
Ist das ne "neuere" 300er mit MMC?
Ja eine S7 315-2DP mit Speicherkarte

besonders wenn man das Programm nicht sehr genau kennt.
Immerhin kann ich von der Anlage behaupten das ich sie kenne. werkel schon seit mehreren Jahren daran rum.
Ich glaube die Original Programmierer sollten schon Längs in Rente sein. Die Maschine ist etwas älter.
 
Die DB aber nicht einfach wieder in die CPU zurückladen, weil dann werden die aus dem Arbeitsspeicher herausgeladenen Aktualwerte ALLE zu Anfangswerten im Ladespeicher (MMC)!
Nur die Aktualwerte im Arbeitsspeicher online ändern geht mit Variablentabellen (VAT) oder mit der Online-Ansicht der DB
Wenn ich so richtig verstehe, ist es ja das was ich möchte, Also die Aktualwerte in den Anfangswerten. Beispielsweise liegen die Rezeptparameter, Überwachungs- und Schrittzeiten, aber auch Reglerparameter in DB Ladespeicher und weichen hard von den Anfangswerten ab. Wichtig ist die Aktuellen Parameter zu erhalten.
Es sind mir zu viele DB, um alle werte einzeln ab zu Tippern.

Der Tipp mit den DBs in PG Laden ist als Datensicherung gut. Danke. Mit war nicht bewusst das man sich die Daten auch offline in der Datenansicht anschauen kann. Ich dachte es geht nur mit Onlineverbindung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also die Aktualwerte in den Anfangswerten. Beispielsweise liegen die Rezeptparameter, Überwachungs- und Schrittzeiten, aber auch Reglerparameter in DB Ladespeicher und weichen hard von den Anfangswerten ab. Wichtig ist die Aktuellen Parameter zu erhalten.
glaub, Du solltest Dich erstmal mit den Begrifflichkeiten sattelfest machen... Da geht viel durcheinander.
Es sind mir zu viele DB, um alle werte einzeln ab zu Tippern.
Tja, Arbeit kann manchmal anstrengend sein ;)
Mit war nicht bewusst das man sich die Daten auch offline in der Datenansicht anschauen kann. Ich dachte es geht nur mit Onlineverbindung.
was willst Du denn anschauen?

Nebenbei, muss man auch noch Global-DBs und Instanz-DBs unterscheiden...
 
ich bilde mir ein die Begriffe ja drauf zu haben. Es ist nur fies dass die Begriffe im Simatic Manager und TIA teilweise unterschiedlich sind. Tut mir leid wenn ich hier was durcheinander Würfel.
Hier mal mein Versuch der Begriffe:
Simatic Manager | TIA Portal
Anfangswert | Startwert
Aktualwert (Datenansicht) | Momentaufnahme
Aktualwert (Beobachtet) | Beobachtungswert
@Aktualwert (Beob.) | Beobachtungswert (bei Instanzbaustein)

was willst Du denn anschauen?
Nun Ja, die Daten zum Zeitpunkt beim Rücksichern. Für den fall, das doch etwas überschrieben worden ist.
Nebenbei, muss man auch noch Global-DBs und Instanz-DBs unterscheiden...
Glücklicherweise ist die Menge der Instanzbausteine im Projekt sehr überschaubar. Aber das mit den Instanzbausteinen war noch ein Sehr guter hin weiß sehe ich gerade.
 
Wäre Windows 11 nicht gekommen hätte ich es wahrscheinlich auch nicht vorgeschlagen. Es ist zwar mega unhandlich da die Visualisierung in Tia V13 realisiert ist. Aber das Hauptproblem ist das Step 7 mit Win 11 absolut beschissen läuft. habe auch schon das letzte Update V5.7 glaub ich, installiert, aber verbessert hat es nichts.
Die Anlage bekommt jetzt eh einige größere Programm Änderungen deshalb die Überlegung das auf ein modernes System hoch zu rüsten.

Step 7 in einer VM laufen zu lassen ist keine Möglichkeit?
 
Die DB aber nicht einfach wieder in die CPU zurückladen, weil dann werden die aus dem Arbeitsspeicher herausgeladenen Aktualwerte ALLE zu Anfangswerten im Ladespeicher (MMC)!
Ich habe in diesem Fall die DBs immer 2 Mal vom PG in die CPU geladen. So hat die CPU dann mit den alten Aktualwerten weitergewerkelt. .so dachte ich jedenfalls. Funktioniert das nicht so einfach?
 
PS: im Detail:
- Neue CPU mit Sicherung laden
- CPU starten (CPU beginnt mit Startwerten)
- DBs noch einmal laden (CPU arbeitet mit alten Aktualwerten weiter)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die DB aber nicht einfach wieder in die CPU zurückladen, weil dann werden die aus dem Arbeitsspeicher herausgeladenen Aktualwerte ALLE zu Anfangswerten im Ladespeicher (MMC)!
Ich habe in diesem Fall die DBs immer 2 Mal vom PG in die CPU geladen. So hat die CPU dann mit den alten Aktualwerten weitergewerkelt. .so dachte ich jedenfalls. Funktioniert das nicht so einfach?
Nochmal das Problem: beim herausladen von DB aus der CPU werden die Aktualwerte aus dem Arbeitsspeicher in die DB geschrieben - nicht die Anfangswerte vom Ladespeicher (MMC)! Beim laden von DB aus dem PG in die CPU werden die Aktualwerte der DB als "anfängliche Aktualwerte" (also Anfangswerte) in den Ladespeicher (MMC) und in den Arbeitsspeicher geschrieben.

Bei Urlöschen, "Kaltstart" und z.B. Remanenzverlust werden die Anfangswerte aus dem Ladespeicher (MMC) in den Arbeitsspeicher geladen. Wenn man also DB einfach aus der CPU lädt und wieder zurück auf die CPU lädt (es reicht schon einmal), dann sind die ursprünglich mal festgelegten Anfangswerte futsch. Das kann dazu führen, dass das Programm beim nächsten Urlöschen nicht mehr richtig startet. Besonders wenn der Programmierer dieses Verhalten ausnutzt, um einen Kaltstart oder Urlöschen zu erkennen und verschieden zu einem normalen Anlauf (Stop-Run) darauf zu reagieren. Oder wenn man z.B. Instanz-DB von aktiven Reglern herauslädt und wieder in die CPU lädt, dann geht der Regler beim nächsten Start von einer Vergangenheit aus, die so gar nicht stattgefunden hat (I und D Anteile). Auch böse Falle: wenn Flankenmerker von Flankenerkennungen oder Instanzen von Timern (!) in DB gespeichert sind, dann kann es durch dieses heraus- und wieder hineinladen dazu führen, dass beim nächsten Start Flanken nicht mehr erkannt werden oder Timer nicht starten, solange bis die betreffenden Signale sich einmal geändert haben. Bei FIFOs werden Variablenwerte zu Anfangswerten, die meist nicht gewünscht werden, und ...

An die ursprünglichen Anfangswerte aus dem Ladespeicher (MMC) kommt man nur heran:
• wenn man das originale Projekt hat (da sind die gewollten Werte ja in den Offline-DB festgelegt)
• oder wenn man die MMC aus der CPU nimmt und im PG ausliest
• oder indem man im Stop der CPU Urlöschen ausführt (da werden die Anfangswerte aus dem Ladespeicher in den Arbeitsspeicher geladen). Beim Urlöschen gehen allerdings (bestimmungsgemäß) die Aktualwerte verloren. Man müsste also zweimal herausladen, um die Aktualwerte vor und nach dem Urlöschen zu erhalten.
 
Tja, Einstellwerte für einen evtl. CPU-Defekt zu sichern ist oft leider nicht trivial. U.U. können sich ja Einstellwerte auch in z.B. remanenten Merkern befinden. Oder in einem DB ist wirr alles vermischt, Einstellwerte die man sichern sollte und andere Variablen, die lieber den ursprünglichen Startwert behalten sollten...
Aber am Ende ists vielleicht besser, alle DBs mal abzuziehen als garnichts zu machen... Man kann sich ja beide Projekte behalten.
Interessant wirds dann spätestens, wenn man das Programm incl. DBs erweitern will/muss...
 
Zuletzt bearbeitet:
Mensch, eine Aktive Community am Wochenende, Großartig, danke.
Was bedeutet "läuft beschissen"?
Step 7 in einer VM laufen zu lassen ist keine Möglichkeit?
Ganz doof gesagt, ich klick was an, und geh mir erstmal einen Kaffee holen. der Performance, vor allem bei Step 7, ist absolut im Keller. Der Notebook ist 2 Jahre alt und war damals das beste gerät der Firma. Bis zum Windows 11 upgrade, lief das ding wie ein Uhrwerk. Simatic Manager V5.7. soll Win11 ja auch unterstützen (daher noch nicht den Umweg über die VM), läuft aber nicht merklich besser als V5.6. Andere Versionen hatte es Schlimmer getroffen, es hatte mir bereits das ALM zerlegt, Tia 15.1 konnte ich mit ein Update Fixen und bei TIA 14 kann die die Visualisierung gar nicht mehr übertragen... aber eig. gehört das nicht ganz hier rein. gibt es ein Forum wo man über Windows 11 schimpfen kann?

Nochmal das Problem: beim herausladen von DB aus der CPU werden die Aktualwerte aus dem Arbeitsspeicher in die DB geschrieben - nicht die Anfangswerte vom Ladespeicher (MMC)! Beim laden von DB aus dem PG in die CPU werden die Aktualwerte der DB als "anfängliche Aktualwerte" (also Anfangswerte) in den Ladespeicher (MMC) und in den Arbeitsspeicher geschrieben.
PS: im Detail (...)
ok ich glaube somit weiß ich nun was ich zu tun habe. Werde es Ausführlich Testen bevor ich damit an die Anlage gehe. Vielen danke für eure Hilfe.

Das kann dazu führen, dass das Programm beim nächsten Urlöschen nicht mehr richtig startet
Ich werde es Sehr ausführlich testen müssen. Irgendwie klingt das nach einer Programmierer Falle. Ich habe speziell sowas noch nicht gefunden. Gibt es das häufiger? Aus reiner Kundensicht, sehe ich hier keine Notwendigkeit warum man das so Programmieren sollte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwie klingt das nach einer Programmierer Falle. Ich habe speziell sowas noch nicht gefunden. Gibt es das häufiger? Aus reiner Kundensicht, sehe ich hier keine Notwendigkeit warum man das so Programmieren sollte.
naja, stell Dir ne Schrittkette vor. Sinnvollerweise sollten die Startwerte der dazugehörigen DBs so festgelegt sein, dass die Schrittkette in Grundstellung oder Schritt 0 oder 1 oder irgendwas sinnvollem steht und nicht in irgendeinem beliebigen Schritt z.B. HCl-Ventile öffnen...

Wenn Du jetzt DBs mitten innerhalb einer laufenden Schrittkette abziehst, passiert genau sowas beim nächsten Urlöschen oder beim Übertragen in eine neue leere CPU oder im TIA beim Reinitialisieren von DBs...

Oder Du hast ne Handbedienung von Feldgeräten, da sollte man die DBs nicht Abziehen, wenn irgendwas gefährliches grad auf HAND EIN steht...
 
Zuletzt bearbeitet:
Irgendwie klingt das nach einer Programmierer Falle. Ich habe speziell sowas noch nicht gefunden. Gibt es das häufiger? Aus reiner Kundensicht, sehe ich hier keine Notwendigkeit warum man das so Programmieren sollte.
doch, das gibt es tatsächlich in der Realität

Die größte unauffällige Falle sind imho Timer-Instanzen in DBs, z.B. EVZ/TON von Eingangssignalen. Wenn die Eingänge beim Aktualwerte abziehen 1 sind, dann starten die Timer nach Urlöschen oder Laden auf andere CPU nicht mehr, wenn die Eingänge da auch 1 sind, und müssen erst einmal nach 0 gehen, damit sie wieder funktionieren.
 
Zurück
Oben