TO_DINT-Baustein

Kurz-Information

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

(plus) mehr als in IEC-Norm vorgesehen möglich;
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.0.1 (für Bibliothek Standard) – Erweiterung: STRING (mit Zeichen _) und CHAR für IN und CHAR für IN, interne Fehlerdiagnose

  • Version 3.1.0 (für Bibliothek Standard) – Für Eingänge vom Datentyp REAL wird die optimierte float-Variante der C-Runtime verwendet. Im Vergleich zu früheren Versionen können in den Grenzwertbereichen des Bausteins (geringfügig) andere Ergebnisse geliefert werden.  

Funktionalität

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

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

Beachten Sie:

  • Falls ein anliegender REAL-Wert mit mehr als 6 Stellen konvertiert wird, kann das Ergebnis undefiniert sein. Beispiel: Für REAL#4_294_967_290.0 liefert der Baustein den Ergebniswert 0.  
  • Bei der Umwandlung von Datentypen auf den TIME-Datentyp und umgekehrt wird immer auf Sekunden-Basis konvertiert.  
  • Falls ein Wert vom Datentyp STRING am Eingang anliegt, wird der Wert in einen Dezimalwert (Basis: 10, erlaubte Ziffern: 0 bis 9) konvertiert und dann wird dieser Dezimalwert in einen Wert des Ziel-Datentyps konvertiert. Diese Spezialfälle sind dabei möglich (siehe unter "Beispiel für Verwendung im ST-Editor"):
    • Falls der Wert mit dem Zeichen + , mit Leerzeichen oder Tabulatoren (= sogenannten "Whitespace") beginnt und falls der Wert innerhalb des Wertbereichs des Ziel-Datentyps liegt, wird der Wert in einen positiven Dezimalwert (wie ohne diese Zeichen) konvertiert. Der Ausgang ENO wird hier auf den Wert TRUE gesetzt. 
      Details zu dieser Konvertierung: Ein dem Wert vorangestelltes Zeichen + wird ignoriert , ebenso werden Leerzeichen und Tabulatoren ignoriert. 
       
    • Falls der Wert mit dem Zeichen  beginnt und der Wert innerhalb des Wertbereichs des Ziel-Datentyps liegt, wird der Wert in einen negativen Dezimalwert konvertiert. Auch hier wird der Ausgang ENO auf den Wert TRUE gesetzt.  
    • Falls der Wert ein nicht erlaubtes Zeichen enthält, liefert der Baustein den Wert 0Hier wird der Ausgang ENO auf den Wert FALSE gesetzt. 

      Erlaubte Zeichen

      Nicht erlaubte Zeichen

      Ziffern (Basis: 10, Zahlen: 0 bis 9)
      Beispiel für Wert mit erlaubtem Zeichen: '12'

      andere Zeichen, wie z.B. Buchstaben
      Beispiele für Wert mit nicht erlaubtem Zeichen: '12a3', 'a123'

      ein dem Wert vorangestelltes Zeichen + oder
      Beispiel für Wert mit erlaubtem Zeichen: +2 oder –3

      Wiederholungen von + oder am Anfang des Werts, das Zeichen + oder innerhalb des Werts
      Beispiele für Wert mit nicht erlaubtem Zeichen: '++1', '1–3'

      einzelne Unterstrich-Zeichen _ innerhalb des Werts
      Beispiel für Wert mit erlaubtem Zeichen: 1_2 oder 1_2_3
      Unterstrich-Zeichen _ am Anfang oder Ende des Werts, mehrere Unterstrich-Zeichen _ direkt hintereinander
      Beispiel für Wert mit nicht erlaubtem Zeichen: _12, 12_ oder 1__2
       
    • Falls der zu konvertierende STRING-Wert die Obergrenze des Ziel-Datentyps übersteigt, liefert der Baustein die Obergrenze des Ziel-Datentyps. Auch hier wird der Ausgang ENO auf den Wert FALSE gesetzt.   
    • Falls der zu konvertierende STRING-Wert unter der Untergrenze des Ziel-Datentyps liegt, liefert der Baustein die Untergrenze des Ziel-Datentyps. Auch hier wird der Ausgang ENO auf den Wert FALSE gesetzt.   
     
  • Falls ein Wert vom Datentyp CHAR am Eingang anliegt, erfolgt die Konvertierung analog zu einem STRING-Wert. Als Unterschied zur STRING-Konvertierung sind bei der CHAR-Konvertierung nur die einzelnen Ziffern 0 bis 9 erlaubt. Für alle anderen Zeichen (Buchstaben, die Zeichen +, - und _) liefert der Baustein den Wert 0 und der Ausgang ENO wird auf den Wert FALSE gesetzt.   

Explizite Konvertierung laut IEC-Norm

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

LREAL, REAL, LINT, INT, SINT, ULINT, UDINT, UINT, USINT, LWORD, DWORD, WORD, BYTE, BOOL

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:DINT

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. (In diesem Fall liefert der Baustein außerdem den Wert 0.)
  • Ein STRING-Wert übersteigt die Obergrenze des Ziel-Datentyps. (In diesem Fall liefert der Baustein außerdem die Obergrenze des Ziel-Datentyps.)
  • Ein STRING-Wert unterschreitet die Untergrenze des Ziel-Datentyps. (In diesem Fall liefert der Baustein außerdem die Untergrenze des Ziel-Datentyps.)

  • Der CHAR-Wert ist ein nicht erlaubtes Zeichen. (In diesem Fall liefert der Baustein außerdem den Wert 0.)  

Beispiel für Verwendung im ST-Editor

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

Siehe unter "TO_INT-Baustein" für entsprechende Beispiele mit STRING-Werten. Für diesen Baustein gilt jedoch ein anderer Ziel-Datentyp und somit eine andere Obergrenze/Untergrenze (siehe "Unterstützte Datentypen" für die Obergrenze/Untergrenze pro Datentyp).

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.