NTP-Server-Verbindung einstellen
Dieser FP-Befehl stellt einen NTP-Zielserver ein, an den ein Zeitsynchronisationsauftrag gesendet werden kann.
Eingang
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
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.
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 ( ) 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.
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.
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.
wenn der Befehl während der Initialisierung des Ethernets ausgeführt wird, wird sys_iEthernetConnectionErrorCode auf "11: Ethernet wird initialisiert“ gesetzt.
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
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
if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
FP_NTP_SET_SERVER(sNTPServer := sNTPServer,
bError => bIsError);
end_if;