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.

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
Trigger | Descrizione |
---|---|
16#00000001 | Rx: Ricezione richiesta da client. |
16#00000002 | Tx: Trasmissione risposta al client. |
16#10000000 | Lg: Messaggio di log. |
16#40000000 | Er: Errore esecuzione. |
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]]