FP_NTP_SET_SYNCHRONIZE_TIME

Définir l’heure de synchronisation pour le serveur NTP

Cette instruction FP définit l’heure à laquelle la synchronisation de l’heure avec le serveur NTP doit être exécutée automatiquement.

Paramètres

Entrée

sSynchronizeTime (STRING)

Indique l’heure à laquelle la synchronisation de l’heure avec le serveur NTP doit être exécutée automatiquement.

L’heure est définie avec le ou les mots-clés suivants :

  • Synchronisation quotidienne (paramètre optionnel)

    Mot-clé : DAY

    Syntaxe : 'DAY=xxx'

    Valeurs : DISABLE, HHMM

    HH=heures (0–23), MM=minutes (0–59)

    Exemples :

    1. Pas de synchronisation quotidienne : 'DAY=DISABLE'

    2. Quotidienne à 13h30 : 'DAY=1330'

  • Synchronisation hebdomadaire (paramètre optionnel)

    Mot-clé : WEEK

    Syntaxe : 'WEEK=xxxxx'

    Valeurs : DISABLE, WHHMM

    W=jour de la semaine (0=Dimanche, 1=Lundi, 2=Mardi, 3=Mercredi, 4=Jeudi, 5=Vendredi, 6=Samedi), HH=heures (0–23), MM=minutes (0–59)

    Exemples :

    1. Pas de synchronisation hebdomadaire 'WEEK=DISABLE'

    2. Tous les dimanches à 23h59 : 'WEEK=02359'

  • Synchronisation mensuelle (paramètre optionnel)

    Mot-clé : MONTH

    Syntaxe : 'MONTH,xxxxxx'

    Valeurs : DISABLE, DDHHMM

    DD=jour (0–28), HH=heures (0–23), MM=minutes (0–59)

    Exemples :

    1. Pas de synchronisation mensuelle : 'MONTH=DISABLE'

    2. Tous les 15 du mois à 15h30 : 'MONTH=150330'

Sortie

bError (BOOL)

Définie sur TRUE lorsque l’opération se termine anormalement sans exécution, par ex. lorsque sys_bIsEthernetInitializing est TRUE

Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.

Remarques

  • Cette instruction n’est pas disponible dans les programmes d’interruption.

  • L’ordre des mots-clés ne doit pas être modifié. Spécifiez les mots-clés et leurs paramètres dans l’ordre indiqué ici.

  • Une partie de la syntaxe des paramètres peut être omise. Lorsqu’ils sont omis partiellement, les paramètres restent inchangés.

  • Lorsque la partie avant un mot-clé spécifié est omise, seul le mot-clé peut être omis mais pas la virgule "," séparant les mots-clés : ',,MONTH=150300'.

  • Lorsque la partie après un mot-clé spécifié est omise, le mot-clé et la virgule "," doivent être omis : 'DAY=1130,WEEK=DISABLE'.

  • N’indiquez pas le même mot-clé plus d’une fois. Si le même mot-clé apparaît plusieurs fois, une erreur apparaît.

  • L’heure de la requête de synchronisation de l’heure pour le serveur NTP est définie par sSynchronizeTime.

  • Les données qui sont déjà définies dans les registres système (Ethernet > Synchronisation de l’heure) sont invalides et la requête de synchronisation de l'heure NTP est exécutée à l’heure spécifée par cette instruction.

  • L’automate retourne aux paramètres des registres système dans les cas suivants :

    • L’automate est mis hors tension.

    • L’automate bascule du Mode PROG au Mode RUN.

    • Vous changez de projet.

  • Les paramètres ne sont pas perdus même lorsque l’instruction FP_IPV4_SET_ADDRESS est exécutée.

  • Avant d’exécuter l’instruction, vérifiez que sys_bIsEthernetInitializing est FALSE. sys_bIsEthernetInitializing passe à TRUE lorsque l’instruction est exécutée. Lorsque l’instruction est exécutée alors que sys_bIsEthernetInitializing est TRUE, une erreur apparaît.

  • Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.

  • Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

  • Si la synchronisation de l’heure à partir du serveur NTP est en cours.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

  • Si l’instruction est exécutée dans un programme d’interruption.

  • Si la synchronisation de l’heure à partir du serveur NTP est en cours.

sys_bIsCarry (passe à TRUE pendant un cycle)

Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR
		sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
		bIsError: BOOL:=FALSE;
		bEnable: BOOL:=FALSE;
			END_VAR

Corps en LD

Lorsque la variable système sys_bIsEthernetInitializing est FALSE et la variable bEnable TRUE, la fonction est exécutée.

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

Corps en ST

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

Modifié le : 2024-11-13Commentaires sur cette pageAssistance téléphonique