FP_NTP_SET_SYNCHRONIZE_TIME

Synchronisationszeit für NTP-Server einstellen

Mit diesem FP-Befehl wird die Zeit für eine automatische Zeitsynchronisation mit dem NTP-Server eingestellt.

Parameter

Eingang

sSynchronizeTime (STRING)

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:

    1. Keine tägliche Synchronisation 'DAY=DISABLE'

    2. 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:

    1. Keine wöchentliche Synchronisation 'WEEK=DISABLE'

    2. 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:

    1. Keine monatliche Synchronisation 'MONTH=DISABLE'

    2. An jedem 15. Tag des Monats um 15:30: 'MONTH=150330'

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

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

Anmerkungen

  • 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 (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 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
		sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
		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,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

ST-Rumpf

if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
    FP_NTP_SET_SYNCHRONIZE_TIME(sSynchronizeTime := sSynchronizeTime,
    bError => bIsError);
end_if;

Letzte Änderung: 2024-11-13Feedback zu dieser SeitePanasonic Hotline