Beschreibung
Mit der Anweisung 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 Anweisung startet die CPU sonst den OB 121. Wenn der OB 121 nicht vorhanden ist, wechselt die CPU in STOP; bei S7-300 (Ausnahme: CPU 318) erfolgt das Löschen des DB ohne Aufruf des OB 121.
|
Hinweis Das Löschen von Instanz-DBs mit "DEL_DB" ist nicht sinnvoll und führt stets zu Programmfehlern. Vermeiden sie daher das Löschen von Instanz-DBs mit "DEL_DB"! |
Die folgende Tabelle erläutert, wann ein DB mit "DEL_DB" gelöscht werden kann.
|
Wenn der DB ... |
dann ist er mit "DEL_DB" ... |
|---|---|
|
durch Aufruf der Anweisung "CREAT_DB" erzeugt wurde, |
löschbar. |
|
auf die CPU übertragen wurde und nicht mit dem Attribut "nur im Ladespeicher ablegen" erzeugt wurde |
löschbar. |
|
mit dem Attribut "nur im Ladespeicher ablegen" erzeugt wurde |
|
|
durch Aufruf der Anweisung "CREA_DBL" erzeugt wurde |
löschbar |
|
auf der Flashcard gespeichert ist, |
nicht löschbar. |
Unterbrechbarkeit
Die Anweisung ist von höherprioren Ablaufebenen unterbrechbar. Falls dort die Anweisung erneut aufgerufen wird, wird dieser zweite Aufruf abgebrochen, und in RET_VAL wird W#16#8091 eingetragen.
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "DEL_DB":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
DB_NUMBER |
Input |
WORD |
E, A, M, D, L oder Konstante |
Nummer des zu löschenden DB |
|
RET_VAL |
Return |
INT |
E, A, M, D, L |
Fehlerinformation |
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter RET_VAL
|
Fehlercode (W#16#...) |
Erläuterung |
|---|---|
|
0000 |
Es ist kein Fehler aufgetreten. |
|
8091 |
Bei ineinandergeschachtelten "DEL_DB"-Aufrufen wurde die maximale Schachtelungstiefe der verwendeten CPU überschritten. |
|
8092 |
Die Funktion "Löschen eines DB" ist momentan nicht durchführbar, weil
|
|
80A1 |
Fehler beim Eingangsparameter DB_NUMBER: Der gewählte Aktualparameter
|
|
80B1 |
Der DB mit der angegebenen Nummer ist im Arbeitsspeicher der CPU nicht vorhanden. |
|
80B3 |
Der DB befindet sich auf der Flashcard. |
|
80B4 |
Der DB konnte nicht gelöscht werden. Mögliche Ursachen:
|
|
80C1 |
Die Funktion "Löschen eines DB" ist wegen temporären Ressourcenengpasses momentan nicht durchführbar. |
|
8xyy |
allgemeine Fehlerinformation Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL |