Dokumentace

Odvozené (uživatelské) datové typy

Odvozené typy jsou deklarovány pomocí textové konstrukce TYPE ... END_TYPE. Jména odvozených datových typů, jejich datové typy a jejich inicializační hodnoty jsou uvedeny v rámci této konstrukce. Odvozené datové typy se mohou používat spolu s elementárními datovými typy v deklaracích proměnných. Definice odvozeného datového typu je globální, tj. může být použita v kterékoliv části programu. Odvozený datový typ dědí vlastnosti typu, ze kterého byl odvozen.

Jednoduché odvozené (výčtové) typy

Deklarace výčtového typu dat určuje, že hodnota každého datového prvku tohoto typu použije pouze jednu z hodnot uvedených v příslušném seznamu identifikátorů. Výčtový seznam definuje tříděnou sadu vyjmenovaných hodnot, počínaje prvním identifikátorem v seznamu a konče posledním.

Příklad:

TYPE
Traffic_light: (Red, Yellow, Green);
Painting_color: (Red, Yellow, Green, Blue) := Blue;
END_TYPE

Pojmenované hodnoty

Souvisí s jednoduchým výčtovým datovým typem, kde hodnoty výčtu identifikátorů nejsou známy uživatelem; tento typ má určené hodnoty prvků výčtu.

Chcete-li povolit jedinečnou identifikaci při použití v určitém kontextu, mohou být pojmenované hodnoty kvalifikovány předponou skládající se z jejich přidruženého jména dat a hash znaku "#", podobně jako zadané literály.

Příklad:

TYPE
Traffic_light: (Red, Yellow, Green);
Painting_color: (Red, Yellow, Green, Blue) := Blue;
END_TYPE

VAR
My_Traffic_light: Traffic_light;
END_VAR

IF My_Traffic_light = Traffic_light#Red THEN ...

Podinterval

Deklarace podintervalu určuje, že hodnota každého datového prvku tohoto typu může nabývat pouze hodnoty mezi a včetně specifikované horní a dolní mezí.

Příklad:

TYPE
ANALOG_DATA: INT(-4095 .. 4095):= 0;
END_TYPE

Datové typy pole

Pole je soubor datových prvků stejného datového typu. Základní a uživatelem definované datové typy, typy funkčních bloků a třídy mohou být použity jako typ prvku pole.

Příklad:

TYPE
TArray1: ARRAY[0..9] OF INT := [1,2,3,4,5,6,7,8,9,10];
TArray2: ARRAY[1..2, 1..2] OF USINT := [11,12,21,22];
END_TYPE

Datový typ struktura

Deklarace typu struktura (STRUCT) uvádí, že tento typ dat bude obsahovat kolekci dílčích prvků uvedených typů, které mohou být přístupné pomocí uvedených jmen. Prvek strukturovaného datového typu musí být zastoupen dvěma nebo více identifikátory nebo polem odděleným '.'. První identifikátor představuje název strukturovaného prvku, následné identifikátory představují sekvence názvů prvků pro přístup k určitému datovému prvku ve struktuře dat. Základní a uživatelem definované datové typy, typy funkčních bloků a třídy mohou být použity jako typ prvku struktury.

Struktury a pole lze libovolně kombinovat.

Příklad:

TYPE
ANALOG_SIGNAL_RANGE: (BIPOLAR_10V, UNIPOLAR_10V);
ANALOG_DATA: INT (-4095 .. 4095);

ANALOG_CHANNEL_CONFIGURATION:
STRUCT
RANGE: ANALOG_SIGNAL_RANGE;
MIN_SCALE: ANALOG_DATA;
MAX_SCALE: ANALOG_DATA;
END_STRUCT
END_TYPE

VAR
MODULE_CONFIG: ANALOG_CHANNEL_CONFIGURATION;
MODULE_8_CONF: ARRAY [1..8] OF ANALOG_CHANNEL_CONFIGURATION;
END_VAR

MODULE_CONFIG.MIN_SCALE:= -2047;
MODULE_8_CONF[5].RANGE:= BIPOLAR_10V;