Konstanten und Literale
Konstanten sind Bezeichner für unveränderliche Werte. Sie können Konstanten lokal
innerhalb eines Programmierbausteins oder global innerhalb einer globalen Variablenliste
deklarieren. Der Deklarationsabschnitt wird dazu mit dem Schlüsselwort CONSTANT
erweitert.
Konstanten sind auch Zeichenfolgen, die den Wert eines Basistypen wie beispielsweise
Ganzzahlen oder Gleitkommazahlen darstellen, beispielsweise 16#FFFF_FFFF
, T#5s
oder -1.234 E-5
. Zur Unterscheidung werden solche Konstanten auch als Literale, literale Konstanten
oder unbenannte Konstanten bezeichnet. Es gibt logische (TRUE
, FALSE
) oder numerische Literale (3.1415
, T#5s
), aber auch Zeichenliterale ('Hello world!'
, "black"
).
Syntax Deklaration
<scope> CONSTANT <identifier> : <data type> := <initial value> ; END_VAR <scope> : VAR | VAR_INPUT | VAR_STAT | VAR_GLOBAL <data type>: <elementary data type | user defined data type | function block > <initial value> : literal value | identifier | expression
Erlaubte Initialwerte:
-
Literal, beispielsweise
TRUE
,FALSE
,16#FFFF_FFFF
-
Benannte Konstante, die an anderer Stelle deklariert wurde
-
Einfacher Ausdruck aus Literalen, auch kombiniert mit einfachen Operatoren wie beispielsweise + - *
Eingänge oder Funktionsaufrufe können nicht als Initialwert angegeben werden.
Beispiel
VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
Konstanten werden nur bei der Deklaration beschrieben. Die Zuweisung eines Initialwerts ist obligat. Innerhalb einer Implementierung werden Konstanten ausschließlich gelesen und stehen deshalb in einer Anweisung immer rechts vom Zuweisungsoperator.
Die Konstanten werden beim Compilieren des Codes mit dem Initialwert ersetzt. Der Initialwert muss außerdem zur Compilezeit berechnet werden können.
Konstanten von strukturierten oder benutzerdefinierten Typen werden erst zur Laufzeit berechnet. Strukturierte Konstanten in Programmen oder GVLs werden einmal zum Programmstart berechnet. Strukturierte Konstanten in Funktionen oder Methoden werden jedes Mal berechnet, wenn die Funktion oder Methode aufgerufen wird. Die Initialisierung von strukturierten Konstanten kann somit von Eingaben abhängen oder Funktionsaufrufe ausführen.
Variablen
Sie können Variablen entweder lokal im Deklarationsteil eines Bausteins oder in einer globalen Variablenliste deklarieren. An welcher Stelle Sie eine Variable verwenden können, hängt von ihrem Datentyp ab.
Weitere
-
BOOL-Konstanten
-
Zahlenkonstanten
-
REAL/LREAL-Konstanten
-
Stringkonstante
-
TIME/LTIME-Konstante
-
Datums- und Uhrzeitkonstante
-
Getypte Konstanten / Typed Literals
-
Zugriff auf Variablen von Arrays, Strukturen und Bausteinen
-
Bitzugriff in Variablen
-
Adressen
-
Funktionen