Arten von Datenbausteinen

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hier mal einen Auszug aus meinem Fachbuch, den ich nicht ganz verstehe:

"Datenbaustein mit zugeordnetem anwenderdefinierten Datentyp"
Anlegen als Datenbaustein mit anwenderdefiniertem Datentyp; hierbei deklarieren Sie die Datenstruktur als anwenderdefinierten Datentyp UDT

Mit dieser Erklärung kann ich einfach nichts anfangen. Was meinen die mit "anwenderdefinierten Datentyp UDT"

Das Fachbuch heisst "Automatisierten mit Step 7 in AWL und SCL" von Hans Berger.

Was ein Globaldatenbaustein ist, ist mir klar. Genauso wie einen Instanz Datenbaustein aus der Deklaration eines Funktionsbaustein.

Danke im vorraus.
 
ein udt ist im prinzip eine matrix für einen anderen db.

du erzeugst z.b einen udt mit einem array von 1...10.
dann erzeugst du einen normalen db. dort kannst du nun den udt als typ einfügen.

so kannst du auf relativ einfache weise komplexere db's erstellen
 
Lobo schrieb:
wo kann ich denn einen UDT erzeugen?
Mit Step7 anlegen. "Bausteine"-"neues Objekt einfügen" - "Datentyp" auswählen.
Lobo schrieb:
Oder besser gefragt, wo kann ich diese am besten einsetzen?
Das Konzept ist in anderen Programmiersprachen als "struct" (C) oder "record" (Pascal) bekannt. Es dient dazu einen Datensatz "record" in einem Block zusammenzufassen, der die Struktur "struct" widerspiegelt. Standardbeispiel aus der Informatik (für die Automatisierung nicht so zutreffend) sind die Daten einer Person:
Man definiert einen Block, der Felder Name, Vorname, Geburtsdatum und Adresse enthält. Adresse kann dann selbst wieder so ein "struct" aus PLZ, Ort und Strasse sein. Dieses "Schachteln" geht auch bei UDTs.
Eine Anwendung in der Automatisierungstechnik könnte die Beschreibung mehrerer identisch aufgebauter Maschinenteile sein, die sich in Kenngrößen oder aktuellen Zuständen unterscheiden:
UDT für eine Pumpe:
EINAUS BOOL //Schaltzustand
MOTORSCHUTZ BOOL //Kopie vom Eingang des MS
NETZSCHUETZ BOOL //Kopie zum Ausgang des MS
STDRSCHUETZ BOOL //Kopie zum Ausgang des Stern-Dreieck-Schuetzes
BETR_STD DINT // Betriebsstunden

Hast du nun 3 oder 30 Pumpen, so brauchst du zunächst die Felder nicht alle wieder hinzuschreiben. Ferner kannst du einen Funktionsbaustein so anlegen, daß du ihm nur übergibst, wo der UDT im Speicher (DB) anfängt. Der FB selbst wird dann so erstellt, daß er im 1.Bit ab der Adresse des UDT den Schaltzustand u.s.w und im darauf folgenden DINT die Betriebsstunden erwartet.
 
Zurück
Oben