F_CXSubTimeStamp

F_CXSubTimeStamp 1:

Für die Subtraktion bietet TwinCAT3.1 auch 64bit-Datentypen (LINT/ULINT, LWORD) die direkt ausgeführt werden können (A-B) bzw. es bestehen TC2-kompatiblen Funktionen für 64bit-Operationen, die alternativ zur F_CXSubTimeStamp verwendet werden sollten.

F_CXSubTimeStamp 2:

Die Funktion F_CXSubTimeStamp führt eine 64bit-Subtraktion Zeitstempel A - Zeitstempel B durch und wandelt das Ergebnis in µs um. Die notwendigen 64bit-Zeitstempel mit einer 100ns-Auflösung können mit dem Funktionsbaustein GETCPUCOUNTER aus dem System ausgelesen werden.

Ist die Differenz zwischen dem Zeitstempel A und dem Zeitstempel B negativ oder größer als 4294967295us, dann wird der Maximalwert 4294967295us zurückgeliefert, das entspricht 71 Minuten, 34 Sekunden, 967 Millisekunden und 295 Mikrosekunden. In diesen Fällen kann die Funktion UInt64Sub64() der TcUtilities.lib verwendet werden, um eine vollständige 64-Bit-Subtraktion mit 64-Bit-Ergebnis in [100ns] durchzuführen.

FUNCTION F_CXSubTimeStamp : UDINT

VAR_INPUT
    nTimeStampLoDW_A : UDINT; (* 2*32 bit time stamp A: low DWORD *)
    nTimeStampHiDW_A : UDINT; (* 2*32 bit time stamp A: high DWORD *)
    nTimeStampLoDW_B : UDINT; (* 2*32 bit time stamp B: low DWORD *)
    nTimeStampHiDW_B : UDINT; (* 2*32 bit time stamp B: high DWORD *)
END_VAR

nTimeStampLoDW_A: Untere 32bit des Zeitstempels A.

nTimeStampHiDW_A: Obere 32bit des Zeitstempels A.

nTimeStampLoDW_B: Untere 32bit des Zeitstempels B.

nTimeStampHiDW_B: Obere 32bit des Zeitstempels B.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS- Bibliotheken

TwinCAT v3.1

CX (WES7/Win7/Win10: TC RT x86/x64, WEC6/7 :TC TR x86, WEC7: TC CE7 ARMV7)

Tc2_SystemCX