Step 7 Funktionsbaustein mit Instanzdatenbaustein erweitern, Aktualdaten beibehalten, sicher

PeterGötz

Level-1
Beiträge
48
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich bewege mich mit Step7 V5.6 (classic) ein altes Projekt. Im TIA habe ich damit keinerlei Probleme, aber bei Step 7.

Ich habe einen sehr grossen Funktionsdatenbaustein mit zugehörigem Instanzdatenbaustein. Nun will ich diesen FB erweitern. Dazu möchte ich die vordere Struktur vom InstanzDB nicht ändern. Ich hänge nur "Hinten" am DB bzw. im Deklarationsteil des Funktionsbausteines neue statische Daten/Strukturen und einzeldaten IEC-Timer usw. an.

Mein Problem: Ich muss die Aktualdaten beibehalten, bzw. anschliessend wieder aktualisieren.

Vorgehensweise:
- Irgendwie die Aktualdaten im InstanzDB speichern (ABER WIE ?)
- Die Änderungen im FBxy, DBxy durchführen.
- Im OB1 den Aufruf vom FBxy,DBxy aktualisieren. Hierbei wird der Instanzdatenbaustein neu generiert.
- Den FBxy und DBxy einkopieren auf die SPS. Hierbei gehen mir die Aktualdaten verloren.
- Die alten Instanzdaten bis DBX2183.7 wiederherstellen (ABER WIE?)

Mit einer Variablentabelle funktioniert es, als Speicher der Instanz(Datenbausteines), ist aber enorm Zeitaufwendig. Kann es jemand von euch geschickter / einfacher ? Danke Peter Götz
 
Moin moin,

da gibt es mehrere Möglichkeiten. Ich bevorzuge folgende:

Du solltest auf jeden Fall vorher eine Kopie deines Online Programms machen. Z.B. dafür ein neues S7Programm innerhalb deines Projekts anlegen und da rein kopieren. In der gespeicherten Online Kopie sind nun die aktualwerte gespeichert.

Nachdem du die ganzen Änderungen gemacht hast kannst du diesen Online DB in dein eigentliches Projekt auf eine andere DB Nummer kopieren und danach mittels SFC20 BLKMOV in den eigentlichen InstanzDB kopieren. Da die Bausteine untershciedlich lang sind wirst du einen absoluten Pointer an den BLKMOV schreiben müssen.

Gruß Christian
 
Kopier aber das ganze Online Projekt und nicht nur die DBs. Wenn du die IDBs ohne FBs kopierst dann kannst du dir die Aktualwerte im DB nicht ansehen, da im DB nur Kaudawelsch steht.
 
Also bei normalen DBs kannst einfach den Online DB in dein Offline Projekt kopieren und überschreiben.
Dann behält er die Symbolik und hat aber auch die Aktualwerte eingetragen.
Denke bei Instanzen sollte das auch funktionieren.
Hab ich so schon gemacht.

Aber bitte mit vorheriger Sicherung der Offline Daten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bei normalen DBs kannst einfach den Online DB in dein Offline Projekt kopieren und überschreiben.
Dann behält er die Symbolik und hat aber auch die Aktualwerte eingetragen.
Denke bei Instanzen sollte das auch funktionieren.
Hab ich so schon gemacht.

Beim nächsten Konsistenz prüfen wird der kopierte DB dann aber neu generiert und dann hat man entweder Online und Offline Stand unterschiedlich oder man überschreibt die Aktualwerte des DBs wieder wenn man den DB hochlädt. Ich habe viele (Ex-)Kollegen, die genau das machen, man kommt dann an Anlagen an denen 30 DBs zwischen Online- und Offline Stand unterschiedlich sind. Das war mir immer ein Graus.
 
Zurück
Oben