Wo im Code konstante numerische Werte, Zeichenfolgen oder Zeitwerte verwendet werden sollen, um sie beispielsweise mit einem Formalparameter einer Funktion bzw. eines Funktionsbausteins zu verbinden, können Literale anstelle konstanter Variablen verwendet werden. Literale sind direkt eingegebene ("hartkodierte") konstante Werte oder Strings. In der IEC 61131 werden Literale als "externe Darstellung von Daten" bezeichnet. Literale können direkt in den Code eingegeben werden. Es ist nicht notwendig, eine Deklaration anzugeben. Die Norm IEC 61131 beschreibt verschiedene Literal-Typen, gemäß den Standard-Datentypen.
In EcoStruxure Machine Expert - Safety können Sie Literale in den Code einfügen und in Variablen-Arbeitsblättern (als Anfangswert) sowie beim Forcen/Überschreiben von Variablen im Debug-Modus verwenden. Es werden zwei Literal-Typen unterstützt, mit einigen Einschränkungen im Bezug auf die IEC 61131-3 (lesen Sie hierzu auch den untenstehenden Hinweis):
Numerische Literale für die Darstellung numerischer Werte
Zeitdauer-Literale zur Definition von Zeitdaten
Um die Darstellung besser lesbar zu gestalten, dürfen numerische Literale und Zeit-Literale Unterstriche enthalten. Groß-/Kleinschreibung spielt keine Rolle.
HINWEIS:
Literale müssen immer mit dem entsprechenden Datentyp eingegeben werden (z.B. BYTE#1, SAFEINT#1000).
Ausnahmen:
TRUE und FALSE werden immer als BOOL behandelt.
SAFETRUE und SAFEFALSE werden immer als SAFEBOOL behandelt.
INT-Konstanten können auch ohne Datentyp eingegeben werden (z.B. 1000 steht für INT#1000), da dezimale Eingaben automatisch als INT interpretiert werden. Ausnahme: 0 und 1 bei Verwendung mit einem booleschen Datentyp.
In EcoStruxure Machine Expert - Safety können Literale mit folgenden IEC 61131-3-Datentypen und speziellen sicherheitsbezogenen Datentypen verwendet werden.
BOOL/SAFEBOOL
BYTE/SAFEBYTE
WORD/SAFEWORD
DWORD/SAFEDWORD
INT/SAFEINT
DINT/SAFEDINT
TIME/SAFETIME
HINWEIS:
Spezialfall: Globale Variable wirkt wie globale Konstante.
Wenn eine globale symbolische Variable einen Anfangswert erhält, dann kann diese als globale Konstante mit symbolischem Namen betrachtet werden. Die initialisierte globale symbolische Variable ist schreibgeschützt und wird vom Compiler wie eine Konstante behandelt. Infolgedessen kann sie z.B. an den Formalparameter eines Funktionsbausteins angeschlossen werden, der eine Konstante erwartet.
Lesen Sie hierzu das Thema "Konstanten: Einfügen".
Folgende numerische Literale können in EcoStruxure Machine Expert - Safety verwendet werden:
Typ |
Beispiele |
Integer-Literale |
-12, 0, 123_456, +986 Beachten Sie den ersten Hinweis unter dieser Tabelle. |
Basis-2-Literale |
INT#2#1111_1111 Beachten Sie den ersten Hinweis unter dieser Tabelle. |
Basis-8-Literale |
INT#8#377 |
Basis-16-Literale |
INT#16#F0F0 |
Boolesche Werte FALSE und TRUE |
FALSE, TRUE bzw.SAFEFALSE, SAFETRUE |
Boolesche Werte 0 und 1 |
0, 1 |
Typisierte numerische Literale können zu den Basen 2, 8 oder 16 dargestellt werden (siehe Tabelle oben).
HINWEIS:
Gemäß IEC 61131-3, Tabelle 5, darf in Literalen das Unterstrichzeichen "_" zur Verbesserung der Lesbarkeit eingefügt werden.
HINWEIS:
In numerischen Literalen ist das Punkt-Zeichen "." nicht zulässig.
Literale für Zeitdauer können in Stunden, Minuten, Sekunden, Millisekunden und in Kombination dieser Angaben dargestellt werden:
Typ |
Beispiele |
Langes Präfix |
TIME#14mstime#14msSAFETIME#25h_15msafetime#25h_15m |
Kurzes Präfix HINWEIS: Für SAFETIME-Literale ist die Darstellung mit kurzem Präfix nicht zulässig. |
T#14mst#14mst#12m18s3.5msT#25h_15m t#25h_15m |
HINWEIS:
In Zeitdauer-Literalen ist das Punkt-Zeichen "." nur in der kleinsten dargestellten Zeiteinheit zulässig (z.B. TIME#12.3d, SAFETIME#1h12m4s3.5ms).