DATA_BLOCK DB_Test FB_DT_String
//
// Block Comment...
//
BEGIN
END_DATA_BLOCK
FUNCTION_BLOCK FB_DT_String
VAR_TEMP
SFC_Error : INT;
CurrentDT : DT;
TempDT AT CurrentDT : ARRAY[1..6] OF BYTE;
END_VAR
VAR
MyTimeInt : STRUCT
Year : INT;
Month : INT;
Day : INT;
Hour : INT;
Minute : INT;
Second : INT;
END_STRUCT;
MyTimeStr : STRUCT
Year : STRING[4];
Month : STRING[4];
Day : STRING[4];
Hour : STRING[4];
Minute : STRING[4];
Second : STRING[4];
END_STRUCT;
aS AT MyTimeStr: ARRAY[0..5] OF STRING[4];
aI AT MyTimeInt:ARRAY[0..5] OF INT;
iI:INT;
END_VAR
// Get Current Date and Time
SFC_Error := READ_CLK(CDT := CurrentDT);
IF SFC_Error = 0 THEN
MyTimeInt.Year := WORD_BCD_TO_INT(TempDT[1]);
MyTimeInt.Month := WORD_BCD_TO_INT(TempDT[2]);
MyTimeInt.Day := WORD_BCD_TO_INT(TempDT[3]);
MyTimeInt.Hour := WORD_BCD_TO_INT(TempDT[4]);
MyTimeInt.Minute := WORD_BCD_TO_INT(TempDT[5]);
MyTimeInt.Second := WORD_BCD_TO_INT(TempDT[6]);
END_IF;
// Convert to strings
FOR iI:=0 TO 5 DO
as[iI]:=I_STRNG(aI[iI]);
END_FOR;
END_FUNCTION_BLOCK