Konstanten kontra Literale

 

Wo im Code konstante numerische Werte, Zeichenfolgen oder Zeitwerte verwendet werden sollen, um sie beispielsweise mit einem Formalpa­rameter 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 Stan­dard-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):

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 Daten­typen verwendet werden.

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 Funktions­bausteins angeschlossen werden, der eine Konstante erwartet.

Lesen Sie hierzu das Thema "Konstanten: Einfügen".

Numerische Literale

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 darg­estellt werden (siehe Tabelle oben).

HINWEIS:

Gemäß IEC 61131-3, Tabelle 5, darf in Literalen das Unterstrich­zeichen "_" zur Verbesserung der Lesbarkeit eingefügt werden.

HINWEIS:

In numerischen Literalen ist das Punkt-Zeichen "." nicht zulässig.

Zeitdauer-Literale

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 klein­sten dargestellten Zeiteinheit zulässig (z.B. TIME#12.3d, SAFETIME#1h12m4s3.5ms).