Synchronisationszeit für NTP-Server einstellen
Mit diesem FP-Befehl wird die Zeit für eine automatische Zeitsynchronisation mit dem NTP-Server eingestellt.
Eingang
Gibt die Zeit für eine automatische Zeitsynchronisation mit dem NTP-Server an.
Stellen Sie die Zeit mit einem oder mehreren der folgenden Schlüsselworteinstellungen ein:
Tägliche Synchronisation (optionaler Parameter)
Schlüsselwort: DAY
Syntax: 'DAY=xxx'
Werte: DISABLE, HHMM
HH=Stunden (0–23), MM=Minuten (0–59)
Beispiele:
Keine tägliche Synchronisation 'DAY=DISABLE'
Täglich um 13:30: 'DAY=1330'
Wöchentliche Synchronisation (optionaler Parameter)
Schlüsselwort: WEEK
Syntax: 'WEEK=xxxxx'
Werte: DISABLE, WHHMM
W=Wochentag (0=Sonntag, 1=Montag, 2=Dienstag, 3=Mittwoch, 4=Donnerstag, 5=Freitag, 6=Samstag), HH=Stunden (0–23), MM=Minuten (0–59)
Beispiele:
Keine wöchentliche Synchronisation 'WEEK=DISABLE'
Jeden Sonntag um 23:59: 'WEEK=02359'
Monatliche Synchronisation (optionaler Parameter)
Schlüsselwort: MONTH
Syntax: 'MONTH,xxxxxx'
Werte: DISABLE, DDHHMM
DD=Tag (0–28), HH=Stunden (0–23), MM=Minuten (0–59)
Beispiele:
Keine monatliche Synchronisation 'MONTH=DISABLE'
An jedem 15. Tag des Monats um 15:30: 'MONTH=150330'
Ausgang
Wird auf TRUE gesetzt, wenn der Vorgang abnormal endet und der Befehl nicht ausgeführt wird, z.B. wenn sys_bIsEthernetInitializing TRUE ist
Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.
Dieser Befehl ist in Interrupt-Programmen nicht verfügbar.
Reihenfolge der Schlüsselwörter nicht verändern. Geben Sie die Schlüsselwörter und ihre Einstellparameter in der Reihenfolge an, in der sie hier aufgeführt sind.
Ein Teil der Parametersyntax kann fehlen. Die Einstellungen werden nicht geändert, wenn Parameter teilweise fehlen.
Wenn der Teil vor einem angegebenen Schlüsselwort fehlt, darf nur das Schlüsselwort, aber nicht das Komma "," fehlen, das die Schlüsselwörter trennt: ',,MONTH=150300'
.
Wenn der Teil nach einem angegebenen Schlüsselwort fehlt, dürfen das Komma "," und das Schlüsselwort fehlen: 'DAY=1130,WEEK=DISABLE'
.
Geben Sie das Schlüsselwort nicht mehr als einmal an. Wenn dasselbe Schlüsselwort mehr als einmal angegeben ist, tritt ein Fehler auf.
Der Zeitpunkt des Zeitsynchronisationsauftrags an den NTP-Server wird gemäß sSynchronizeTime 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 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
sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
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,2,8,4,N);
B(B_CONTACT,,bEnable,14,2,16,4,);
B(B_F,FP_NTP_SET_SYNCHRONIZE_TIME!,,22,1,38,5,,?DEN?DsSynchronizeTime?AENO?AbError);
B(B_VARIN,,sSynchronizeTime,20,3,22,5,);
B(B_VAROUT,,bIsError,38,3,40,5,);
L(1,0,1,5);
L(1,3,6,3);
L(8,3,14,3);
L(16,3,22,3);
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_SYNCHRONIZE_TIME(sSynchronizeTime := sSynchronizeTime,
bError => bIsError);
end_if;