FB_EcExtSyncIsSynchronized
Dieser Funktionsbaustein prüft, ob die interne und die externe Uhr synchron laufen (bSynchronized). Hierfür wird geprüft, ob der Abstand der Uhren über 10 Zyklen innerhalb des angegebenen Synchronisationsfensters nSyncWindow liegt. Bei ungültigen Daten (bNotConnected = TRUE) wird die Synchronisation als nicht gegeben gemeldet.
Der Funktionsbaustein ist für die Nachregelung nicht zwingend nötig, sondern kann zu informativen Zwecken verwendet werden.
VAR_INPUT
VAR_INPUT
nSyncWindow : UDINT;
bNotConnected : BOOL;
nDcToTcOffset : LINT;
nDcToExtOffset : LINT;
nExtTime : T_DCTIME64;
nIntTime : T_DCTIME64;
END_VAR
nSyncWindow: Zeitfenster [ns], innerhalb dessen die interne und die externe Zeit als synchronisiert gelten
bNotConnected: TRUE, wenn die Daten ungültig sind (entspricht dem WcState der EL6692)
nDcToTcOffset: Offset zwischen der Distributed-Clock-Zeit und der TwinCAT-Zeit [ns] aus den InfoData des EtherCAT-Masters
nDcToExtOffset: Offset zwischen Distributed-Clock-Zeit und externer Zeit [ns] aus den InfoData des EtherCAT-Masters
nExtTime: externer Zeitstempel
nIntTime: interner Zeitstempel
VAR_OUTPUT
VAR_OUTPUT
bSychronized : BOOL;
nDcOffset : T_DCTIME64;
END_VAR
bSynchronized: TRUE, wenn der Betrag des Abstands zwischen interner und externer Zeit über mindestens 10 Zyklen innerhalb des Synchronisationsfensters liegt
nDcOffset: Betrag des aktuellen Abstands zwischen interner und externer Zeit [ns]
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliothek (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, ARM) | Tc3_EtherCATExtSync |