Passa al contenuto principale

SNTPServer, istanzia un server SNTP

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​

Immagine FB SNTPServer

ParametroTipoDescrizione
EnableBOOLAbilitazione FB, attivandolo viene gestito il server.
SpyOnBOOLSe attivo permette di spiare il funzionamento della FB.
PortUINTPorta UDP da cui sono accettate le richieste SNMP, default 123.
UTCTimeLDATE_AND_TIMETempo di riferimento UTC inviato al client.
FaultBOOLAttivo per un loop se errore esecuzione.
RequestsUDINTNumero di richieste ricevute.

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]]