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 eines der folgenden Konstrukte sein (in Übereinstimmung mit dem →Datentyp):

  • ein boolesches →Literal

    Entsprechungen für "TRUE"Entsprechungen für "FALSE"
    BOOL#TRUEBOOL#FALSE
    BOOL#1BOOL#0
    TRUEFALSE 
    10

  • ein →Bitfolge-Literal

    BeschreibungBeispiele
    Ganzzahl0, 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

    BeschreibungBeispiele
    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
    BeschreibungBeispiele
    Real-Literal0, 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

    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.

    BeschreibungBeispiele
    Zeitdauer-Literale ohne Unterstriche
    kurzes PräfixT#14ms, T#14.7s, T#14.7m, T#14.7h, T#14.7d, T#14h12m, t#5d14h12m18s3.5ms
    langes PräfixTIME#14ms, time#14h12m
    Zeitdauer-Literale mit Unterstrichen
    kurzes PräfixT#14h_12m, t#5d_14h_12m_18s_3.5ms
    langes PräfixTIME#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").

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

    BeschreibungBeispiele
    Literale für Datum
    kurzes PräfixD#1984-06-25
    langes PräfixDATE#1984-06-25
    Literale für Datum und Zeit
    kurzes PräfixDT#1984-06-25-15:36:55.360_227_400
    langes PräfixDATE_AND_TIME#1984-06-25-15:36:55.360227400
    Literale für Tageszeit
    kurzes PräfixTOD#15:36:55.36
    langes PräfixTIME_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

    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:

    BeschreibungBeispiele
    STRING-Literal 'OK', 'ABCDEF' 
    STRING-Literal mit TypangabeSTRING#'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):

    DezimalwertHexadezimal-ZifferEinzugebenSonderzeichen
    12880$80
    163A3$A3
    £
    169A9$A9
    ©
    174AE$AE
    ®
    177B1$B1
    ±
    178B2$B2² (hochgestellte Ziffer "2")
    179B3$B3³ (hochgestellte Ziffer "3")
    188BC $BC 
    ¼
    189BD$BD
    ½
    190BE$BE
    ¾

    196

    C4$C4Ä
    214D6$D6Ö
    220DC$DCÜ
    223DF$DFß
    228E4$E4
    ä
    246F6$F6ö
    252FC$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 terminiert.
    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:

    AngabeBedeutung
    ''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:

    AngabeBedeutung
    $'Zeichenfolge mit einfachem Anführungszeichen '
    $$Zeichenfolge mit Dollarzeichen $
    $L oder $lZeichenfolge mit Zeilenvorschub ("Line feed")
    $N oder $nZeichenfolge mit neuer Zeile ("Newline")
    $P oder $pZeichenfolge mit Seitenvorschub ("Form feed (page)")
    $R oder $rZeichenfolge mit Wagenrücklauf ("Carriage return")
    $T oder $tZeichenfolge mit Tabulator
  • ein →benanntes Element eines Datentyps mit benannten Werten
  • Strukturinitialisierung (Initialisierung von Strukturelementen)

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