FP_NTP_SYNCHRONIZE

Zeitsynchronisation vom NTP-Server beauftragen

Dieser FP-Befehl sendet einen Auftrag an den NTP-Server, um die Zeit zu synchronisieren.

Parameter

Eingang

nNumberOfRetries (WORD, INT, UINT)

Anzahl der Wiederholungsversuche des Beauftragens der Zeitsynchronisation

Werte: 0–20

nRetryInterval (WORD, INT, UINT)

Zeitsynchronisationsintervall

Werte: 16–600

Ausgang

nResult (WORD, INT, UINT)

Ausführungsergebniscode

16#FFFF

Läuft

16#0

Normaler Abschluss

16#10

Doppelter Anlaufzeitfehler

Der Befehl, der die Zeitsynchronisation angefragt hat, wird gerade ausgeführt.

Anmerkung

Der doppelte Anlaufzeitfehler tritt nicht auf, wenn der Befehl ausgeführt wird, während die Anzahl der Wiederholungen auf 0 eingestellt ist, um den Befehl zur Zeitsynchronisation abzubrechen.

16#11

SNTP-Serveradressen-Einstellungsfehler

ET-LAN-Einstellung, SNTP-Serveradressen-Einstellung = "0.0.0.0"

16#12

Verbindungsabbruchfehler

Ethernet ist getrennt

16#13

Fehler Ethernet-Initialisierung aktiv

Dem Ethernet-Modul, das den Auftrag sendet, wurde keine IP-Adresse zugewiesen. (sys_bIsEthernetIPAddressAssigned ist FALSE)

16#14

Fehler bei der Einstellung der Anzahl der Wiederholungsversuche

Die angegebene Anzahl der Wiederholungen liegt außerhalb des zulässigen Bereichs.

16#15

Wiederholungsintervalleinstellungsfehler

Das angegebene Wiederholungsintervall liegt außerhalb des zulässigen Bereichs.

16#20

Antwortzeitüberschreitungsfehler

Die Antwortzeit für die Bearbeitung des Zeitsynchronisationsauftrags überschreitet die vordefinierte Zeit.

Anmerkung

Dieser Fehler tritt auch auf, wenn eine NTP-IP-Adresse nicht aufgelöst wird.

16#30

Ethernet-Task-Antwortzeitüberschreitung

Dieser Fehler tritt auf, wenn keine Antwort von der Ethernet-Task geliefert wird.

Anmerkungen

  • Dieser Befehl ist in Interrupt-Programmen nicht verfügbar.

  • Wenn eine Zeitüberschreitung bei der Zeitsynchronisation absehbar ist, stellen Sie nNumberOfRetries auf einen höheren Wert ein.

  • Um weitere Versuche, die Zeit zu synchronisieren, abzubrechen, stellen Sie nNumberOfRetries auf 0 ein. In diesem Fall wird der Ausführungsergebniscode nicht in nResult gespeichert.

  • Die Timeout-Periode für einen Synchronisationsversuch ist auf 3 Sekunden festgelegt.

  • Wenn mehrere Zeitsynchronisationsversuche angegeben sind, beginnt ein neuer Auftrag nach Ablauf der Timeout-Periode (3 Sekunden) plus dem Verarbeitungsintervall (angegeben durch nRetryInterval).

  • Die Gesamt-Timeout-Periode (Sekunden) für die Zeitsynchronisation wird mit der folgenden Formel berechnet: nRetryInterval x 3 + (nRetryInterval x (nNumberOfRetries-1)). (Hierbei ist nNumberOfRetries größer als 0.)

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden.Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		bRequestSynchronization: BOOL:=FALSE;
		iNumberOfRetries: INT:=3;
		iRetryInterval: INT:=20;
		wResult: WORD:=0;
		bEnable: BOOL:=FALSE;
			END_VAR

KOP-Rumpf

Wenn die Systemvariable sys_bIsEthernetInitializing auf FALSE ist und die Variable bEnable auf TRUE gesetzt wird, wird die Funktion ausgeführt.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,sys_bIsEthernetInitializing,6,1,8,3,N);
B(B_CONTACT,,bEnable,15,1,17,3,);
B(B_F,FP_NTP_SYNCHRONIZE!,,22,0,35,5,,?DEN?DnNumberOfRetries?DnRetryInterval?AENO?AnResult);
B(B_VARIN,,iNumberOfRetries,20,2,22,4,);
B(B_VAROUT,,wResult,35,2,37,4,);
B(B_VARIN,,iRetryInterval,20,3,22,5,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,15,2);
L(17,2,22,2);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
    FP_NTP_SYNCHRONIZE(nNumberOfRetries := iNumberOfRetries,
    nRetryInterval := iRetryInterval,
    nResult => wResult);
end_if;

Letzte Änderung: 2024-07-15Feedback zu dieser SeitePanasonic Hotline