Skip to main content

Objekt: DUT

Ein DUT (Data Unit Type) deklariert einen anwenderspezifischen Datentyp.

. Symbol:
  • cds_icon_add_dut.png DUT

  • _cds_icon_textlist_dut.png Enumeration mit Textlistenunterstützung

Sie können ein solches Objekt unterhalb der Applikation oder in der Ansicht POUs hinzufügen.

Beim Anlegen des Objekts öffnet sich der Dialog DUT hinzufügen. Dort können Sie den neuen Datentyp konfigurieren und zwischen den Konstrukten Struktur, Enumeration, Alias und Union wählen.

Tabelle 28. Syntax für die Deklaration der benutzerdefinierten Datentypen

TYPE <identifier> :

<data type declaration>

END_TYPE

DUT-Konstrukt

Eine benutzerdefinierte Datentypdeklaration wird von TYPE und END_TYPE eingeklammert.

TYPE <identifier> :

STRUCT

    <member deklaration>

END_STRUCT

END_TYPE

Eine Struktur umschließt ihre Komponenten mit STRUCT und END_STRUCT. Es können beliebig viele Komponenten deklariert werden, jedoch mindestens zwei.

STRUCT

TYPE <identifier> :

(

    <list of members>

) <base data type> := <inittialization> ;

END_TYPE

Eine Enumeration ist eine durch Komma separierte Liste von Komponentennamen in runden Klammern. Alle Komponenten haben den gleichen Datentyp.

Eine Enumeration kann zusätzlich eine Textliste zugeordnet haben. Diese dient dazu, die Werte der Enumeration zu lokalisieren. Das Objekt verfügt dann zusätzlich über eine Lokalisierungsansicht.

Enumeration

TYPE <identifier> : <data type name> ;

END_TYPE

Ein Alias ist ein alternativer Bezeichner.

Alias

TYPE <identifier> :

UNION

    <member declaration>

END_UNION

END_TYPE

Ein Union umschließt ihre Komponenten mit NUNION und END_UNION. Sie ist ein Datentyp mit mehrere Komponenten, die sich einen Speicherplatz teilen.

UNION



Beispiel 506. Beispiel

Deklaration der Struktur S_POLYGONLINE mit teilweiser Initialisierung von Komponenten

TYPE S_POLYGONLINE :
STRUCT
    aiStart : ARRAY[1..2] OF INT := [-99, -99];
    aiPoint1 : ARRAY[1..2] OF INT;
    aiPoint2 : ARRAY[1..2] OF INT;
    aiPoint3 : ARRAY[1..2] OF INT;
    aiPoint4 : ARRAY[1..2] OF INT;
    aiEnd : ARRAY[1..2] OF INT := [99, 99];
END_STRUCT
END_TYPE

Deklaration der Struktur S_PENTAGON als Erweiterung von S_POLYGONLINE

TYPE S_PENTAGON EXTENDS S_POLYGONLINE :
STRUCT
    aiPoint5 : ARRAY[1..2] OF INT;
END_STRUCT
END_TYPE


Beispiel 507. Beispiel

Deklaration der Enumeration E_TRAFFICSIGNAL

{attribute 'qualified_only'}
{attribute 'strict'}
TYPE E_TRAFFICSIGNAL :
(
    eRed,
    eYellow,
    eGreen := 10
);
END_TYPE

Enumeration mit Textlistenunterstützung in der Lokalisierungsansicht

cds_enum_textlist_example_trafficsignal.png

Am rechten Rand des Editors befinden sich die Schaltflächen _cds_img_button_textual_view.png Textuelle Ansicht und _cds_img_button_tabular_view.png Lokalisierungsansicht. Mit Klick auf die Schaltflächen können Sie zwischen den Ansichten wechseln.



Beispiel 508. Beispiel

Deklaration eines Alias

TYPE A_MESSAGE : STRING[50];
END_TYPE


Beispiel 509. Beispiel

Deklaration einer UNION

TYPE U_DATA :
UNION
    lrA : LREAL;
    liA : LINT;
    dwA : DWORD;
END_UNION
END_TYPE


Dialog: DUT hinzufügen

Funktion: Der Dialog dient der Konfiguration eines neuen Objekts DUT (Data Unit Type).

Aufruf: Menü ProjektObjekt hinzufügenDUT, Kontextmenü des Applikationsobjekts

Name

Name des neuen Datentyps DUT

Beispiel: S_POLYGONLINE

Tabelle 29. Datentyp

Struktur

Legt ein Objekt an, das eine Struktur deklariert, die mehrere Variablen mit unterschiedlichen Datentypen zu einer logischen Einheit zusammenfasst

Die innerhalb der Struktur deklarierten Variablen werden als Komponenten bezeichnet.

Beispiel: S_POLYGONLINE

Erweitert

standard icon: Erweitert eine bereits bestehende Struktur um weitere Komponenten

Geben Sie eine bestehende Struktur im Eingabefeld daneben an. Die Komponenten der bestehenden Strukur sind automatisch in der neuen verfügbar.

Beispiel: S_PENTAGON

Enumeration

Legt ein Objekt an, das eine Enumeration deklariert, die mehrere Integer-Konstanten zu einer logischen Einheit zusammenfasst

Die innerhalb einer Enumeration deklarierten Konstanten werden auch als Enumerationswert bezeichnet.

Beispiel: E_TRAFFICSIGNAL

Eine Enumeration kann zusätzlich eine Textliste haben. Diese dient dazu, die Werte der Enumeration zu lokalisieren. Das Objekt verfügt dann zusätzlich über eine Lokalisierungsansicht.

Textlistenunterstützung hinzufügen

_cds_icon_option_deactivated.png: Enumeration, die über keine Textlistenunterstützung verfügt

standard icon: Enumeration mit zusätzlich hinterlegter Textliste für die Enumerationswerte

Die Textliste ermöglicht Ihnen, die Namen der Enumerationswerte zu lokalisieren.

Beispiel: ETL_TRAFFICSIGNAL

Hinweis: Bei einem bestehenden Enumerationstypen kann die Textlistenunterstützung jederzeit nachträglich hinzugefügt oder wieder entfernt werden.

Dazu dienen die Befehle im Kontextmenü des Objekts:

Textlistenunterstützung hinzufügen

Textlistenunterstützung entfernen

Tipp: Die lokalisierten Texte können Sie beispielsweise in einer Visualisierung ausgeben. Dann erscheint in der Textausgabe eines Visualisierungselements statt der numerischen Enumerationswerte die symbolischen in der aktuellen Sprache. Wenn eine textlistenunterstützte Enumerationsvariable in der Eigenschaft Textvariable eines Visualisierungselements eingetragen wird, erhält sie folgenden Zusatz:

< <enumeration name> >

Beispiel:

Sie verwenden in einer Visualisierung die Variable PLC_PRG.eTrafficLight des Typs ETL_TRAFFICSIGNAL.

ETL_TRAFFICSIGNAL ist eine textlistenunterstützte Enumeration. Der Eintrag im Eigenschafteneditor des Visualisierungselements sieht dann wie folgt aus:

PLC_PRG.eTrafficLight <ETL_TRAFFICSIGNAL>.

Für weitere Informationen siehe auch: Texte verwenden

Tipp: Wenn Sie den Enumerationstyp in der Applikation editieren, erscheint beim Schließen eine Eingabeaufforderung mit der Frage, ob die betroffenen Visualisierungen automatisch aktualisieren werden sollen.

Alias

Legt ein Objekt an, das ein Alias deklariert, mit dem ein alternativer Name für einen Basistyp, Datentyp oder einen Funktionsbaustein deklariert wird

Beispiel: A_MESSAGE

Union

Legt ein Objekt an, das eine Union deklariert, die mehrere Komponenten mit meist unterschiedlichen Datentypen zu einer logischen Einheit zusammenfasst

Alle Komponenten haben den gleichen Offset, so dass sie am selben Speicherplatz liegen. Der Speicherplatzbedarf einer Union wird bestimmt durch den Speicherplatzbedarf seiner „größten“ Komponente.

Beispiel: U_DATA

Hinzufügen

Beendet den Dialog und legt das neue Objekt an

Das Objekt erscheint im Gerätebaum oder in der Ansicht POUs mit dem Symbol cds_icon_add_dut.png. Wenn zusätzlich beim Objekt eine Textliste hinterlegt ist, erscheint das Symbol _cds_icon_textlist_dut.png.