Literale gemäß IEC 61131-3
Wenn im Code konstante numerische Werte, Zeichenfolgen oder Zeitdatenwerte verwendet werden sollen, z.B. um sie mit einem Formalparameter einer Funktion bzw. eines Funktionsbausteins zu verbinden, können Literale anstelle von konstanten Variablen verwendet werden. Literale sind direkt eingegebene feste Werte oder Zeichenfolgen. Die Norm IEC 61131-3 bezeichnet Literale als "externe Darstellung von Daten". Literale können direkt in den Code eingegeben werden. Es ist keine Deklaration notwendig.
Die IEC 61131-3 beschreibt verschiedene Arten von Literalen, entsprechend den elementaren Datentypen.
Es können auch sicherheitsbezogene Literale entsprechend den sicherheitsbezogenen Datentypen verwendet werden.
Dieses Thema enthält die folgenden Abschnitte:
- Numerische Literale
- Zeichenfolge-Literale
- Escape-Sequenzen
- Datums- und Zeitliterale
- Datums- und Uhrzeitliterale
Numerische Literale
Typ | Beispiele | |
---|---|---|
Ganzzahliges (integer) Literal | -12 0 123_456 +986
|
|
Reelles (real) Literal | -12.0 0.0 0.4560 3.14159_26 | |
Reelles (real) Literal mit Exponent | -1.34E-12 -1.34e-12 1.0E+6 | |
Langes reelles (long real) Literal | LREAL#-12.0Beachten Sie hierzu den 2. Hinweis im Anschluss an diese Tabelle. | |
Langes reelles (long real) Literal mit Exponent | LREAL#2.3E-89Beachten Sie hierzu den 2. Hinweis im Anschluss an diese Tabelle. | |
Literale zur Basis 2 | INT#2#1111_1111 | |
Literale zur Basis 8 | INT#8#377 | |
Literale zur Basis 16 | INT#16#FF SINT#16#ff | |
Boolesches FALSE und TRUE | FALSE, TRUESAFEFALSE, SAFETRUE | |
Boolesche 0 und 1 | 0, 1Für SAFEBOOL-Literale muss immer SAFEFALSE bzw. SAFETRUE angegeben werden. |
Hinweis
INT-Literale können ohne Schlüsselwort verwendet werden. Beispiel: Statt INT#16#ff können Sie 16#ff eingeben. BOOL/SAFEBOOL-Literale können auch ohne Schlüsselwort verwendet werden. Beispiele: Statt BOOL#FALSE können Sie FALSE eingeben und statt SAFEBOOL#FALSE verwenden Sie SAFEFALSE. |
Hinweis
Wenn Sie PLCnext Engineer in einer anderen Benutzeroberflächensprache und/oder unter einem anderen Windows System Locale als Englisch verwenden, müssen Sie numerische Werte mit einem '.' als Dezimaltrennzeichen eingeben (gem. des englischsprachigen Standards). Dies gilt zum Beispiel beim Festlegen eines Anfangswerts in Variablentabellen oder für REAL/LREAL-Literale im Code. |
Zeichenfolge-Literale
Zeichenfolge-Literale enthalten entweder Einzelbyte- oder Doppelbyte-Zeichen.
Ein Einzelbyte-Zeichenfolge-Literal (String-Literal) ist eine Sequenz von Null oder mehr Zeichen, die durch einfache Anführungszeichen (') eingeleitet und abgeschlossen sind. Ein Doppelbyte-Zeichenfolge-Literal ist eine Sequenz von Null oder mehr Zeichen, die durch doppelte Anführungszeichen (") eingeleitet und abgeschlossen sind.
Typ | Beispiele |
---|---|
Einzelbyte-Zeichenfolgen | |
Leere Zeichenfolge | '' |
Zeichenfolge mit einem Leerzeichen | ' ' |
Zeichenfolge mit Text | 'dies ist ein Text' |
Doppelbyte-Zeichenfolgen | |
Leere Zeichenfolge | "" |
Zeichenfolge mit einem Leerzeichen | " " |
Zeichenfolge mit Text | "dies ist ein Text" |
Escape-Sequenzen
PLCnext Engineer unterstützt Escape-Sequenzen (Maskierungszeichen) in Zeichenfolgen. Escape-Sequenzen sind eine Kombination aus dem Backslash (\) gefolgt von einem Sonderzeichen. Der Backslash wird verwendet, um bestimmte Zeichen wie Tabulatoren (\t) oder Zeilenumbrüche (\n) innerhalb der Zeichenfolge darzustellen. Escape-Zeichen werden als IEC-Init-Werte oder in Konstanten in Code-Arbeitsblättern verwendet.
Hinweis
Zur Sicherstellung der Kompatibilität mit anderen von PLCnext Technology unterstützten Programmiersprachen, wird das IEC 61131-3 Style-Escaping mit dem $-Zeichen nicht mehr länger unterstützt. Ältere Projekte, in denen das $-Zeichen als Escape-Zeichen verwendet wird, werden automatisch aktualisiert. |
Die folgende Tabelle zeigt die in PLCnext Engineer unterstützten Escape-Sequenzen.
Escape-Sequenz | Bedeutung |
---|---|
\\ | Backslash |
\n oder \N | Zeilenvorschub |
\t oder \T | Tabulatorzeichen |
\' | Einfaches Anführungszeichen (nur gültig für STRING-Werte). |
\" | Doppeltes Anführungszeichen (nur gültig für WSTRING-Werte). |
Hinweis
Ein nicht unterstützte Escape-Sequenz führt zu einem Build-Fehler (z.B. 'aaa\'). |
Zeichenfolgen mit Escape-Sequenzen im Online-Modus
Im Online-Modus werden die folgenden Zeichen für die Escape-Sequenzen angezeigt:
Hinweis
In Controls, in denen Forcen und Überschreiben möglich ist (Online Code-Arbeitsblatt, FORCELISTE-Fenster usw.), werden im Online-Wert die Zeichen für <Zeilenvorschub> und <Tab> mit \n und \t (nicht mit \N und \T) angezeigt. Um diese Zeichen für das Forcen/Überschreiben zu verwenden, können Sie die Escape-Sequenzen \n, \N, \t und \T eingeben. |
Datums- und Zeitliterale
Literale für Zeitdauer können in Stunden, Minuten, Sekunden, Millisekunden und in Kombination dieser Angaben dargestellt werden.
Typ | Beispiele | |
---|---|---|
Kurzes Präfix | Datentyp TIME: T#14ms t#14ms t#12m18s3.5ms T#25h_15m t#25h_15m
|
|
Langes Präfix | Datentyp TIME: TIME#14 ms time#14ms TIME#25h_15m time#25h_15mDatentyp SAFETIME: SAFETIME#14 ms safetime#14ms SAFETIME#25h_15m safetime#25h_15mDatentyp LTIME: LTIME#14 ms time#14ms TIME#25h_15m time#25h_15m |
Datums- und Uhrzeitliterale
Typ | Beispiele |
---|---|
Langes Datum | LDATE#1996-01-24 ldate#1996-01-24 LD#1996-01-24 ld#1996-01-24 |
Lange Uhrzeit | LTIME_OF_DAY#15:36:55.36 ltime_of_day#15:36:55.36 LTOD#15:36:55.36 ltod#15:36:55.36 |
Langes Datum und Uhrzeit | LDATE_AND_TIME#1996-01-24-15:36:55.36 ldate_and_time#1996-01-24-15:36:55.36 LDT#1996-01-24-15:36:55.36 ldt#1996-01-24-15:36:55.36 |
Weitere Infos
Informationen, wie Sie Literale in den Programmiersprachen FBS/KOP/AS bearbeiten, finden Sie im Abschnitt "Konstante (Literal)". |