# DB komplett oder große Teile löschen



## DiplomandSPS (14 April 2004)

Morgen die Herren   

ich Rahmen einer über SPS gesteuerten Messreihe befülle ich einigen Datenbausteine mit sehr vielen Daten. Mit Ende der Messreihe will ich die DB-Bereiche bzw. komplette DB löschen (mit 0 beschreiben).

Gibt es da einen "Killerbefehl" *g*, der mit dem ich möglich viele Teile ansprechen/löschen kann ?


MfG

Martin


----------



## Markus (14 April 2004)

denke mal das deine dbs für die messungen alle gleich groß sind, und wenn du nicht so auf die zykluszeit achten musst, dann würde ich einen weiteren db mit der selben struktur anlegen in de alle startwerte auf 0 stehen, und die anderen einfach mit sfc20 (blkmv) überschreiben.

oder die länge der dbs mit ner sfc (weiß grad nicht auswendig) berechnen und nen pointer durchrasseln lassen der die 0 reischreibt.

2. lösung wäre je nach befarf über mehrer zyklen verteilbar...


aber ich denke du suchst nen standartbefehl um die dbs in einem zug zu löschen, könnte mir da noch vostellen das du sie komplett löschst und neu erzeugst....


----------



## DiplomandSPS (14 April 2004)

*Ziel: Netzwerkanzahl gering, Übersicht*

Morgen Markus,

es ist so, wie Du vermutet hast:

" aber ich denke du suchst nen standartbefehl um die dbs in einem zug zu löschen, könnte mir da noch vostellen das du sie komplett löschst und neu erzeugst...."

Die Zeit ist dabei nebensächlich ......ich will nicht ca 60 DB-Wörter/Doppelwörter usw einzeln löschen müssen. Ziel ist es eigentlich nur wenig Netzwerke zu haben.....

Gruß

Martin


----------



## NetPirate (14 April 2004)

Hallo,
guckst Du hier:
http://www.sps-forum.de/phpBB2/viewtopic.php?t=809
beim Neuerstellen mit "E DB" werden aber die aktuellen Speicherinhalte in den DB übernommen. D.h. die Werte innerhalb des DB's sind nicht NULL!
Das löschen des DB funktioniert tadellos mit Aufruf des OB124. Das klappt aber nur bei 135U/115U (CPUs 928 oder 948).
Welche CPU nutzt Du?

Gruß
NetPirate


----------



## DiplomandSPS (14 April 2004)

*CPU 313-2DP*

Hallo Net-Pirat,

icn nutze die CPU 313-2DP.

Gruß

Martin


----------



## Onkel Dagobert (14 April 2004)

*SFC21*

Hallo Diplomand,

was du brauchst ist, denke ich, die SFC21 "FILL".



Gruß, Onkel


----------



## Anonymous (14 April 2004)

Hallo Diplomand,

möchtest Du den Baustein löschen dann (Auszug aus der S7-Hilfe):

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!

Gruß
NetPirate


----------



## SPS Markus (14 April 2004)

Hi,

habe mal soetwas benutzt um neu erstellte DB's zu "befruchten".
(Laufende Nummer des Index zu erhöhen) Geht am besten mit einem Schleifenzähler und einem Pointer.


Markus


----------



## Harry (15 April 2004)

Ich hab das mal so gemacht:


      U     M     10.0               //Flankenmerker DB mit 0 überschreiben
      SPBN  INIT

      AUF   DB    10                //Oeffne DB
      LAR1  P#0.0                   //Start Adresse im DB
      L     32                          //Anzahl Doppelworte zum überschreiben
lp:   L     0                           //Wert zum überschreiben
      T     DBD [AR1,P#0.0]    //Zieladresse
      +AR1  P#4.0                  //nächstes Doppelwort
      TAK                               //wieder Schaufenzähler in Akku 1 holen
      LOOP  lp

INIT: NOP 0


Gruss

Harry


----------



## Anonymous (18 April 2004)

*Uhr*

Hallo Diplomand,
kannst du die SPS nicht urlöschen?
Dann ist auch alles weg.
mfG
Elmo


----------



## Markus (18 April 2004)

jo dann ist alles weg, aber das wäre wohl zuviel des "guten" weil das programm und die config auch davon betroffen wären...  :roll:


----------

