Conversion: DATE, DT, TOD, LDATE, LDT, LTOD
The operators convert a date and time value into the specified data type and return a type-converted value.
The data types DATE
and DT
use the same memory format internally and are stored as DWORD
. The resolution for DATE
is 1 day. The resolution for DT
is 1 second. Both begin at January 1, 1970. TOD
is stored as DWORD
with a resolution of 1 millisecond.
The keywords DT
and TOD
are alternative spellings for the data types DATE_AND_TIME
and TIME_OF_DAY
. However, the latter are not mapped as a type conversion command.
The data types LDATE
and LDT
and LTOD
use the 64-bit memory format LWORD
internally.
Call syntax: DATE/DT/TOD_TO_< target type> ( <operand> )
Call syntax: LDATE/LDT/LTOD_TO_< target type> ( <operand> )
Table 17. Operators: DATE/DT/TOD_TO_<target type>
DATE_TO_<type> | DT_TO_<type> | TOD_TO_<type> | Example | Return Value | Description |
---|
DATE_TO___UXINT | DT_TO___UXINT | TOD_TO___XINT | | | __UXINT, __XINT, __XWORD |
DATE_TO___XINT | DT_TO___XINT | TOD_TO___XINT | | | __UXINT, __XINT, __XWORD |
DATE_TO___XWORD | DT_TO___XWORD | TOD_TO___XWORD | | | __UXINT, __XINT, __XWORD |
DATE_TO_BIT | DT_TO_BIT | TOD_TO_BIT | | | BIT |
DATE_TO_BOOL | DT_TO_BOOL | TOD_TO_BOOL | DATE_TO_BOOL(D#1970-1-1)
DATE_TO_BOOL(D#2019-9-1)
DT_TO_BOOL(DT#1970-1-1-0:0:0)
DT_TO_BOOL(DT#2019-9-1-12:0:0)
TOD_TO_BOOL(TOD#0:0:0)
TOD_TO_BOOL(TOD#12:0:0)
| FALSE TRUE FALSE TRUE FALSE TRUE | If and only if the operand value can be interpreted as "0", then the operator returns a FALSE . BOOL |
DATE_TO_BYTE | DT_TO_BYTE | DTOD_TO_BYTE | | | Integer |
- | DT_TO_DATE | TOD_TO_DATE | | | Resolution in seconds (although only the day is displayed) |
DATE_TO_DINT | DT_TO_DINT | TOD_TO_DINT | DATE_TO_DINT(D#1970-1-1)
DATE_TO_DINT(D#1970-1-2)
DATE_TO_DINT(D#2019-9-1)
DT_TO_DINT(DT#1970-1-1-0:0:0)
DT_TO_DINT(DT#1970-1-1-0:0:1)
DT_TO_DINT(DT#2019-9-1-12:0:0.0)
TOD_TO_DINT(TOD#0:0:0)
TOD_TO_DINT(TOD#12:0:0)
| 0
86400
1567339200
0
1
1567339200
0
43200000
| Integer |
DATE_TO_DT | - | TOD_TO_DT | | | Data type: DATE |
DATE_TO_DWORD | DT_TO_DWORD | TOD_TO_DWORD | | | Integer |
DATE_TO_INT | DT_TO_INT | TOD_TO_INT | | | Integer |
DATE_TO_LDATE | DT_TO_LDATE | TOD_TO_LDATE | | | Data type: DATE |
DATE_TO_LDT | DT_TO_LDT | TOD_TO_LDT | | | Data type: DATE |
DATE_TO_LINT | DT_TO_LINT | TOD_TO_LINT | | | Integer |
DATE_TO_LREAL | DT_TO_LREAL | TOD_TO_LREAL | | | REAL, LREAL |
DATE_TO_LTIME | DT_TO_LTIME | TOD_TO_LTIME | | | Data type: DATE |
DATE_TO_LTOD | DT_TO_LTOD | TOD_TO_LTOD | | | Data type: DATE |
DATE_TO_LWORD | DT_TO_LWORD | TOD_TO_LWORD | | | Integer |
DATE_TO_REAL | DT_TO_REAL | TOD_TO_REAL | | | REAL, LREAL |
DATE_TO_SINT | DT_TO_SINT | TOD_TO_SINT | | | Integer |
DATE_TO_STRING | DT_TO_STRING | TOD_TO_STRING | DATE_TO_STRING(D#1970-1-1)
DT_TO_STRING(D#1970-1-1-0:0:1)
TOD_TO_STRING(12:0:1) | 'D#1970-1-1' 'D#1970-1-1-0:0:1' 'TOD#12:0:1' | STRING |
DATE_TO_TIME | DT_TO_TIME | TOD_TO_TIME | | | Data type: DATE |
DATE_TO_TOD | DT_TO_TOD | - | | | Data type: DATE |
DATE_TO_UDINT | DT_TO_UDINT | TOD_TO_UDINT | | | Integer |
DATE_TO_UINT | DT_TO_UINT | TOD_TO_UINT | | | Integer |
DATE_TO_ULINT | DT_TO_ULINT | TOD_TO_ULINT | | | Integer |
DATE_TO_USINT | DT_TO_USINT | TODE_TO_USINT | | | Integer |
DATE_TO_WORD | DT_TO_WORD | TOD_TO_WORD | | | Integer |
DATE_TO_WSTRING | DT_TO_WSTRING | TOD_TO_WSTRING | DATE_TO_WSTRING(D#1970-1-1)
DT_TO_WSTRING(D#1970-1-1-0:0:1)
TOD_TO_WSTRING(12:0:1) | "D#1970-1-1" "D#1970-1-1-0:0:1" "TOD#12:0:0" | WSTRING |
Table 18. Operators: LDATE/LDT/LTOD_TO_<target type>
LDATE_TO_<type> | LDT_TO_<type> | LTOD_TO_<type> | Example | Return Value | Description |
---|
LDATE_TO___UXINT | LDT_TO___UXINT | LTOD_TO___XINT | | | __UXINT, __XINT, __XWORD |
LDATE_TO___XINT | LDT_TO___XINT | LTOD_TO___XINT | | | __UXINT, __XINT, __XWORD |
LDATE_TO___XWORD | LDT_TO___XWORD | LTOD_TO___XWORD | | | __UXINT, __XINT, __XWORD |
LDATE_TO_BIT | LDT_TO_BIT | LTOD_TO_BIT | | | BIT |
LDATE_TO_BOOL | LDT_TO_BOOL | LTOD_TO_BOOL | | | BOOL |
LDATE_TO_BYTE | LDT_TO_BYTE | LTOD_TO_BYTE | | | Integer |
LDATE_TO_DATE | LDT_TO_DATE | LTOD_TO_DATE | | | Seconds (although only the day is displayed) Data type: DATE |
LDATE_TO_DINT | LDT_TO_DINT | LTOD_TO_DINT | | | Integer |
LDATE_TO_DT | LDT_TO_DT | LTOD_TO_DT | | | Data type: DATE |
LDATE_TO_DWORD | LDT_TO_DWORD | LTOD_TO_DWORD | | | Integer |
LDATE_TO_INT | LDT_TO_INT | LTOD_TO_INT | | | Integer |
- | LDT_TO_LDATE | LTOD_TO_LDATE | | | Nanoseconds (although only the day is displayed) Data type: DATE |
LDATE_TO_LDT | - | LTOD_TO_LDT | | | Data type: DATE |
LDATE_TO_LINT | LDT_TO_LINT | LTOD_TO_LINT | | | Integer |
LDATE_TO_LREAL | LDT_TO_LREAL | LTOD_TO_LREAL | | | REAL, LREAL |
LDATE_TO_LTIME | LDT_TO_LTIME | LTOD_TO_LTIME | | | Data type: DATE |
LDATE_TO_LTOD | LDT_TO_LTOD | - | | | Data type: DATE |
LDATE_TO_LWORD | LDT_TO_LWORD | LTOD_TO_LWORD | | | Integer |
LDATE_TO_REAL | LDT_TO_REAL | LTOD_TO_REAL | | | REAL, LREAL |
LDATE_TO_SINT | LDT_TO_SINT | LTOD_TO_SINT | | | Integer |
LDATE_TO_STRING | LDT_TO_STRING | LTOD_TO_STRING | | | STRING |
LDATE_TO_TIME | LDT_TO_TIME | LTOD_TO_TIME | | | Data type: DATE |
LDATE_TO_TOD | LDT_TO_TOD | LTOD_TO_TOD | | | Data type: DATE |
LDATE_TO_UDINT | LDT_TO_UDINT | LTOD_TO_UDINT | | | Integer |
LDATE_TO_UINT | LDT_TO_UINT | LTOD_TO_UINT | | | Integer |
LDATE_TO_ULINT | LDT_TO_ULINT | LTOD_TO_ULINT | | | Integer |
LDATE_TO_USINT | LDT_TO_USINT | LTOD_TO_USINT | | | Integer |
LDATE_TO_WORD | LDT_TO_WORD | LTOD_TO_WORD | | | Integer |
LDATE_TO_WSTRING | LDT_TO_WSTRING | LTOD_TO_WSTRING | | | WSTRING |
The operands of type DATE
, DATE_AND_TIME
, TIME_OF_DAY
, DT
, or TOD
, which are passed to an operator for a data and time conversion, are converted to their constant syntax (literal syntax). The generated string contains the keyword D#
, DT#
or TOD#
and then the size with its data and time unit, as indicated in the IEC 61131-3 standard.
Example 177. FBD implementation language
The controller is in online mode in order to monitor the variables.