UtcTimeFractionOfSecond_To_LTIME

Konvertiert den Bruchteil einer Sekunde des Typs T_UINT24 in den Typ LTIME. Die zu konvertierenden Binärdaten entsprechen dem Typ der T_UtcTime.fractionOfSecond-Komponente. Die 24 Bits müssen auf besondere Weise codiert sein. Siehe: Codierung der UTC-Time.fractionOfSecond0..23-Bits. Die T_Utctime.Quality.Accuracy0..4-Bit-Komponenten bestimmen die max. Anzahl der signifikanten fractionOfSecond-Bits und die max. Auflösung die bei der Konvertierung erreicht werden kann (~60ns).

Namensraum: Tc3_Collections
Bibliothek: Tc3_Collections (Tc3_Collections.compiled-library)

Syntax

FUNCTION UtcTimeFractionOfSecond_To_LTIME : LTIME
VAR_INPUT
    in      : T_UINT24;
END_VAR
VAR_OUTPUT
    nanosec : LWORD;
    attosec : LWORD;
END_VAR

UtcTimeFractionOfSecond_To_LTIME 1: Eingänge

Name

Typ

Beschreibung

in

T_UINT24

Der zu konvertierende Bruchteil der Sekunde als Binärdaten.

UtcTimeFractionOfSecond_To_LTIME 2: Ausgänge

Name

Typ

Beschreibung

nanosec

LWORD

Optionaler Ausgangsparameter. Bruchteil der Sekunde in Nanosekunden.

attosec

LWORD

Optionaler Ausgangsparameter. Bruchteil der Sekunde in Attosekunden.

UtcTimeFractionOfSecond_To_LTIME 3: Rückgabewert

Name

Typ

Beschreibung

UtcTimeFractionOfSecond_To_LTIME

LTIME

Konvertierter Bruchteil einer Sekunde in Nanosekunden.

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;