TIA Vermeidung vom Initialisieren der DBs

GrauesHaar

Level-2
Beiträge
111
Reaktionspunkte
66
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich sitze an einer Anlage, soll Änderungen machen und möchte unter allen Umständen vermeiden, dass meine DBs neu initialisiert werden.

CPU 1516F-3 PN/DP, 6ES7 516-3FP03-0AB0, FW: 3.0
TIA, V18, Upd5

Nun habe ich einen Test gemacht:
Habe den Namen einer Variabel in einem globalen DB geändert. Wenn ich "Download to device, Software (only changes)" wähle (rechter Klick auf CPU), warnt mich TIA bereits, dass die Datenbausteine (Mehrzahl!!) initiiert werden, wenn ich den Ladevorgang fortsetze.
InitialisierungDBs.jpg
Wenn ich nun den Namen der Variablen zurückändere, dann kann ich wieder meine Änderungen laden, ohne Initialisierung der DBs.

Mach ich da irgendetwas falsch? Gibt es einen Weg, sodass ich die Namen von Variablen ändern kann, ohne die DBs neu zu initialisieren? Das kann Siemens doch nicht ernst meinen, oder doch?

Zweite Frage:
Bevor ich die Anlage verlasse, würde ich gerne bei bestimmten DBs die Aktualwerte in die Startwerte laden. Wenn ich die Snapshot in die Startwerte lade, erfolgt dies ja offline. Somit muss ich ja den DB noch in die SPS laden.
Kann ich das machen, ohne wieder die übrigen DBs zu initialisieren?

Ich habe schon einige Zeit im Internet gesucht. Viele haben hier wohl Probleme. Leider habe ich noch keine Antwort gefunden.
Gibt es eine?

Vielen Dank für eure Zeit!
 
[...] warnt mich TIA bereits, dass die Datenbausteine (Mehrzahl!!) initiiert werden, wenn ich den Ladevorgang fortsetze.
Das dürfte trotzdem nur der eine DB sein, der neu initialisiert wird.

Mich nervt dieses Thema auch, vor allem wenn man nur den Namen angepasst hat, ohne die Datenbreite oder ähnliches zu ändern.
Bei manchen DBs wo sich nicht permanent was ändert, kann man mit Abbildern der Aktualdaten arbeiten. Vor dem Bearbeiten des DBs einen Abbild speichern und nach dem Laden dieses Abbild wieder als Aktualdaten laden. Geht natürlich nicht immer und nicht mit jedem DB, da muss man schon wissen was genau in dem DB drin steht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nun habe ich mir mal erlaubt, den kleinen unscheinbaren "Pfeil rechts" zu klicken.
Guckst du, was dann kommt:
Initialisierung2DBs.jpg
Ich soll die CPU stoppen!
Mir wird ganz übel. DAS kann nicht sein!
Und wie läuft das nun mit der Datensicherung? Macht man das nicht mehr?
 
Was geht ist, die aktualwerte über die Funktion write_DBL (keie Ahnung ob das der richtige Name ist) in die Startwerte zu schreiben. Anschließend lädt du die DBs aus der Steuerung in dein Projekt zurück.
 
Variablennamen in DBs ändern geht bei S7-1500 nicht ohne Verlust der Aktualdaten! Höchstens Kommentare kannst Du ändern. Die CPU musst Du nicht stoppen. Das empfielt TIA nur, damit die Anlage keinen Schaden nimmt.

Wenn Du einen optimierten DB hast und VORHER die Speicherreserve aktiviert hattest, kannst Du ohne Initialisierung am Ende des DB Variablen hinzufügen.

Ansonsten bei nichtoptimierten DBs könntest Du zum Umbenenen von Variablen am Ende vom OB1 den DB in einen Rettungs-DB kopieren und am Anfang vom OB1 den Rettungs-DB wieder zurück in den originalen DB. (aber vorher mal probieren, ob bei Deiner TIA Version und SPS-Firmware die Änderungen wirklich noch im Zykluskontrollpunkt geladen werden. Siemens traue ich zu, das irgendwann mal zu ändern.)

Aktualwerte in das offline-Projekt sichern geht über:
1. Momentaufnahme der Aktualwerte
2. gewünschten DB markieren
3. Momentaufnahme in Startwerte kopieren
4. SPS Änderungsladen

Für Anlagen welche 20 Jahre ohne Stillstand durchlaufen müssen, ist S7-1500 nix, da nimm lieber ne 300er oder 400er...
 
Zuletzt bearbeitet:
Was geht ist, die aktualwerte über die Funktion write_DBL (keie Ahnung ob das der richtige Name ist) in die Startwerte zu schreiben. Anschließend lädt du die DBs aus der Steuerung in dein Projekt zurück.
Das ist halt nicht stoßfrei, genausowenig wie Aktualdaten sichern, DB ändern, DB laden. Wenn da ne Minute dazwischen liegt, haben u.U. wichtige Variablen in der SPS andere Werte und die Anlage geht in Klump... (also alles was gesetzt rückgesetzt wird, Zählwerte, Timer usw...
 
Ergänzend mal den Speicheraufbau anschauen kann vielleicht für die Zukunft helfen.
Bei optimierten Bausteinen muss ein Teil im Voraus geplant werden.


Ansonsten ist die Thematik mit der Reinitialisierung leicht zu überschauen wenn man es einmal verstanden hat.
 
Zuletzt bearbeitet:
Ansonsten ist die Thematik mit der Reinitialisierung leicht zu überschauen wenn man es einmal verstanden hat.
naja ;) Umbenennen von Variablen ist jetzt nicht so selten, aber die Siemens-Praktikanten scheinen das nicht zu benötigen. ;) Und Speicherreserve, naja, geht halt nur am Ende einfügen, was auch irgendwie dämlich ist...

Oder hat sich da jetzt mit V20 oder so mal irgendwas sinnvolles geändert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was geht ist, die aktualwerte über die Funktion write_DBL (keie Ahnung ob das der richtige Name ist) in die Startwerte zu schreiben. Anschließend lädt du die DBs aus der Steuerung in dein Projekt zurück.
Dann werden aber alle Variablen kopiert und nicht nur die "Sollwerte", richtig?
 
Du hast noch nicht viel mit TIA gearbeitet, oder? Ist halt leider vieles anders und schlechter als bei Step7 classic. Und manches weniges vielleicht auch besser...
Nicht so viel wie mit S7-classic, aber bisl schon. Hin und wieder waren meine Startwerte futsch, was oft kein Problem war. Heute wärs "schlecht".
Es wundert mich nur, dass es da keine "Lösung" gibt. Das ganze Gebastel mit "Aktualwerte von Hand rüberkopieren" pp. geht halt nicht, wenn du ne volle CPU mit Hunderten von DBs vor dir hast und du das Programm überhaupt nicht kennst.
Du hättest auch den anderen Pfeil bei "Software" anklicken sollen. Dann würdest Du sehen, welche DBs reinitialisiert werden.
Der Tipp ist Gold wert! Danke! Da schau ich morgen mal nach.
Dann wäre ja die Lösung:
- Bei einem DB, bei dem ich die Sollwerte geändert habe:
-- Snapshot machen
-- Snapshot (nur Sollwerte) in Startwerte laden
- Nachschauen, ob TIA nur dieser DB reinitialisieren möchte.
-- Wenn ja: Kein Problem! Machen!
-- Wenn nein: Projekt wegschmeißen und letzte Sicherung wiederherstellen.
 
Dann wäre ja die Lösung:
- Bei einem DB, bei dem ich die Sollwerte geändert habe:
-- Snapshot machen
-- Snapshot (nur Sollwerte) in Startwerte laden
- Nachschauen, ob TIA nur dieser DB reinitialisieren möchte.
-- Wenn ja: Kein Problem! Machen!
-- Wenn nein: Projekt wegschmeißen und letzte Sicherung wiederherstellen.
weiss nicht, ob Snapshot das selbe wie Momentaufnahme ist. Nutze kein engl. TIA... da gibts ja mehrere Punkte in dem Menü und auch noch bei jeder TIA Version anders...
Auf jeden Fall, die Pfeile nicht verwechseln 😂
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es wundert mich nur, dass es da keine "Lösung" gibt.
frag Siemens, ich hab auch keine Ahnung, warum die das seit über 10 Jahren nicht hinkrigen, dass nicht ständig reinitialisiert wird.
Ich vermute, die verstehen unser Problem garnicht.
In meiner alten Firma hatte wir nen Konzept dafür, war ziemlich einfach, musste man aber wissen...

Ansonsten bei unbekannten Programmen, einfach neue DBs anlegen oder halt Merker hernehmen und fertig. Soll die Welt doch ein anderer retten...
 
Das hier natürlich wieder alle alles besser wissen und viel besser könnten, das ist normal. Warum die nicht alle beim Siemens arbeiten und sich eine goldene Nase verdienen mit ihren tollen Ideen, das bleibt das ewige Geheimnis dieses Forums hier.

Die symbolische Adressierung der 1500er CPUs arbeitet ja gerade eben nicht mehr mit einer absoluten Adresse. Der absoluten Adresse ist der Name der Variable egal, die symbolische Adressierung braucht den exakten Namen... deswegen, liebe Freunde, kann der Name einer Variable niemals nimmer nicht in mehreren Sprachen angelegt werden, sondern muss einzigartig sein... weil die CPU, Überraschung, damit die Adressierung und optimierte Ablage im Speicher durchführt.

So, jetzt haben wir die Variable Peter und nennen sie um ihn Pedro. Peter war der CPU bekannt, er wohnte in Speicherzelle xyz. Jetzt ändert Peter seinen Namen in Pedro, weil er nach Mexico umzogen ist... und die CPU? Woher soll die CPU nun wissen, dass aus Peter Pedro geworden ist?
Denn, das ist der Trick... es ist ja absolut im Bereich des Möglichen, dass aus Peter Pedro wurde... aber in der Variablenliste plötzlich aus Erwin Peter wird... oder im selben DB...

Wie immer an dieser Stelle... wenn jemand der Programmiergötter im Forum hier die Lösung hat. Bitte an Siemens weiterleiten oder meistbietend verkaufen. Die suchen Leute... perfekte Programmierer ohnehin... ehrlich...
Bis dahin ist es Gemecker von Waldorf und Statler aus der Muppetshow.
 
Wenn sich nur Peter in Pedro ungenannt hat, dann sollte vll. auch nur er initialisiert werden und nicht gleich der ganze DB. So wie bei den Codesys Steuerungen. Da ist auch nicht alles perfekt, aber das klappt gut :)
 
Zurück
Oben