FP_NTP_SYNCHRONIZE

Richiesta sincronizzazione data e ora da server NTP

Questa istruzione FP invia una richiesta al server NTP per sincronizzare la data e l'ora.

Parametri

Ingresso

nNumberOfRetries (WORD, INT, UINT)

Numero di tentativi di richiesta di sincronizzazione data e ora

Valori: 0–20

nRetryInterval (WORD, INT, UINT)

Intervallo di sincronizzazione data e ora

Valori: 16–600

Uscita

nResult (WORD, INT, UINT)

Codice del risultato di esecuzione

16#FFFF

In corso

16#0

Completamento normale

16#10

Errore doppio avvio

L'istruzione che richiede la sincronizzazione data e ora è in esecuzione.

NOTA

L'errore doppio avvio non avviene se l'istruzione viene eseguita con il numero di tentativi impostato su 0 per cancellare l'istruzione della richiesta di sincronizzazione data e ora.

16#11

Errore di impostazione indirizzo server SNTP

Impostazione ET-LAN, impostazione indirizzo server SNTP = "0.0.0.0"

16#12

Errore di disconnessione

Ethernet disconnesso.

16#13

Errore di inizializzazione Ethernet attivo

Nessun indirizzo IP è stato assegnato all'unità Ethernet che invia la richiesta. (sys_bIsEthernetIPAddressAssigned è FALSE)

16#14

Errore di impostazione numero di tentativi

Il numero dei tentativi specificato è fuori intervallo.

16#15

Errore di impostazione intervallo tentativi

L'intervallo di tentativi specificato è al di fuori dell'intervallo.

16#20

Errore timeout di risposta

Il tempo di risposta dell'elaborazione della richiesta di sincronizzazione data e ora supera il tempo predefinito.

NOTA

Questo errore si verifica anche quando un indirizzo IP NTP non è risolto.

16#30

Timeout di risposta task Ethernet

Questo errore si verifica quando il task Ethernet non restituisce una risposta.

Note

  • Questa istruzione non è disponibile nei programmi di interrupt.

  • Se è possibile prevedere un timeout di sincronizzazione data e ora, impostare nNumberOfRetries su un valore superiore.

  • Per cancellare altri tentativi di sincronizzazione data e ora, impostare nNumberOfRetries su 0. In questo caso, il codice del risultato di esecuzione non è memorizzato in nResult.

  • Il periodo di timeout per un tentativo di sincronizzazione data e ora è fissato a 3 secondi.

  • Quando vengono specificati tentativi di sincronizzazione data e ora multipli, viene avviata una nuova richiesta una volta trascorso il periodo di timeout (3 secondi), più l'intervallo di elaborazione (specificato da nRetryInterval).

  • Il periodo di timeout totale (secondi) per la sincronizzazione data e ora si ottiene con la seguente formula: nRetryInterval x 3 + (nRetryInterval x (nNumberOfRetries-1)). (Qui nNumberOfRetries è più grande di 0.)

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se l'istruzione viene eseguita in un programma di interrupt

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se l'istruzione viene eseguita in un programma di interrupt

Example

POU header

All input and output variables used for programming this function have been declared in the POU header.The same POU header is used for all programming languages.

	VAR
		bRequestSynchronization: BOOL:=FALSE;
		iNumberOfRetries: INT:=3;
		iRetryInterval: INT:=20;
		wResult: WORD:=0;
		bEnable: BOOL:=FALSE;
			END_VAR

LD body

When the system variable sys_bIsEthernetInitializing is FALSE and the variable bEnable is set to TRUE, the function is carried out.

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,15,1,17,3,);
B(B_F,FP_NTP_SYNCHRONIZE!,,22,0,35,5,,?DEN?DnNumberOfRetries?DnRetryInterval?AENO?AnResult);
B(B_VARIN,,iNumberOfRetries,20,2,22,4,);
B(B_VAROUT,,wResult,35,2,37,4,);
B(B_VARIN,,iRetryInterval,20,3,22,5,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,15,2);
L(17,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

ST body

if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
    FP_NTP_SYNCHRONIZE(nNumberOfRetries := iNumberOfRetries,
    nRetryInterval := iRetryInterval,
    nResult => wResult);
end_if;

L'ultima revisione: 2024-03-08Feedback su questa paginaPanasonic hotline