Antwort:
Voraussetzung ist, dass der gelieferte Wert die Zeit in Millisekunden beinhaltet. Dann kann die Umwandlung in zwei Schritten folgendermaßen vor sich gehen:
1. Zuerst wandelt man den gegebenen Wert in das Format Doppelinteger und schreibt das Ergebnis in eine Variable vom Typ Time.
Integerwerte werden mit dem Befehl "ITD" und Realwerte mit "RND" in das Format Doppelinteger gewandelt. 2. Durch die Nutzung des FC40 aus "Standard Library > IEC Function Blocks > FC40" (TIM_S5TI) wird das Format TIME in S5TIME gewandelt.
Beispiel:
In einer AWL-Quelle sieht die Programmierung für eine INT > S5 Time Umwandlung folgendermaßen aus:
VAR_INPUT
wert_i : INT ;
END_VAR
VAR_OUTPUT
zeit_s5 : S5TIME ;
END_VAR
VAR_TEMP
tmp_time : TIME ;
END_VAR
BEGIN
NETWORK
TITLE =
L #wert_i;
ITD ;
T #tmp_time;
NETWORK
TITLE =
CALL "TIM_S5TI" (
IN := #tmp_time,
RET_VAL := #zeit_s5);
END_FUNCTION