Konstanten sind Bezeichner für unveränderliche Werte. Sie können Konstanten lokal
innerhalb einer POE oder global in einer globalen Variablenliste deklarieren. Das
Deklarationssegment wird durch das Schlüsselwort CONSTANT
erweitert.
Konstanten sind auch Zeichenketten, die den Wert eines Basistyps darstellen, z. B. Ganzzahlen oder Gleitkommazahlen (z. B. 16#FFFF_FFFF
, T#5s
oder -1.234 E-5
). Zur Unterscheidung werden diese Konstanten auch Literale, literal constants oder
unnamed constants genannt. Es gibt logische (TRUE
, FALSE
) oder numerische Literale (3.1415
, T#5s
), aber auch String-Literale ('Hello world!'
, "black"
).
Syntax-Erklärung
<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 Ausgangswerte:
-
Wörtlich
Beispiele:
TRUE
,FALSE
,16#FFFF_FFFF
-
Benannte Konstante, die an anderer Stelle deklariert wurde
-
Einfacher Ausdruck, der aus Literalen besteht, auch kombiniert mit einfachen Operatoren wie + - *
Eingaben oder Funktionsaufrufe können nicht als Anfangswert angegeben werden.
Beispiel
VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
Konstanten werden nur für die Deklaration definiert. Die Zuweisung eines Anfangswertes ist erforderlich. Innerhalb einer Implementierung werden Konstanten nur gelesen und erscheinen daher immer rechts vom Zuweisungsoperator in einer Anweisung.
Die Konstanten werden beim Kompilieren des Codes durch den Anfangswert ersetzt. Es muss auch möglich sein, den Anfangswert zur Kompilierzeit zu berechnen.
Konstanten von strukturierten oder benutzerdefinierten Typen werden erst zur Laufzeit berechnet. Strukturierte Konstanten in Programmen oder GVLs werden einmalig beim Programmstart berechnet. Strukturierte Konstanten in Funktionen oder Methoden werden bei jedem Aufruf der Funktion oder Methode berechnet. Daher kann die Initialisierung von strukturierten Konstanten von Eingaben abhängen oder Funktionsaufrufe ausführen.