also *g* .....die Funktion ist schon ok so ....weil der SFC23 löscht nämlich meinen Baustein![]()
Man hatte mich also falsch verstanden....ich will keinen DB entfernen sondern nur mit Nullen befüllen *g*.
Naja das nur als Info
Gruß
Martin
Morgen die Herren,
vor kurzem hatte ich die Frage gestellt wie ich am besten Bereiche eines oder komplette DB "resete" (vgl. http://www.sps-forum.de/phpBB2/viewtopic.php?t=84)
Man hat mir unter anderem den SFC23 empfohlen:
" Mit der SFC 23 "DEL_DB" (delete data block) löschen Sie einen im Arbeitsspeicher und gegebenenfalls im Ladespeicher der CPU liegenden Datenbaustein. Der zu löschende DB darf weder in der aktuellen noch in einer niederprioren Ablaufebene aufgeschlagen sein. D. h., er darf weder in einem der beiden DB-Register noch im B-Stack eingetragen sein. Bei Aufruf der SFC 23 startet die CPU sonst den OB 121. Wenn der OB 121 nicht vorhanden ist, wechselt die CPU in STOP.
Mit dem SFC 23 ist ein Datenbaustein löschbar wenn:
Durch Aufruf der SFC 22 "CREAT_DB" erzeugt wurde oder mittels STEP 7 auf die CPU übertragen wurde und nicht mit dem Schlüsselwort
UNLINKED erzeugt wurde.
NICHT LÖSCHBAR allerdings wenn er auf der Flashcard gespeichert ist! "
Nun habe ich meine Funktion damit versucht:
Um ganz sicher zu gehen die Hirarchieebenen einzuhalten, rufe ich den wie folgt auf :
OB1 => FB11 => SFC 23
Der zu "resetende" DB, DB 59 befindet sich tiefer:
OB1 => FC50 => FB59 => DB59
Meine SPS geht trotz OB121 in Sammelfehler. Baugruppenzustand:
"Bereichslängenfehler beim Schreiben
DB nicht geladen"
Hat jemand eine Idee was ich falsch mache ?
Gruß
Martin
also *g* .....die Funktion ist schon ok so ....weil der SFC23 löscht nämlich meinen Baustein![]()
Man hatte mich also falsch verstanden....ich will keinen DB entfernen sondern nur mit Nullen befüllen *g*.
Naja das nur als Info
Gruß
Martin
Moinsens,
in dem kleinen Bspl. kannst du sehen, wie man ein Array auf '0' setzt.
Diese Funktion kannst du natürlich auch auf einen DB übertragen.
(Fill = SFC 21)
Code:L 0 // Wert '0' für CLEAR laden T #Wert_0 U #T_Clear // CLEAR ARRAY SPBN CLR CALL "FILL" BVAL :=#Wert_0 RET_VAL:=#Fehlercode BLK :=#Visi.Raeumfolge CLR: NOP 0
mfG
Ingo dV
Regelmässiges Versagen ist auch
eine Form der Zuverlässigkeit
Bookmarks