UTC-Time-Quality-BYTE-Formatspezifikation

Die TwinCAT UTC-Time-Quality-Komponenten werden in BYTE auf folgende Weise codiert:

Bit

Komponente

Typ

Wertebereich

Beschreibung

0

LeapSecondsKnown

BIT

0..1

Qualität der Schaltsekunden (0:=Unbekannt, 1:=Bekannt).

1

ClockFailure

BIT

0..1

Qualität des Zeitgebers (0:=Gut, 1:=Fehlerhaft).

2

ClockNotSynchronized

BIT

0..1

Qualität der Uhrzeitsynchronisierung (0:=Synchron, 1:=Nicht synchron).

3

Accuracy0

BIT

0..1 (MSB)

Genauigkeit der Zeitinformation (Präzision des Bruchteils der Sekunde). Max. Anzahl der signifikanten Bits in der T_UtcTime.fractionOfSecond-Komponente.
In der Präzision ist Accuracy0 das höchstwertige Bit und Accuracy4 das niedrigstwertige Bit.

4

Accuracy1

BIT

0..1

5

Accuracy2

BIT

0..1

6

Accuracy3

BIT

0..1

7

Accuracy4

BIT

0..1 (LSB)

Codierung der Präzision in den UTC-Time.Quality.Accuracy0..4-Bits.

Präzision

Accuracy0

Accuracy1

Accuracy2

Accuracy3

Accuracy4

E_UtcTimeAccuracy

0 Bit

0

0

0

0

0

Null

1 Bit

0

0

0

0

1

_01

2 Bit

0

0

0

1

0

_02

3 Bit

0

0

0

1

1

_03

4 Bit

0

0

1

0

0

_04

5 Bit

0

0

1

0

1

_05

6 Bit

0

0

1

1

0

_06

7 Bit

0

0

1

1

1

_07

8 Bit

0

1

0

0

0

_08

9 Bit

0

1

0

0

1

_09

10 Bit

0

1

0

1

0

_10

11 Bit

0

1

0

1

1

_11

12 Bit

0

1

1

0

0

_12

13 Bit

0

1

1

0

1

_13

14 Bit

0

1

1

1

0

_14

15 Bit

0

1

1

1

1

_15

16 Bit

1

0

0

0

0

_16

17 Bit

1

0

0

0

1

_17

18 Bit

1

0

0

1

0

_18

19 Bit

1

0

0

1

1

_19

20 Bit

1

0

1

0

0

_20

21 Bit

1

0

1

0

1

_21

22 Bit

1

0

1

1

0

_22

23 Bit

1

0

1

1

1

_23

24 Bit

1

1

0

0

0

_24

Unzulässig

1

1

n

n

n

_25_invalid.._30_invalid

Nicht spezifiziert

1

1

1

1

1

Unspecified

Beispiele

Die folgende Tabelle enthält einige BYTE-Zahlenwerte und die Werte nach der Konvertierung in den formatierten UTC-Time-Quality-String und in den strukturierten Typ: T_UtcTimeQuality.

BYTE

STRING(9)

T_UtcTimeQuality

Beschreibung

2#00000000

'UQ#000|0'

STRUCT(0)

Alle Komponenten haben den Wert: 0. Präzision: 0 Bit.

2#11000000

'UQ#000|3'

STRUCT(Accuracy3:=1, Accuracy4:=1)

Präzision: 3 Bit. Alle anderen Komponenten haben den Wert 0.

2#10100100

'UQ#001|5'

STRUCT(ClockNotSynchronized:=1, Accuracy2:=1, Accuracy4:=1)

Zeitgeber ist nicht synchronisiert.
Präzision: 5 Bit. Alle anderen Komponenten haben den Wert 0.

2#11111010

'UQ#010|31'

STRUCT(ClockFailure:=1, Accuracy0:=1, Accuracy1:=1, Accuracy2:=1, Accuracy3:=1, Accuracy4:=1)

Zeitgeber meldet einen Fehler. Präzision: Nicht spezifiziert. Alle anderen Komponenten haben den Wert 0.