FP_NTP_SET_SERVER

NTP-Server-Verbindung einstellen

Dieser FP-Befehl stellt einen NTP-Zielserver ein, an den ein Zeitsynchronisationsauftrag gesendet werden kann.

Parameter

Eingang

sNTPServer (STRING)

IP-Adresse oder Host-Name (erforderlicher Parameter).

  • IP-Adresse

    Für eine IP-Adresse geben Sie am Anfang das Schlüsselwort IPv4 oder IPv6 an.

    Syntax für IPv4: z.B. 'IPv4=111.122.133.144'

    Syntax für IPv6: z.B. 'IPv6=1111:122:2:1555:0:0:1888'

  • Host-Name

    Schlüsselwort: HOST

    Syntax: z.B. 'HOST=ntp.pidsx.com'

Ausgang

bError (BOOL)

Wird auf TRUE gesetzt, wenn der Vorgang abnormal endet und der Befehl nicht ausgeführt wird, z.B. wenn sys_bIsEthernetInitializing TRUE ist ist

Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.

Anmerkungen

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

  • Die NTP-Serveradresse wird in dem CPU-Modul (eingebautes ET-LAN) gemäß sNTPServer eingestellt.

  • Die bereits in den Systemregistern eingestellten Daten (Ethernet > Zeitsynchronisation) sind ungültig, und der Auftrag zur NTP-Zeitsynchronisation wird zu dem Zeitpunkt ausgeführt, der durch diesen Befehl angegeben ist.

  • In den folgenden Fällen kehrt die SPS zu den Einstellungen aus den Systemregistern zurück:

    • Der Strom wird ausgeschaltet.

    • Sie schalten vom PROG-Modus in den RUN-Modus um.

    • Sie wechseln zu einem anderen Projekt.

  • Die Einstellungsdaten gehen nicht verloren, selbst wenn der Befehl FP_IPV4_SET_ADDRESS ausgeführt wird.

  • Bevor Sie den Befehl ausführen, stellen Sie sicher, dass sys_bIsEthernetInitializing FALSE ist. sys_bIsEthernetInitializing wird auf TRUE gesetzt, wenn der Befehl ausgeführt wird. Wenn Sie den Befehl ausführen, während sys_bIsEthernetInitializing TRUE ist, tritt ein Fehler auf.

  • Wenn dieser Befehl erfolgreich ausgeführt wurde, werden die Systemvariablen sys_bIsCarry und sys_iEthernetConnectionErrorCode zurückgesetzt.

  • Wenn der Befehl nicht erfolgreich ausgeführt wurde, prüfen Sie den Code des Ausführungsergebnisses am Ausgang nResult des Befehls FP_NTP_SYNCHRONIZE.

  • Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

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

  • wenn das System gerade dabei ist, die Zeit mit dem NTP-Server zu synchronisieren.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

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

  • wenn das System gerade dabei ist, die Zeit mit dem NTP-Server zu synchronisieren.

sys_bIsCarry (wird für einen Zyklus auf TRUE gesetzt)

wenn der Befehl während der Initialisierung des Ethernets ausgeführt wird, wird sys_iEthernetConnectionErrorCode auf "11: Ethernet wird initialisiert“ gesetzt.

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
		sNTPServer: STRING[32]:='IPv4=192.168.2.1';
		bIsError: BOOL:=FALSE;
		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,14,1,16,3,);
B(B_F,FP_NTP_SET_SERVER!,,22,0,33,4,,?DEN?DsNTPServer?AENO?AbError);
B(B_VARIN,,sNTPServer,20,2,22,4,);
B(B_VAROUT,,bIsError,33,2,35,4,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,14,2);
L(16,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_SET_SERVER(sNTPServer := sNTPServer,
    bError => bIsError);
end_if;

Letzte Änderung: 2024-03-08Feedback zu dieser SeitePanasonic Hotline