Tipo: |
Bloque de funciones |
Disponible desde: |
V1.0.7.0 |
El bloque de funciones FB_SntpClient proporciona las funciones de cliente SNTP.
El bloque de funciones FB_SntpClient es la interfaz de usuario para las comunicaciones SNTP.
El bloque de funciones debe estar habilitado y listo para realizar una petición. Cuando se inicia la ejecución de una petición, se utiliza la información de las entradas para generar un telegrama SNTP que contenga la solicitud de hora. El telegrama se envía a un único servidor mediante UDP.
El bloque de funciones espera la respuesta del servidor, la procesa y presenta la información recibida en la salida q_stTimeResponse. Mientras el bloque de funciones sea capaz de ejecutar una petición, la salida q_xBusy estará configurada en TRUE y q_etResult presentará el estado de la operación. La salida q_xDone indica una ejecución correcta y q_xError muestra si el bloque de funciones ha detectado un error durante la ejecución con q_etResult; q_sResultMsg muestra más información acerca de la naturaleza o la causa del error detectado. Si se detecta un error, es necesario reiniciar el bloque de funciones. Para ello, deshabilítelo y habilítelo de nuevo.
Según la entrada i_xSyncRtc, los valores calculados se utilizan para establecer el RTC del controlador en el valor que se ha recibido del servidor (incluido el desplazamiento definido con la entrada i_diTimeZone). En la sincronización UTC se puede alcanzar una precisión máxima de 1 s.
NOTA: El bloque de funciones no tiene en cuenta el horario de verano. Tome las medidas pertinentes en la aplicación. Consulte también el documento RTC Control / Timezone / Daylight Saving Time Example Guide.
La entrada i_uiMaxRtcOffset se puede utilizar como una prueba de verosimilitud para comprobar los resultados del servidor antes de que se establezca el RTC del controlador.
NOTA: El ajuste de RTC del controlador genera entradas en el archivo de registro del controlador. Por lo tanto, para ajustes automáticos, no utilice esta función más de una vez al día.
Entrada |
Tipo de datos |
Descripción |
---|---|---|
i_xEnable |
BOOL |
Activación e inicialización del bloque de funciones. |
i_xExecute |
BOOL |
La petición especificada con la entrada iq_stTimeRequest se ejecuta tras el flanco ascendente de esta entrada. |
i_xSyncRtc |
BOOL |
Si esta entrada está establecida en TRUE, el RTC del controlador se establece automáticamente tras recibir una respuesta del servidor de hora (S)NTP. Valor predeterminado: FALSE NOTA: El ajuste de RTC del controlador genera entradas en el archivo de registro del controlador. Por lo tanto, para ajustes automáticos, no utilice esta función más de una vez al día. |
i_diTimeZone |
DINT |
Desplazamiento que se añade a la marca de tiempo recibida del servidor de hora (S)NTP en segundos. Valor predeterminado: 0 Rango de valores: de -86400 a +86400 (24 h x 60 min x 60 s) |
i_uiMaxRtcOffset |
UINT |
Diferencia máxima permitida entre el valor actual y el valor nuevo de RTC si i_xSyncRtc es TRUE. Se puede usar como una prueba de verosimilitud para evitar que se establezca el RTC de forma accidental. Por ejemplo, si el RTC se sincroniza una vez con un servidor de hora, cualquier sincronización posterior (desplazamientos) estará en un rango de ±30 s. Valor predeterminado: 0 (la función está inactiva). Valor máximo: 7200 s (2 horas) |
i_stTimeRequest |
Estructura que contiene los datos de entrada del usuario requeridos sobre el servidor de hora (S)NTP. |
Salida |
Tipo de datos |
Descripción |
---|---|---|
q_xActive |
BOOL |
Si el bloque de funciones está activo, esta salida se establece en TRUE. |
q_xReady |
BOOL |
Indica TRUE si el bloque de funciones está listo para recibir entradas de usuario. |
q_xBusy |
BOOL |
Si esta salida está establecida en TRUE, el bloque de funciones está procesando. |
q_xDone |
BOOL |
Si esta salida es TRUE, el bloque de funciones ha completado correctamente el comando solicitado. Es posible obtener datos adicionales de iq_stTimeRequest. |
q_stTimeResponse |
Estructura que contiene la marca de tiempo sincronizada (incluido el desplazamiento i_diTimeZone), el desplazamiento de reloj entre el RTC local del controlador y el servidor de hora (S)NTP y el retardo de ida y vuelta. |
|
q_Error |
BOOL |
Si esta salida se establece en TRUE, se ha detectado un error. Para obtener información detallada, consulte q_etResult y q_etResultMsg. |
q_etResult |
Proporciona información de diagnóstico y estado en forma de valor numérico. |
|
q_sResultMsg |
STRING[255] |
Proporciona información adicional de diagnóstico y estado en forma de mensaje de texto. |