FUNCTION_BLOCK FB203
TITLE = 'DaT_To_STR'
//
// Uses: CONCAT, I_STRNG, DELETE from the S7 Standard Library
//
VERSION : '1.0'
AUTHOR : SKSE
NAME : DaT2STR
FAMILY : Lib10
VAR_INPUT
DtValue : DATE_AND_TIME ;
atDT AT DtValue: STRUCT
Jahr : BYTE ;
Monat : BYTE ;
Tag : BYTE ;
Stunde : BYTE ;
Minute : BYTE ;
Sekunde : BYTE ;
MSD : BYTE ;
LSDWT : BYTE ;
END_STRUCT;
END_VAR
VAR_OUTPUT
DtStr : STRING[20] ;
END_VAR
VAR
tJahr : STRING[5] ;
tMonat : STRING[3] ;
tTag : STRING[3] ;
tStd : STRING[3] ;
tMin : STRING[3] ;
END_VAR
BEGIN
(* Variablen initialisieren *)
DtStr := '0000-00-00 00:00 Uhr';
(* Jahr wandeln *)
tJahr := DELETE (IN:= I_STRNG(2000 + BCD_TO_INT(atDT.Jahr)), L:= 1, P:= 1);
(* Monat wandeln *)
IF BCD_TO_INT(atDT.Monat) < 10 THEN
tMonat := CONCAT(IN1 := '0' , IN2 := DELETE(IN:= I_STRNG(BCD_TO_INT(atDT.Monat)), L:= 1, P:= 1));
ELSE ;
tMonat := DELETE(IN:= I_STRNG(BCD_TO_INT(atDT.Monat)), L:= 1, P:= 1);
END_IF ;
(* Tag wandeln *)
IF BCD_TO_INT(atDT.Tag) < 10 THEN
tTag := CONCAT(IN1 := '0' , IN2 := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Tag)), L:= 1, P:= 1));
ELSE ;
tTag := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Tag)), L:= 1, P:= 1);
END_IF ;
(* Stunden wandeln *)
IF BCD_TO_INT(atDT.Stunde) < 10 THEN
tStd := CONCAT(IN1 := '0' , IN2 := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Stunde)), L:= 1, P:= 1));
ELSE ;
tStd := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Stunde)), L:= 1, P:= 1);
END_IF ;
(* Minuten wandeln *)
IF BCD_TO_INT(atDT.Minute) < 10 THEN
tMin := CONCAT(IN1 := '0' , IN2 := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Minute)), L:= 1, P:= 1));
ELSE ;
tMin := DELETE (IN:= I_STRNG(BCD_TO_INT(atDT.Minute)), L:= 1, P:= 1);
END_IF ;
(* Zeichenketten zusammenführen, Ergebnis ausgeben *)
DtStr := CONCAT(IN1 := tJahr , IN2 := '-');
DtStr := CONCAT(IN1 := DtStr , IN2 := tMonat);
DtStr := CONCAT(IN1 := DtStr , IN2 := '-');
DtStr := CONCAT(IN1 := DtStr , IN2 := tTag);
DtStr := CONCAT(IN1 := DtStr , IN2 := ' ');
DtStr := CONCAT(IN1 := DtStr , IN2 := tStd);
DtStr := CONCAT(IN1 := DtStr , IN2 := ':');
DtStr := CONCAT(IN1 := DtStr , IN2 := tMin);
DtStr := CONCAT(IN1 := DtStr , IN2 := ' Uhr');
END_FUNCTION_BLOCK