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