Hilfe zu Datenbausteine

dkeipp

Level-1
Beiträge
59
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Tach zusammen!

Bitte nehmt mich jetzt nicht auseinander! Ich möcht anmerken das alles was ich über Step7 und Simatic weiss mir selbst über Kollegen bzw. das Forum zusammengelernt hab!

Ich versteh den Sinn und die Anwendung der Datenbausteine nicht wirklich. Ich kann mir denken das es sowas ist wie eine "Erweiterte Variablentabelle" nur das man die halt auf die Steuerung übertragen kann und damit Initialwerte hinterlegen kann bzw. Rezepturdatensätze. Nur irgenwie kann ich recht wenig bis überhauptnichts damit anfangen. Hat jemand mal ein kleine beipspielprojet oder kann mir das verständlich erklären? Irgendwann muss ich ja mal dahinterkommen.
 
Datenbausteine sind Speicher, den du für dich reservieren kannst. Dort legst du Werte ab oder liest sie oder beides.

Die meisten DB´s sind remanent, d.h. du kannst da Nullspannungssicher Daten ablegen.

Merker sind etwas ähnliches wie DB´s ( ganz vorsichtig ausgedrückt, für Laien)

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

bei kleinen Sachen kommt man ganz gut mit Merkern hin. Wenn man aber grössere Sachen macht stellt man fest das Merker nicht unendlich sind und das Schreiben der Zuordnungsliste einem ganz nett auf den Keks geht, vor allem wenns immer das gleiche für z.B. 20 Motoren ist. Bei nem DB hast du die Möglichkeit mit Strukturen oder Arrays zu arbeiten. Beispiel:

Du hast 20 Frequenzumrichter mit Motor. Die Motoren sollen alle einzeln gesteuert werden. Du möchtest sie starten, stoppen, die Geschwindigkeit vorgeben und den Status (ob ein Fehler anliegt) abfragen. Nun könntest du 20 mal in deine Zuordnungsliste ein MW für die Geschwindigkeit eintragen, oder du erstellst eine Struktur (UDT) für einen Motor, und erstellt einen DB mit 20 X der Struktur. Fertig. Du möchtest was erweitern? Dann änderst du die Struktur, rufst den DB auf, und schon hast du alle die Änderung für alle 20 Motoren vorgenommen.
Mit DBs lässt sich auch schön strukturiert programmieren. Wenn du z.B. eine Machine mit mehreren Stationen hast könntest du dir Merkerbereiche für jede Station reservieren, oder du nimmst einen DB der alle Daten dieser Station enthält. Oft sind auch grosse Bereiche für verschiedene Station gleich, du brauchst sie aber nur einmal schreiben und in jeden DB kopieren. Über den Punktoperator kannst du auf die Daten zugreifen und das ganze lässt sich super lesen. Bsp.:

U Motor1.Start
U Motor2.Start
S Motor3.Start

Du musst nicht nachgucken welcher Merker/Bereich denn nun zu Motor3 gehört. MotorX steht halt für nen DB und Start für ein Bit darin.

Du möchtest alle Daten der Motoren in einem DB? Das sieht dann so aus:

U DBDatenMotor.Motor1.Start
U DBDatenMotor.Motor2.Start
S DBDatenMotor.Motor3.Start


Das ganze geht mit wenig Tipparbeit, aber was wichtiger ist: Man braucht sich nicht unbedingt mit absoluten Adressen rumschlagen. So ist es auch möglich mit Instanzen zu arbeiten.

Du möchtest z.B. eine Funktion ( Geschwindigkeit berechnen)auf mehrere Motoren anwenden. Du kannst das 20 mal per Hand machen, oder du schreibest eine Funktion, rufst sie 20 mal mit verschiedenen DBs auf und fertig...

Wie gesagt: Am Anfang braucht man das nicht. Ich arbeite fast nur noch mit DBs, ausser bei Dingen die nach dem einschalten der Maschine "Aus" sein sollen wie z.B. AutomatikStart usw. So spart man sich das rücksetzen. Ausserdem nutze ich keine remanenten Merker, da man sonst auch wieder auf Bereiche achten muss und das zu blöden Fehlern führen kann. Was auch nach dem wiedereinschalten gemerkt werden muss, oder wo das strukturieren Sinn macht, landet bei mir in DBs.
Aber da kommst du auch noch hinter :cool:

Torsten
 
Vielen Dank erstmal!
Wenn mein PLCSIM funktionieren würde, hätte ich das mal ausprobiert :( naja, muss halt bis zum WE warten
 
Zurück
Oben