Initialisierung von Variablen in ST

Syntax
name_1, name_2 : data-type := literal;

Bedeutung

→Zuweisung eines→Initialisierungswerts bei der Deklaration von Variablen
Sie können interne →Variablen, →Eingangsvariablen, →Ausgangsvariablen und →globale Variablen innerhalb der Deklaration eines →Programms, eines →Funktionsbausteins oder einer →Funktion initialisieren.

Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" darf ein →konstanter Ausdruck sein (in Übereinstimmung mit dem →Datentyp).
Im Folgenden die wichtigsten Sprachkonstrukte, die Sie verwenden können:

  • ein boolesches →Literal

    Mögliche boolesche Literale

    Entsprechungen für "TRUE"

    Entsprechungen für "FALSE"

    BOOL#TRUE

    BOOL#FALSE

    BOOL#1

    BOOL#0

    TRUE

    FALSE

    1

    0

  • ein →Bitfolge-Literal

    Beispiele für Bitfolge-Literale

    Beschreibung

    Beispiele

    Ganzzahl

    0, 123_4, +986

    Zur Basis 2 (Binär-Literal)

    2#1111_1111 (255 dezimal), 2#1110_0000 (224 dezimal)

    Zur Basis 8 (Oktal-Literal)

    8#377 (255 dezimal), 8#340 (224 dezimal)

    Zur Basis 16 (Hexadezimal-Literal)

    16#FF oder 16#ff (255 dezimal), 16#E0 oder 16#e0 (224 dezimal)

    obige Möglichkeiten (ohne Vorzeichen) als Literal mit Typangabe BYTE, WORD, DWORD oder LWORD(sofern der Wert im Wertbereich des entsprechenden Datentyps liegt)

    WORD#986, WORD#16#FF (255 dezimal)

    BOOL ist ein Bitfolge-Datentyp. Es sind jedoch nur bestimmte →Boolesche Literale möglich.

  • ein →Integer-Literal

    Beispiele für Integer-Literale

    Beschreibung

    Beispiele

    Ganzzahl

    -12, 0, 123_4, +986

    Zur Basis 2 (Binär-Literal)

    2#1111_1111 (255 dezimal), 2#1110_0000 (224 dezimal)

    Zur Basis 8 (Oktal-Literal)

    8#377 (255 dezimal), 8#340 (224 dezimal)

    Zur Basis 16 (Hexadezimal-Literal)

    16#FF oder 16#ff (255 dezimal), 16#E0 oder 16#e0 (224 dezimal)

    obige Möglichkeiten als Literal mit Typangabe SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT(sofern der Wert im Wertbereich des entsprechenden Datentyps liegt)

    INT#-12, INT#16#FF (255 dezimal)

  • ein →Real-Literal vom Datentyp REAL oder LREAL

    Beispiele für Real-Literale

    Beschreibung

    Beispiele

    Real-Literal

    0, 0.0, 0.4560, 3.14159_26

    Real-Literal mit Exponenten

    -1.34E-12, -1.34e-12
    1.0E+6, 1.0e+6, 1E+6
    1.234E6, 1.234e6

    obige Möglichkeiten als Literal mit Typangabe REAL oder LREAL(sofern der Wert im Wertbereich des entsprechenden Datentyps liegt)

    REAL#0.0, REAL#1.0E+6

  • ein →Zeitliteral

    Beispiele für Zeitdauer-Literale

    Sie müssen Daten für Zeitdauer, wie Tage (d), Stunden (h), Minuten (m), Sekunden (s) und Sekunden-Abschnitte (ms für Millisekunden, us für Mikrosekunden, ns für Nanosekunden) oder Kombinationen davon, in der Weise angeben, wie in der folgenden Tabelle gezeigt. Sie können die Zeitdauer-Einheiten durch Unterstrich-Zeichen trennen. Außerdem können Sie die Einheiten in Groß- oder Kleinbuchstaben eingeben, zum Beispiel s oder S für Sekunden.

    Beschreibung

    Beispiele

    Zeitdauer-Literale ohne Unterstriche

    kurzes Präfix

    T#14ms, T#14.7s, T#14.7m, T#14.7h, T#14.7d, T#14h12m, t#5d14h12m18s3.5ms

    langes Präfix

    TIME#14ms, time#14h12m

    Zeitdauer-Literale mit Unterstrichen

    kurzes Präfix

    T#14h_12m, t#5d_14h_12m_18s_3.5ms

    langes Präfix

    TIME#14h_12m, time#5d_14h_12m_18s_3.5ms

    Beachten Sie, dass Ihr eingesetztes →Zielsystem die Verwendung von Zeitdauer-Literalen in logi.CAD 3 beeinflussen kann (siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen").

    Beispiele für Literale für Datum und Tageszeit

    Bei den Literalen für Tageszeit und für Datum und Zeit sind die Sekunden-Abschnitte (nach dem . eingegeben) optional.

    Beschreibung

    Beispiele

    Literale für Datum

    kurzes Präfix

    D#1984-06-25

    langes Präfix

    DATE#1984-06-25

    Literale für Datum und Zeit

    kurzes Präfix

    DT#1984-06-25-15:36:55.360_227_400

    langes Präfix

    DATE_AND_TIME#1984-06-25-15:36:55.360227400

    Literale für Tageszeit

    kurzes Präfix

    TOD#15:36:55.36

    langes Präfix

    TIME_OF_DAY#15:36:55.36

    Beachten Sie, dass Ihr eingesetztes →Zielsystem die Verwendung von diesen Literalen in logi.CAD 3 beeinflussen kann (siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen").

  • ein →Zeichenfolge-Literal

    Beispiele für Zeichenfolge-Literale

    Einzel-Byte-Zeichenfolgen bestehen aus keinem oder mehreren Zeichen, denen das einfache Anführungszeichen ' vorangestellt ist und die mit diesem Zeichen geschlossen werden.
    Doppel-Byte-Zeichenfolgen, die mit dem doppelten Anführungszeichen " eingeschlossen werden, werden hingegen in logi.CAD 3 für Zeichenfolge-Literal nicht unterstützt.
    Einzel-Byte-Zeichenfolgen sind:

    Beschreibung

    Beispiele

    STRING-Literal

    'OK', 'ABCDEF'

    STRING-Literal mit Typangabe

    STRING#'OK', STRING#'ABCDEF'

    CHAR-Literal

    'B', 'T'

    CHAR-Literal mit Typangabe

    CHAR#'B', CHAR#'T'

    Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($) und gefolgt von 2 Hexadezimal-Ziffern, werden in logi.CAD 3 als entsprechendes Zeichen des ANSI-C-Zeichensatzes interpretiert.

    Auf diese Weise können Sie Sonderzeichen, wie z.B. Umlaute, für Einzel-Byte-Zeichenfolgen eingeben. Derzeit werden solche Sonderzeichen in logi.CAD 3 (z.B. in der Sicht Variablenwerte) jedoch so ausgegeben, wie sie eingegeben wurden.
    Hier eine Auswahl an Sonderzeichen (eine Liste des ANSI-Zeichensatzes finden Sie unter http://ascii-table.com/ansi-codes.php):

    Dezimalwert

    Hexadezimal-Ziffer

    Einzugeben

    Sonderzeichen

    128

    80

    $80

    163

    A3

    $A3

    £

    169

    A9

    $A9

    ©

    174

    AE

    $AE

    ®

    177

    B1

    $B1

    ±

    178

    B2

    $B2

    ² (hochgestellte Ziffer "2")

    179

    B3

    $B3

    ³ (hochgestellte Ziffer "3")

    188

    BC

    $BC

    ¼

    189

    BD

    $BD

    ½

    190

    BE

    $BE

    ¾

    196

    C4

    $C4

    Ä

    214

    D6

    $D6

    Ö

    220

    DC

    $DC

    Ü

    223

    DF

    $DF

    ß

    228

    E4

    $E4

    ä

    246

    F6

    $F6

    ö

    252

    FC

    $FC

    ü

    Falls die Zeichenkombination '$00' einem einzelnen Zeichen einer STRING-Variable zugewiesen wird, endet die Zeichenfolge der STRING-Variable an dieser Position. Solche Zeichenfolge werden auch in der Sicht Variablenwerte bei $00 beendet.
    In Zuweisungen wird jedoch die vollständige Zeichenfolge übernommen. So ist es möglich, dass die Sicht Variablenwerte einzelne Zeichen hinter $00 darstellt, falls Sie auf zugewiesenen Zeichen hinter $00 zugreifen.

    Zusätzlich sind die folgenden Angaben für Einzel-Byte-Zeichenfolgen möglich:

    Angabe

    Bedeutung

    ''

    leere Zeichenfolge

    ' '

    Zeichenfolge mit Leerzeichen

    '$''

    Zeichenfolge mit einfachem Anführungszeichen '

    '"'

    Zeichenfolge mit doppeltem Anführungszeichen "

    Zusätzlich sind die folgenden Angaben für Zwei-Zeichen-Kombinationen in Einzel-Byte-Zeichenfolgen möglich:

    Angabe

    Bedeutung

    $'

    Zeichenfolge mit einfachem Anführungszeichen '

    $$

    Zeichenfolge mit Dollarzeichen $

    $L oder $l

    Zeichenfolge mit Zeilenvorschub ("Line feed")

    $N oder $n

    Zeichenfolge mit neuer Zeile ("Newline")

    $P oder $p

    Zeichenfolge mit Seitenvorschub ("Form feed (page)")

    $R oder $r

    Zeichenfolge mit Wagenrücklauf ("Carriage return")

    $T oder $t

    Zeichenfolge mit Tabulator

  • ein →benanntes Element eines Datentyps mit benannten Werten

  • Strukturinitialisierung (Initialisierung von Strukturelementen)

  • Operatoren (z.B. +, -, *, /)

ARRAY-Variablen initialisieren Sie analog zu "Deklaration eines ARRAY-Datentyps in ST".
Informationen zur Initialisierung von Referenz-Variablen finden Sie unter "Deklaration von Referenz-Variablen (inkl. Zuweisungen darauf)".

Beispiel
VAR CONSTANT
PI : REAL := 3.141592;
END_VAR
 
VAR
var1 : REAL := 3.141592;
var2 : DINT := 4711;
END_VAR
VAR
var3 : INT := TrafficLight#Red;
(* Initialisierung der Variable 'var3' mit dem benannten Element 'Red' des Datentyps 'TrafficLight' *)
END_VAR
 
VAR
VRange : Range := (min := -5, max := 5); 
(* Strukturinitialisierung für Variable 'VRange' vom strukturierten Datentyp 'Range': Initialisierung der Unterelemente 'min' und 'max' *)
END_VAR