====== 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}}