TO_DATE-Baustein
Kurz-Information
Name |
TO_DATE |
→POE-Typ |
|
Kategorie |
IEC-Baustein, ConvertEnh, Baustein mit interner Fehlerdiagnose |
Konform zur →IEC-Norm |
|
Grafische Schnittstelle |
|
Verfügbar ab |
Version 1.65.0 (für logi.CAD 3) |
Funktionalität
Der Baustein dient zur expliziten Konvertierung des an IN anliegenden Werts in einen Wert vom Datentyp DATE.
Falls der anliegende Wert im gemeinsamen Wertbereich des Eingangsdatentyps und des Ergebniswerts DATE liegt, so liefert der Baustein diesen Wert. Dabei wird der anliegende Wert auf Sekunden-Basis konvertiert, und zwar relativ zur Untergrenze D#1970-01-01 von DATE ( siehe unter " Beispiel für Verwendung im ST-Editor" und "Wertbereich für Konvertierungen" für Unter- und Obergrenzen pro Datentyp).
Explizite Konvertierung laut IEC-Norm
Die IEC-Norm sieht eine explizite Konvertierung der folgenden Datentypen auf DATE vor:
LDATE_AND_TIME, DATE_AND_TIME
Der Datentyp LDATE_AND_TIME wird derzeit von logi.CAD 3 nicht unterstützt. Für die Konvertierung des Datentyps DATE_AND_TIME ist auch der IEC-konforme Baustein DT_TO_DATE verfügbar.
Eingänge, Ergebniswert
|
Bezeichner |
Beschreibung |
|
Eingänge: |
IN |
REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT, LINT, TIME, BOOL, BYTE, WORD, DWORD, LWORD, DATE_AND_TIME, DATE oder TIME_OF_DAY |
zu konvertierender Wert |
Ergebniswert: |
– |
DATE |
|
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 vor der Ausführung den Datentyp des an IN anliegenden Werts bzw. den Ergebniswert. Der Ausgang ENO des Bausteins wird auf den Wert FALSE (oder eine Entsprechung) gesetzt, falls:
es sich um den Datentyp TIME_OF_DAY handelt.
es sich um den Datentyp LINT, ULINT, REAL oder LREAL handelt und dafür ein Ergebniswert < DATE#0001-01-01 oder > DT#9999-12-31 geliefert werden würde. Der Ergebniswert wird auf den entsprechenden Minimalwert bzw. Maximalwert gesetzt (siehe unter "Wertbereich für Konvertierungen").
Beispiel für Verwendung im ST-Editor
Die berechneten Werte werden mit Hilfe des Assert-Bausteins ausgewertet.
FUNCTION_BLOCK ExampleToDate
VAR
result : DATE;
END_VAR
result := TO_DATE(IN := SINT#
12
);
Assert(result = D#
1970
-
01
-
01
);
END_FUNCTION_BLOCK
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.
Wertbereich für Konvertierungen
Der Wertbereich für die Konvertierungen wird durch Untergrenze und Obergrenze der Datentypen bestimmt. Diese Untergrenze und Obergrenze pro Datentyp sind unter "Unterstützte Datentypen (in ST)" angeführt.
Beachten Sie:
Die Untergrenze für DATE bzw. DATE_AND_TIME ist für Literale gültig. Aufgrund von Berechnungen oder Konvertierungen kann logi.CAD 3 Werte bis zu DATE#0001-01-01 bzw. DT#0001-01-01-00:00:00.000_000_000 verarbeiten und darstellen.
Die folgende Tabelle zeigt jene Literale für IN , bei dem der Baustein den kleinsten möglichen bzw. den größten möglichen Ergebniswert liefert (bezogen auf den Datentyp für IN ), der auf allen Zielsystemen verarbeitbar ist. Abhängig von Ihrem Zielsystem ist es möglich, Literale zu verwenden, bei dem ein Ergebniswert > D#9999-12-31 geliefert wird.
|
Untergrenze |
Obergrenze |
||
Literal für IN |
Ergebniswert |
Literal für IN |
Ergebniswert |
|
BOOL |
0 |
D#0001-01-01 |
1 |
D#0001-01-02 |
BYTE |
16#00 |
D#1970-01-01 |
16#FF |
D#1970-01-01 |
DATE |
D#1970-01-01 |
D#1970-01-01 |
D#9999-12-31 |
D#9999-12-31 |
DINT |
-2_147_483_648 bis -2_147_472_001 |
D#1901-12-13 |
2_147_472_000 bis 2_147_483_647 |
D#2038-01-19 |
DT |
DT#1970-01-01-00:00:00 |
D#1970-01-01 |
DT#9999-12-31-23:59:59 |
D#9999-12-31 |
DWORD |
16#0000_0000 bis 16#0001_517F |
D#1970-01-01 |
16#FFFF_A500 bis 16#FFFF_FFFF |
D#2106-02-07 |
INT |
-32_768 bis -1 |
D#1969-12-31 |
0 bis 32_767 |
D#1970-01-01 |
LINT |
-62_135_769_600 bis -62_135_683_201 |
D#0001-01-01 |
253_402_214_400 bis 253_402_300_799 |
D#9999-12-31 |
LREAL |
LREAL#-62_135_769_600.0 bis LREAL#-62_135_683_201.0 |
D#0001-01-01 |
LREAL#253_402_214_400.0 bis LREAL#253_402_300_799.0 |
D#9999-12-31 |
LWORD |
16#0000_0000_0000_0000 bis 16#0000_0000_0001_517F |
D#1970-01-01 |
16#0000_003A_FFF2_F000 bis 16#003A_FFF4_417F |
D#9999-12-31 |
REAL |
REAL#-62_135_769_087.0 bis REAL#-62_135_683_072.0 |
D#0001-01-01 |
REAL#253_402_210_303.0 bis REAL#253_402_300_799.0 |
D#9999-12-31 |
SINT |
-128 bis -1 |
D#1969-12-31 |
0 bis 127 |
D#1970-01-01 |
TIME |
T#-719_164d |
D#0001-01-01 |
T#2_932_896d |
D#9999-12-31 |
TOD |
TOD#00:00:00 |
D#0001-01-01 |
TOD#23:59:59.999_000_000 |
D#0001-01-01 |
UDINT |
0 bis 86399 |
D#1970-01-01 |
4_294_944_000 bis 4_294_967_295 |
D#2106-02-07 |
UINT |
0 |
D#1970-01-01 |
65_535 |
D#1970-01-01 |
ULINT |
0 bis 86399 |
D#1970-01-01 |
253_402_214_400 bis 253_402_300_799 |
D#9999-12-31 |
USINT |
0 |
D#1970-01-01 |
255 |
D#1970-01-01 |
WORD |
16#00 |
D#1970-01-01 |
16#FFFF |
D#1970-01-01 |