LTIME_To_UtcTimeFractionOfSecond
Konvertiert den Bruchteil einer Sekunde des Typs LTIME in den Typ T_UINT24. Der konvertierte Wert entspricht dem Wert der T_UtcTime.fractionOfSecond-Komponente. Der LTIME-Wert wird in 24 Bits auf besondere Weise codiert. Siehe: Codierung der UTC-Time.fractionOfSecond0..23-Bits. Der Eingangswert muss <= LTIME#999ms999us9999ns. Die max. Auflösung bei der Konvertierung beträgt ~60ns.
Namensraum: Tc3_Collections
Bibliothek: Tc3_Collections (Tc3_Collections.compiled-library)
Syntax
FUNCTION LTIME_To_UtcTimeFractionOfSecond : T_UINT24
VAR_INPUT
in : LTIME;
END_VAR
VAR_OUTPUT
bOverflow : BOOL;
secondsOver : LWORD;
nanosec : LWORD;
attosec : LWORD;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
in | LTIME | Der zu konvertierende Bruchteil einer Sekunde. |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
bOverflow | BOOL | Zusätzlicher Ausgangsparameter der Information über den Eingangswertüberlauf liefert. Beim Eingangswert >= LTIME#1s ist dieser Wert „TRUE“, sonst „FALSE“. |
secondsOver | LWORD | Zusätzlicher Ausgangsparameter der die Anzahl der Überlaufsekunden liefert. |
nanosec | LWORD | Zusätzlicher Ausgangsparameter der den Eingangswert in Nanosekunden liefert. |
attosec | LWORD | Zusätzlicher Ausgangsparameter der den Eingangswert in Attosekunden liefert. |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
LTIME_To_UtcTimeFractionOfSecond | Konvertierter Bruchteil einer Sekunde als Binärdaten. |
Beispiel
METHOD UtcTimeFractionOfSecond_ToFrom_LTIME : BOOL
VAR
tValue : T_UtcTime;
sValue : STRING;
tFos : LTIME;
nanosec : LWORD;
END_VAR
tValue.quality := String_To_UtcTimeQuality('UQ#000|24');
tValue.secondSinceEpoch := DT#2018-03-28-12:13:14;
tValue.fractionOfSecond := LTIME_To_UtcTimeFractionOfSecond(LTIME#0NS);(* tValue.fractionOfSecond := [16#00, 16#00, 16#00], 0 significant bits *)
sValue := UtcTime_To_String(tValue);(* sValue := 'UT#2018-03-28-12:13:14.000000000|000|24' *)
tFos := UtcTimeFractionOfSecond_To_LTIME(tValue.fractionOfSecond, nanosec=>nanosec);(* tFos := LTIME#0ns, nanosec := 0 *)
tValue.fractionOfSecond := LTIME_To_UtcTimeFractionOfSecond(LTIME#750MS);(* tValue.fractionOfSecond := [16#03, 16#00, 16#00], 3 significant bits *)
sValue := UtcTime_To_String(tValue);(* sValue := 'UT#2018-03-28-12:13:14.750000000|000|24' *)
tFos := UtcTimeFractionOfSecond_To_LTIME(tValue.fractionOfSecond, nanosec=>nanosec);(* tFos := LTIME#750ms, nanosec := 750000000 *)
tValue.fractionOfSecond := LTIME_To_UtcTimeFractionOfSecond(LTIME#968MS750US);(* tValue.fractionOfSecond := [16#1F, 16#00, 16#00], 5 significant bits *)
sValue := UtcTime_To_String(tValue);(* sValue := 'UT#2018-03-28-12:13:14.968750000|000|24' *)
tFos := UtcTimeFractionOfSecond_To_LTIME(tValue.fractionOfSecond, nanosec=>nanosec);(* tFos := LTIME#968ms750us, nanosec := 968750000 *)
tValue.fractionOfSecond := LTIME_To_UtcTimeFractionOfSecond(LTIME#998MS46US875NS);(* tValue.fractionOfSecond := [16#FF, 16#01, 16#00], 9 significant bits *)
sValue := UtcTime_To_String(tValue);(* sValue := 'UT#2018-03-28-12:13:14.998046875|000|24' *)
tFos := UtcTimeFractionOfSecond_To_LTIME(tValue.fractionOfSecond, nanosec=>nanosec);(* tFos := LTIME#998ms46us875ns, nanosec := 998046875 *)
tValue.fractionOfSecond := LTIME_To_UtcTimeFractionOfSecond(LTIME#999MS999US999NS);(* tValue.fractionOfSecond := [16#FF, 16#FF, 16#FF], 24 significant bits *)
sValue := UtcTime_To_String(tValue);(* sValue := 'UT#2018-03-28-12:13:14.999999940|000|24' *)
tFos := UtcTimeFractionOfSecond_To_LTIME(tValue.fractionOfSecond, nanosec=>nanosec);(* tFos := LTIME#999ms999us940ns, nanosec := 999999940 *)
UtcTimeFractionOfSecond_ToFrom_LTIME := TRUE;