String_To_UtcTimeQuality

Konvertiert die als String formatierte UTC-Time-Quality-Information in die Komponenten des strukturierten Typs T_UtcTimeQuality. Die Zeichenfolge des zu konvertierenden Strings ist vorgegeben und hat folgenden Aufbau: 'UQ#LFC|A[A]'. Sie entspricht der TwinCAT UTC-Time-Quality-String-Formatspezifikation.

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

Syntax

FUNCTION String_To_UtcTimeQuality : T_UtcTimeQuality
VAR_INPUT
    in     : STRING(9) := 'UQ#000|0';
END_VAR
VAR_OUTPUT
    bError : BOOL;
END_VAR

String_To_UtcTimeQuality 1: Eingänge

Name

Typ

Beschreibung

in

STRING(9)

Die zu konvertierende Information als UTC-Time-Quality-String.

String_To_UtcTimeQuality 2: Ausgänge

Name

Typ

Beschreibung

bError

BOOL

Dieser Ausgang ist „TRUE“ wenn die Zeichenfolge des Eingangsstring nicht fehlerfrei konvertiert werden konnte.

String_To_UtcTimeQuality 3: Rückgabewert

Name

Typ

Beschreibung

String_To_UtcTimeQuality

T_UtcTimeQuality

Konvertierte Information als UTC-Time-Quality-Struktur.

Beispiel

Der Rückgabewert: 'UQ#001|3' bedeutet, dass Schaltsekunden nicht bekannt sind. Zeitgeber hat keinen Fehler und ist nicht synchronisiert, die Auflösung der Zeitinformation des Bruchteils der Sekunde beträgt 3 Bits.

METHOD UtcTimeQuality_ToFrom_String : BOOL
VAR_INPUT
    fbIED    : REFERENCE TO FB_IED;
END_VAR
VAR
    Quality  : T_UtcTimeQuality;
    sQuality : STRING;
END_VAR
IF NOT __ISVALIDREF(fbIED) THEN
    RETURN;
END_IF

Quality := String_To_UtcTimeQuality('UQ#000|0');
sQuality := UtcTimeQuality_To_String(Quality);(* sQuality := 'UQ#000|0' *)
IF fbIED.Relay.LLN0.Beh.t.sQuality <> sQuality THEN
    Quality := fbIED.Relay.LLN0.Beh.t.Quality;
END_IF

Quality := String_To_UtcTimeQuality('UQ#001|3');
sQuality := UtcTimeQuality_To_String(Quality);(* sQuality := 'UQ#001|3' *)
IF fbIED.Relay.LLN0.Health.t.sQuality <> sQuality THEN
    Quality := fbIED.Relay.LLN0.Health.t.Quality;
END_IF

Quality := String_To_UtcTimeQuality('UQ#000|31');
sQuality := UtcTimeQuality_To_String(Quality);(* sQuality := 'UQ#000|31' *)
IF fbIED.Relay.LLN0.Mod_.t.sQuality <> sQuality THEN
    Quality := fbIED.Relay.LLN0.Mod_.t.Quality;
END_IF

UtcTimeQuality_ToFrom_String := TRUE;