# DB im Programm automatisch erstellen/löschen



## Khornedb (16 Oktober 2020)

Hallo,

ich habe eine Frage: Ist es möglich ,über einen Befehl oder Baustein, einen DB im Programmablauf erstellen zu lassen (am besten aus einem UDT)? und auch wieder bei bedarf zu löschen?

Es handelt sich um eine Montagestraße mit mehreren Stationen. In der einem Bauteil pro Station diverse Daten zu geordnet werden müssen und diese auch an die nächste Station weitergegeben werden sollen. Ich möchte gern pro Teil einen DB erzeugen lassen und entweder die DB-Nummer oder den DB-Namen, an die Teilenummer des Bauteils anpassen und bei bedarf auch wieder löschen. 
Ich programmiere das ganze im Tia V15.1 auf einer s7-1500

Leider konnte ich im Netz dazu bisher nichts finden. Nun hoffe ich hier auf etwas Hilfe.
Vielen Dank im Vorraus!


----------



## DeltaMikeAir (16 Oktober 2020)

DB erstellen kannst du mit Create_DB ( Größe nur per Anzahl der Bytes vorgebbar, kein UDT ):

https://support.industry.siemens.com/cs/mdm/109755202?c=107337788171&lc=de-DE


----------



## DeltaMikeAir (16 Oktober 2020)

> In der einem Bauteil pro Station diverse Daten zu geordnet werden müssen  und diese auch an die nächste Station weitergegeben werden sollen.


Ich würde ja eher mit festen DB´s arbeiten, pro Station und bei einem Wechsel die Werte von Station1 zu Station2 kopieren usw.


----------



## PN/DP (16 Oktober 2020)

DeltaMikeAir schrieb:


> Ich würde ja eher mit festen DB´s arbeiten


Ich auch. Bei festen DB (z.B. mit Arrays) merkt man schon beim Laden in die CPU, ob für die vorgesehene Anzahl Datensätze garantiert genug Datenspeicher vorhanden ist.
Bei Speicherung in dynamisch erzeugte DB merkt das Programm möglicherweise erst beim 1001. Teil daß kein Datenspeicher mehr verfügbar ist (hoffentlich hat der Programmierer dafür eine Fehlerreaktion programmiert.)

Weiterer Nachteil: Variablen in dynamisch erzeugten DB können nicht symbolisch angesprochen werden. Die Daten müssen erst auf symbolisch ansprechbaren Speicher kopiert werden.

Harald


----------

