TO_LREAL-Baustein

Kurz-Information

NameTO_LREAL
→POE-Typ→Funktion
KategorieIEC-Baustein, Convert, Baustein mit interner Fehlerdiagnose
Konform zur →IEC-Norm

(plus) mehr als in IEC-Norm vorgesehen möglich und
(error) derzeit eingeschränkt;

siehe "
Explizite Konvertierung laut IEC-Norm"

Grafische Schnittstelle

Verfügbar ab
  • Version 1.0.0 (für logi.CAD 3 ) – Anfangsvariante
  • Version 1.90.0 (für logi.CAD 3 ) – Erweiterung: TIME_OF_DAY für IN
  • Version 3.2.0 (für Bibliothek Standard) – Erweiterung: STRING und CHAR für IN, interne Fehlerdiagnose

Funktionalität

Der Baustein dient zur expliziten Konvertierung des an IN anliegenden Werts in einen Wert vom Datentyp LREAL.

Falls der anliegende Wert im gemeinsamen Wertbereich des Eingangsdatentyps und des Ergebniswerts LREAL liegt, so liefert der Baustein diesen Wert.

Beachten Sie:

  • Falls ein Wert vom Datentyp STRING am Eingang anliegt, der einem gültiger Real-Literal entspricht (siehe die folgende Tabelle für Beispiele), wird der Wert entsprechend konvertiert. Der Ausgang ENO wird hier auf den Wert TRUE gesetzt. 
    Bei anderen Werten liefert der Baustein den Wert 0.0. Hier wird der Ausgang ENO auf den Wert FALSE gesetzt. Sonderfall: Falls der anliegende Wert mit einem gültigen Real-Literal beginnt und dahinter andere Zeichen folgen (z.B. '3.14159_26'STRING#'1.5 E10''-INFxxx'), liefert der Baustein den Anfangswerts, wie er unterstützt wird (also: 3.14159, 1.5, -INF) und der Ausgang ENO wird auf den Wert FALSE gesetzt.
    BeschreibungBeispiele für Werte vom Datentyp STRING, die einem gültigen Real-Literal entsprechen
    Real-Literal'0', '0.0', '0.4560', '3.1415926', '-123456789',
    STRING#'0', STRING#'0.0', STRING#'0.4560', STRING#'3.1415926', STRING#'-123456789'
    Real-Literal mit Exponenten

    '-1.34E-12', '-1.34e-12', '1.0E+6', '1.0e+6, 1E+6', '1.234E6', '1.234e6',
    STRING#'-1.34E-12', STRING#'-1.34e-12', STRING#'1.0E+6', STRING#'1.0e+6, STRING#1E+6', STRING#'1.234E6', STRING#'1.234e6',
    '  987e-3', '  +2.5E30',
    STRING#'  987e-3', STRING#'  +2.5E30'

    keine Zahl ("Not a Number") oder unendlich ("Infinity")'Nan', 'INF', '-INF'

    Real-Literale mit der Typangabe REAL bzw. LREAL sind keine gültigen Real-Literale.
    Beispiel für Werte vom Datentyp STRING, die einem ungültigen Real-Literal entsprechen: 'REAL#0.0' bzw. 'LREAL#0.0'

  • Falls ein Wert vom Datentyp CHAR am Eingang anliegt, der einem gültiger Real-Literal entspricht (z.B. '0'CHAR#'9'), wird der Wert entsprechend konvertiert (also: 0.09.0). Der Ausgang ENO wird hier auf den Wert TRUE gesetzt. 
    Bei anderen Werten (z.B. '+'CHAR#A) liefert der Baustein den Wert 0.0. Hier wird der Ausgang ENO auf den Wert FALSE gesetzt.

Explizite Konvertierung laut IEC-Norm

Die IEC-Norm sieht eine explizite Konvertierung der folgenden Datentypen auf LREAL vor:

REALLINTDINT, INTSINTULINTUDINTUINTUSINTLWORD

Die IEC-Norm (Edition 3.0) sieht eine binäre Übertragung der nachfolgenden Eingangsdatentypen vor. Abweichend davon wird der entsprechende Wert aber laut IEC-Norm (Edition 2.0) konvertiert.

LWORD

Eingänge, Ergebniswert


Bezeichner→DatentypBeschreibung
Eingänge:IN

REAL, LREALUSINTUINTUDINTULINTSINTINTDINTLINT, TIME, BOOL, BYTE, WORD, DWORDLWORD, STRING, CHAR oder TIME_OF_DAY

zu konvertierender Wert
Ergebniswert:LREAL

Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Interne Fehlerdiagnose für Baustein

Der Baustein prüft den Wert, der am Eingang anliegt. In den folgenden Fällen wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt:

  • Ein STRING-Wert enthält ein nicht-erlaubtes Zeichen oder beginnt damit. (Der Wert, den der Baustein liefert, ist von der Postion der nicht-erlaubten Zeichen abhängig. Siehe die Beschreibung unter "Funktionalität" oben.)
  • Der CHAR-Wert ist ein nicht-erlaubtes Zeichen. (In diesem Fall liefert der Baustein außerdem den Wert 0.0.)

Beispiel für Verwendung im ST-Editor

PROGRAM Test
   VAR
      result : LREAL;
   END_VAR
   result := TO_LREAL(IN := SINT#12);    (* The variable 'result' evaluates to value '12.0' of LREAL. *)
END_PROGRAM

Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.