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

LTIME_To_UtcTimeFractionOfSecond 1: Eingänge

Name

Typ

Beschreibung

in

LTIME

Der zu konvertierende Bruchteil einer Sekunde.

LTIME_To_UtcTimeFractionOfSecond 2: 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.

LTIME_To_UtcTimeFractionOfSecond 3: Rückgabewert

Name

Typ

Beschreibung

LTIME_To_UtcTimeFractionOfSecond

T_UINT24

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;