Vai al contenuto

SNTPServer, istanzia un server SNTP

Vai all indice del manuale di programmazione
Tipo: Blocco Funzione
Libreria LogicLab: eLLabNetworkLib
Libreria Codesys: Non disponibile

Questo blocco funzione da eseguire in task Back, gestisce un server SNTP (Simple Network Time Protocol). Il FB fornisce l’ora tramite il protocollo SNTP che è utilizzato per sincronizzare gli orologi dei computer su una rete.

Descrizione

Enable (BOOL) Abilitazione FB, attivandolo viene gestito il server.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento della FB.
Port (UINT) Porta UDP da cui sono accettate le richieste SNMP, default 123.
UTCTime (LDATE_AND_TIME) Tempo di riferimento UTC inviato al client.
Fault (BOOL) Attivo per un loop se errore esecuzione.
Requests (UDINT) Numero di richieste ricevute.

Immagine FB SNTPServer

Trigger di spy

Se SpyOn attivo è possibile utilizzare utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Livelli di trigger
TriggerDescrizione
16#00000001Rx: Ricezione richiesta da client.
16#00000002Tx: Trasmissione risposta al client.
16#10000000Lg: Messaggio di log.
16#40000000Er: Errore esecuzione.

Esempi

Come utilizzare gli esempi.

T_SNTPRequest: Invia ogni 30 secondi una richiesta al server NTP 0.pool.ntp.org e se risposta corretta viene eseguito l’aggiornamento del real time clock

LogicLab (Ptp116, ST_SNTPServer)
PROGRAM ST_SNTPServer
VAR
    NTPSvr : SNTPServer; (* SNTP server *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SNTPServer"
// *****************************************************************************
// Instantiates a SNTP server.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // INITIALIZATION
    // -------------------------------------------------------------------------
    // Program initializations.

    IF (SysFirstLoop) THEN
        NTPSvr.SpyOn:=TRUE; //Spy On
        NTPSvr.Port:=123;
    END_IF;

    // -------------------------------------------------------------------------
    // NTP SERVER INSTANCE
    // -------------------------------------------------------------------------
    // Execute the SNTP server.

    NTPSvr.UTCTime:=TO_LDATE_AND_TIME(SysDateGetNs()); //UTC reference time (nS)
    NTPSvr(Enable:=TRUE); //SNTP server

// [End of file]]

Was this article helpful?