Deklaration eines oder mehrerer direkt →abgeleiteter Datentypen, wobei name_1 , name_2 usw. →IEC-Bezeichner sein müssen. Mit Hilfe solcher Deklarationen können Sie neue typspezifische Initialisierungswerte vorgeben. Wenn Sie z.B. INT -Variablen mit dem Initialisierungswert 5 in →Zuweisungen benötigen, deklarieren Sie einen abgeleiteten Datentyp (siehe Beispiel myINT unten) und verwenden Sie dann myINT als Datentyp für die Variablen, die in den Zuweisungen verwendet werden.
Diese Deklaration ist innerhalb der Deklaration eines anwenderdefinierten Datentyps (TYPE ... END_TYPE ) möglich. Der →Basistyp (data-type ) des abgeleiteten Datentyps muss ein elementarer oder anwenderdefinierter Datentyp sein (siehe "Unterstützte Datentypen").
Mit dem optionalen →Initialisierungswert := initial-value weisen Sie dem Datentyp einen Wert zu. Dieser Wert hat Vorrang, d.h. der Initialisierungswert des Basistyps wird "überschrieben". Falls kein Initialisierungswert für den abgeleiteten Datentyp definiert ist, gilt der Initialisierungswert des Basistyps. Mit
:= beginnen die Initialisierungsangaben. Die erforderliche Initialisierungsangaben richten sich nach dem Basistyp. So weisen Sie mit := initial-value einen Wert bei einem elementaren Basistyp zu. Für einen Array-Datentyp oder einen strukturierten Datentyp als Basistyp benötigen Sie jedoch etwas andere Initialisierungsangaben. Informieren Sie sich bei der Beschreibung des entsprechenden Datentyps über die erforderlich Syntax für die Initialisierung.
Einschränkungen
-
Sie können für data-type keine →Referenz-Typen (REF_TO ... ), keine →Funktionsbausteine und keine →Interfaces angeben.
-
Abgeleitete Datentypen können nur bis max. 10 Ebenen verschachtelt werden. Rekursionen sind dabei nicht zulässig.
|
Das optionale Attribut SIZE für die Bitgröße ist nur erlaubt, falls es sich beim Basistyp um bestimmte elementare Datentypen handelt. Der erlaubte Bereich hängt von diesem Datentyp ab. Mit diesem Attribut definieren Sie die Bits, die zwischen IO-Segment und Variable kopiert werden (siehe folgendes Beispiel für Datentyp bit5 ).
Das Attribut SIZE ist für diese elementaren Datentypen erlaubt:
|
Der dafür erlaubte Bereich ist:
|
BOOL
|
1 Bit
|
SINT , USINT , BYTE
|
1 bis 8 Bit
|
INT , UINT , WORD
|
1 bis 16 Bit
|
DINT , UDINT , DWORD
|
1 bis 32 Bit
|
LINT , ULINT , LWORD
|
1 bis 64 Bit
|
Das Attribut SIZE ist ebenfalls für einen direkt abgeleiteten Datentyp erlaubt, sofern dessen Basistyp einer der oben angeführten Datentypen ist (siehe folgendes Beispiel für Datentyp myBit5_v1 ). Direkte Ableitungen von einem Datentypen mit Attribut SIZE sind ohne und mit Attribut SIZE möglich (siehe folgende Beispiele für Datentypen myBit5_v2 und myBit3 ).
Ein direkt abgeleiteter Datentyp darf dort verwenden, wo auch der elementare Basistyp verwendet werden darf. Beispiel: Der Datentyp myINT aus dem folgenden Beispiel ist als Eingangsdatentyp für den ADD -Baustein zulässig, jedoch nicht der Datentyp typeScalings .
|