====== lamaLibrary: DT to string ======
System time convert to string date / time / date_and_time format.
FUNCTION_BLOCK "dtToStringDateAndTime"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR
timeDT : Date_And_Time;
timeDTL {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL;
stampDate : String;
stampTime : String;
stampDT : String;
tempStr : String;
retVal : Int;
END_VAR
BEGIN
// lamaPLC source: https://lamaplc.com/doku.php?id=lamalib:dt_to_string
// read local system time
#retVal := RD_LOC_T(#timeDT);
// convert it to dtl struct
#timeDTL := DT_TO_DTL(#timeDT);
// select year
#stampDate := UINT_TO_STRING(#timeDTL.YEAR);
#stampDate := DELETE(IN := #stampDate, L := 1, P := 1);
#stampDate := CONCAT(IN1 := #stampDate, IN2 := '-');
// select month
#tempStr := USINT_TO_STRING(#timeDTL.MONTH);
#tempStr := DELETE(IN := #tempStr, L := 1, P := 1);
IF #timeDTL.MONTH < 10 THEN // if need it to fill with a zero
#stampDate := CONCAT(IN1 := #stampDate, IN2 := '0');
END_IF;
#stampDate := CONCAT(IN1 := #stampDate, IN2 := #tempStr);
#stampDate := CONCAT(IN1 := #stampDate, IN2 := '-');
// select day
#tempStr := USINT_TO_STRING(#timeDTL.DAY);
#tempStr := DELETE(IN := #tempStr, L := 1, P := 1);
IF #timeDTL.DAY < 10 THEN // if need it to fill with a zero
#stampDate := CONCAT(IN1 := #stampDate, IN2 := '0');
END_IF;
#stampDate := CONCAT(IN1 := #stampDate, IN2 := #tempStr);
// select hour
#stampTime := UINT_TO_STRING(#timeDTL.HOUR);
#stampTime := DELETE(IN := #stampTime, L := 1, P := 1);
IF #timeDTL.HOUR < 10 THEN // if need it to fill with a zero
#stampTime := CONCAT(IN1 := '0', IN2 := #stampTime);
END_IF;
#stampTime := CONCAT(IN1 := #stampTime, IN2 := '-');
// select minute
#tempStr := UINT_TO_STRING(#timeDTL.MINUTE);
#tempStr := DELETE(IN := #tempStr, L := 1, P := 1);
IF #timeDTL.MINUTE < 10 THEN // if need it to fill with a zero
#tempStr := CONCAT(IN1 := '0', IN2 := #tempStr);
END_IF;
#stampTime := CONCAT(IN1 := #stampTime, IN2 := #tempStr);
#stampTime := CONCAT(IN1 := #stampTime, IN2 := '-');
// select second
#tempStr := UINT_TO_STRING(#timeDTL.SECOND);
#tempStr := DELETE(IN := #tempStr, L := 1, P := 1);
IF #timeDTL.SECOND < 10 THEN // if need it to fill with a zero
#tempStr := CONCAT(IN1 := '0', IN2 := #tempStr);
END_IF;
#stampTime := CONCAT(IN1 := #stampTime, IN2 := #tempStr);
// generate dt
#stampDT := #stampDate;
#stampDT := CONCAT(IN1 := #stampDT, IN2 := ' : ');
#stampDT := CONCAT(IN1 := #stampDT, IN2 := #stampTime);
END_FUNCTION_BLOCK
{{:download:dtToStringDateAndTime.scl|DT to string}}
Main site > [[simatic:lamalib|LamaLibrary Simatic]]
===== lamaLibSimatic topics on lamaPLC =====
{{topic>lamaLibSimatic}}
{{tag>TIA SCL lamaLibSimatic source_code DT string convert}}
\\
This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}}