SetRTCDrift: ajusta el reloj de tiempo real cada semana

Descripción de la función

Esta función suma o resta del Reloj de tiempo real (RTC) un número determinado de segundos, cada semana, en el día de la semana y la hora especificados (hora:minuto).

NOTA: La función SetRTCDrift debe programarse para ejecutarse sólo durante el primer ciclo Mast.

Representación gráfica

G-RU-0010362.2.gif-high.gif

 

 

Representación IL y ST

Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de funciones y de bloques de funciones.

Descripción de variables de E/S

En esta tabla se describen los parámetros de entrada:

Entradas

Tipo

Comentario

RtcDrift

SINT(–29...+29)

Corrección en segundos (-29 a +29)

Día

DAY_OF_WEEK

Día del cambio.

Hora

HOUR

Hora del cambio.

Minuto

MINUTE

Minuto del cambio.

 

NOTA: Si los valores introducidos para RTCDrift, Día, Hora, Minuto sobrepasan los valores límite, el firmware del Logic Controller definirá todos los valores en el máximo.

En esta tabla se describe la variable de salida:

Salida

Tipo

Comentario

SetRTCDrift

RTCSETDRIFT_ERROR

Devuelve RTC_OK (00 hex) si el comando es correcto; en caso contrario, devuelve el código ID del error detectado.

Ejemplo

En este ejemplo, la función solo se invoca una vez durante el primer ciclo de la tarea MAST y se añaden 20 segundos al RTC cada martes a las 5:45

VAR
   MyRTCDrift : SINT (-29...+29) := 0;
   MyDay : DAY_OF_WEEK;
   MyHour : HOUR;
   MyMinute : MINUTE;
END_VAR    

IF IsFirstMastCycle() THEN
   MyRTCDrift := 20;
   MyDay := TUESDAY;
   MyHour := 5;
   MyMinute := 45;
   SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);
END_IF