UDT Bausteine

redscorpion

Level-1
Beiträge
90
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle,

Habe eine Frage, habe in Bücher nachgelesen, aber irgendwie ist zu wenig über UDT Bausteine zu finden.

Kann mir einer erklären für was man diese UDT Anwenderdefinierten Bausteine genau benötigt ?

Ist das der gleiche Baustein wie ein DB, wie greift man´auf einen UDT zu.... ?

Vieleicht hat jemand lust mir das zu erklären, würde mich sehr freuen darüber.

Gruß
und Danke im voraus
 
Ein anwenderdefinierte Datentyp (UDT) entspricht einer Struktur (Zusammenfassung
von Komponenten mit beliebigen Datentyp), die Global gültig ist. Es können anwender-
definierten Datentypen Eingesetzt werden, wenn sich eine Datenstruktur häufig im
Programm befindet oder einer Datenstruktur ein Namen gegeben werden soll.

Als Beispiel könntest du für einen Regler eine Struktur für die Parameter erstellen,
diese kannst du dann im einen Datenbaustein einfach einfügen und dann endsprechend
benennen "Regler_1"; "Regler_2".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In einer UDT kann man eine Datenstruktur anlegen aus beliebigen Elementen, die auch in einem DB benutzt werden können.

z.Bsp.:

Name: String
Vorname: String
Geburtsdatum: Date

Diese UDT kann man dann in einen DB legen und zwar entweder einfach im DB einfügen oder aber auch als Array of UDTx
Die UDT allein nützt dir also noch nicht, du mußt sie in einem DB auch als Variable deklarieren.

Dann hat man z.Bsp. ein Array

Teilnehmer Array[1..100] of UDTx

und kann mit Teilnehmer[1].Name usw. arbeiten.

Wobei der Index von Teilnehmer leider nur in SCL sinnvoll variabel verwendet werden kann, in AWL muß man indirekt adressieren und da nutzt dann die UDT auch nicht viel.

Ich sehe 2 Vorteile:

1. Mit UDT kann man einen DB schnell anlegen und gut strukturieren. Willst du obiges Beispiel per Hand anlegen, braucht das etwas mehr Zeit.
2. Du kannst UDT in einem FC/FB Variable deklarieren und anlegen. Dann kannst du z.Bsp. einen Input (inTeilnehmer) als UDT deklarieren, in einem DB, wie oben beschrieben Teilnehmer anlegen und direkt die UDT aus dem DB an den FC/FB als Input anlegen (Teilnehmer[10]). IM FB kannst du dann wie gewohnt mit den Variablen der UDT weiterarbeiten also mit

#inTeilnehmer.Name

In SCL kann man das alles m.E. am besten nutzen und einsetzen, aber auch in AWL ist das durchaus praktisch.
 
Zuletzt bearbeitet:
Udt

Ist dann ein UDT so was wie ein Inhaltsverzeichnis, wo ich mir bestimmte Daten Sammeln kann und sie zu einem späteren zeitpunkt nur in einen DB kopiere ?
 
ähm...änlich. UTD kannst du dir in etwa wie eine Art Sammlung on
Variabeln vorstellen, eine Art Makro. Dieses Makro kannst du dann wieder
in Bauteine einfügen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
diese UDT Bausteine werden aber nicht in der CPU SPS abgespeichert oder. Also gehört wenn ich es richtig verstehe ein UDT meinetwegen UDT 1 mit Global DB 1 zusammen.kannst du mir vieleicht wenn du lust hast so ein kleines Beispiel Schritt für Schritt erklären oder mit Bilderr vereinfachen.

Danke dir
 
Ich habe jetzt kein Step 7 zu Hand, aber es ist nicht schwer:
Du fügst ein UDT1 in deine Bausteinliste ein und nennst diesen "Test"
Jetzt öffnest du ihn mit einen Doppelklick und fügst ein paar Variabeln ein.
Ein Bool
Aus Bool
HM Bool
Das ganze abspeichern, jetzt fügst du in dein Bausteinverzeichnis eine DB1 ein
und gibst diesen auch einen Namen "Test_UDT", öffne diesen Baustein und
schreibe in der ersten Zeile "Antrieb_1" als Datentyp nimmst du jetzt den
UDT1, das gleiche kannst du jetzt beliebig oft wiederholen.

Auf diese Variabeln kannst du jetzt in Bausteine beliebig zugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
das ist nicht so einfach, sich das vorzustellen, wenn man gerade keine Anwendung dafür hat.
Ein UDT ist eine Struktur, die festlegt, wie ein Speicherbereich benutzt werden soll.
Bleib mal bei dem Beispiel von Helmut und leg dir so eine UDT, wie beschrieben, an.
Nun erzeuge in einem DB eine Variable mit dem Namen "mein_Motor" und leg als Datentyp dafür den Namen der UDT fest. Nun kannst du in deinen Programmen die Variablen der Struktur symbolisch so verwenden : U "mein_DB".mein_Motor.EIN (z.B.).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
das ist nicht so einfach, sich das vorzustellen, wenn man gerade keine Anwendung dafür hat.
Ein UDT ist eine Struktur, die festlegt, wie ein Speicherbereich benutzt werden soll.
Also ich bezeichne den UDT gerne als Muster.
Der UDT wird (im Regelfall) strukturiert angelegt und dient dann als Muster für den DB der diesen UDT aufruft.
Dabei kann der DB ganz aus einem UDT (Muster) bestehen oder aus mehreren (Arrays) oder aus verschiedenen.
Die UDT's gibt es nur Offline.
Wenn ein UDT geändert wird, muss der entsprechende DB, in dem dieser UDT verwendet wird, frisch übersetzt und anschließend in die SPS übertragen werden.
Wird ein aufgerufener UDT gelöscht oder geändert und nicht übersetzt, kann der entsprechende DB nicht mehr symbolisch angezeigt werden.
 
Zurück
Oben