Alias

Panoramica

Un tipo di dati definito dall'utente alias consente di dichiarare un nome alternativo per un tipo di base, un tipo di dati o un blocco funzione.

Selezionare Tipo = Alias nella finestra di dialogo Aggiungi DUT.

Dichiarazione di un Alias in un DUT

TYPE A_MESSAGE : STRING[50];
END_TYPE

Sintassi

TYPE <DUT name> : <type name>;
END_TYPE

I tipi seguenti sono consentiti per <type name>:

  • <basic type name>

  • <data type name>

  • <function block name>

Esempio di variabili di tipo STRING o ARRAY con lunghezza specifica

Parte dichiarazione:

TYPE FRAME : ARRAY[0..1499] OF BYTE; END_TYPE
TYPE SYMBOL : STRING(512); END_TYPE

Chiamata:

PROGRAM PLC_PRG
VAR
    frameF : FRAME;
    symbolS : SYMBOL;
END_VAR

Esempio di variabili che richiedono un valore iniziale diverso

Questo esempio è valido per un tipo di dati alias per variabili che richiedono un valore iniziale diverso da quello fornito dal compilatore.

TYPE INDEX : DINT := -1; END_TYPE

Esempio di variabili che applicano un sottoinsieme di valori

Questo esempio è valido per un tipo di dati alias per variabili di un tipo specifico dove deve essere applicato un sottoinsieme specifico di valori del tipo originale.

{attribute 'qualified_only'}
VAR_GLOBAL CONSTANT
    c_diMaxRune : DINT := DINT#16#0010FFFF;
END_VAR
TYPE RUNE : DINT(0..GVL.c_diMaxRune); END_TYPE

Esempio di tipi da un altro spazio dei nomi

Questo esempio è valido, ad esempio, per i tipi di una libreria subordinata per renderli disponibili nello spazio dei nomi presente.

TYPE ENCODING: SBB.ENCODING; END_TYPE (*ENUM*)
TYPE RUNE : UTF8.RUNE;  END_TYPE (*SUBTYPE*)
TYPE INFO : STR.INFO;  END_TYPE (*STRUCT*)
TYPE IBuilder : SBB.IBuilder; END_TYPE (*INTERFACE*)
TYPE Range: SBB.Range; END_TYPE (*FUNCTION_BLOCK*)

Poiché i tipi di librerie subordinate diventano parte della propria libreria, una libreria contenitore diventa superflua nella maggior parte dei casi.