FP_NTP_SET_SERVER

Définir une connexion au serveur NTP

Cette instruction FP définit un serveur NTP de destination vers lequel une requête de synchronisation de l'heure peut être envoyée.

Paramètres

Entrée

sNTPServer (STRING)

Adresse IP ou nom d’hôte (paramètre requis).

  • Adresse IP

    Pour une adresse IP, spécifiez le mot clé IPv4 ou IPv6 au début.

    Syntaxe pour IPv4 : par ex. 'IPv4=111.122.133.144'

    Syntaxe pour IPv6 : par ex. 'IPv6=1111:122:2:1555:0:0:1888'

  • Nom d’hôte

    Mot-clé : HOST

    Syntaxe : par ex. 'HOST=ntp.pidsx.com'

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’adresse du serveur NTP est définie dans l’unité centrale (ET-LAN intégré) selon sNTPServer.

  • 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.

  • Lorsque l’exécution de l’instruction a échoué, vérifiez le code résultat de l’exécution dans la sortie nResult de l’instruction FP_NTP_SYNCHRONIZE.

  • 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
		sNTPServer: STRING[32]:='IPv4=192.168.2.1';
		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,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

Corps en ST

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

Modifié le : 2024-03-08Commentaires sur cette pageAssistance téléphonique