El tiempo en TIA Portal: Diferencias entre RD_SYS_T, RD_LOC_T y TIME_TCK

¿Te ha pasado alguna vez que registras una alarma en tu SCADA o HMI y la marca de tiempo difiere en 1 o 2 horas de la hora real? ¿O que intentas medir el tiempo de ciclo de una estación y el reloj del PLC te da un salto extraño al cambiar la hora en primavera o invierno?
En los autómatas Siemens S7-1200 y S7-1500 (programados en TIA Portal), la gestión del tiempo no se limita a un único reloj. El sistema maneja diferentes conceptos de tiempo según la aplicación: Hora del Módulo (UTC), Hora Local y Hora del Sistema.
En este artículo aprenderás a diferenciar las instrucciones RD_SYS_T, RD_LOC_T y TIME_TCK, dónde configurar la zona horaria correctamente y cómo evitar los típicos desajustes en puesta en marcha.
1. Configuración de la hora en TIA Portal: ¿Dónde se define?
Para entender cómo funcionan las instrucciones de lectura, primero debemos revisar la propiedad del hardware en TIA Portal. En las Propiedades de la CPU -> General -> Hora encontramos dos ajustes fundamentales:
- Zona horaria: Define la ubicación geográfica del autómata (por ejemplo, (UTC+01:00) Madrid, Paris, Rome...).
- Horario de verano: Activa el ajuste automático de cambio de hora (por ejemplo, en España, de UTC+1 en invierno a UTC+2 en verano).

Punto clave: La hora interna de la CPU (el reloj interno o System Time) siempre funciona en UTC (Tiempo Universal Coordinado). No le afecta la zona horaria ni el horario de verano.
2. Las 3 instrucciones clave para leer el tiempo en el PLC
Siemens pone a nuestra disposición tres instrucciones estándar en la paleta de Funciones de fecha y hora:
A. RD_SYS_T (Read System Time / Leer hora del módulo)
- ¿Qué lee?: La hora actual del reloj interno de la CPU expresada en UTC.
- Comportamiento: Ignora completamente la zona horaria y el horario de verano configurados en las propiedades del PLC.
- Tipos de datos de salida: DTL, Date_And_Time (DT) o LDT.
- Uso recomendado: Registro de eventos del sistema, marcas de tiempo para bases de datos o comunicación entre PLCs situados en distintas zonas de la fabrica.
B. RD_LOC_T (Read Local Time / Leer hora local)
- ¿Qué lee?: La hora local calculada aplicando el desplazamiento (offset) de zona horaria y horario de verano sobre la hora UTC.
- Comportamiento: Si estás en España en verano, RD_LOC_T sumará 2 horas a la hora UTC de la CPU. En la salida RET_VAL te indicará con un valor 1 si el horario de verano está activo.
- Tipos de datos de salida: DTL, Date_And_Time (DT) o LDT.
- Uso recomendado: Mostrar la fecha y hora actual en la pantalla HMI para los operadores o imprimir informes diarios a una hora local fija (ej. fin de turno a las 15:00 h).
C. TIME_TCK (Time Tick / Leer hora del sistema)
- ¿Qué lee?: Un contador de milisegundos de 32 bits que contabiliza el tiempo de funcionamiento de la CPU desde que pasa a estado RUN (de 0 a 2147483647 ms, aproximadamente 24.8 días, tras lo cual reinicia a 0).
- Comportamiento: No le afecta la fecha ni los cambios de hora UTC/Local. Solamente se detiene en STOP y se reinicia a 0 tras un arranque en caliente.
- Tipos de datos de salida: TIME.
- Uso recomendado: Medir tiempos de ciclo, calcular duraciones precisas entre dos eventos en la lógica de control sin riesgo de errores por cambios de horario de verano/invierno.
3. Resumen comparativo
| Instrucción | Tipo de Hora | ¿Afecta Zona Horaria / Verano? | Formato principal | Uso principal |
| RD_SYS_T | Hora de Módulo (UTC) | No | DTL / DT | Registros universales y logs |
| RD_LOC_T | Hora Local | Sí | DTL / DT | Visualización HMI e informes |
| TIME_TCK | Contador de ms (Tick) | No (Independiente) | TIME | Medición de intervalos internos |
4. ¿Por qué la hora en la pantalla HMI no coincide con la leída en el PLC?
Este caso puede se uno de los problemas más recurrente en la puesta en marcha de una instalación:
- Confusión de instrucción: Si en el PLC estás usando RD_SYS_T para enviar la hora a una variable del HMI, la pantalla mostrará 1 o 2 horas menos que la hora real del reloj de pared (dependiendo de si es invierno o verano en zona CET/CEST).
- Sincronización HMI-PLC: En proyectos donde la pantalla lee directamente el área de tiempo del PLC o sincroniza su propio reloj interno, hay que verificar si la pantalla está configurada como cliente de hora local o hora UTC.
- Falta de configuración de zona horaria en la CPU: Si en la CPU no se ha marcado la casilla "Activar horario de verano", la función RD_LOC_T entregará exactamente el mismo valor que RD_SYS_T.
Conclusión
Saber elegir entre RD_SYS_T, RD_LOC_T y TIME_TCK garantiza programas más sólidos, registros coherentes y elimina malentendidos en la puesta en marcha.
¿Te has encontrado alguna vez con este problema de desfase horaria en una puesta en marcha? ¿Cómo sueles gestionar la sincronización horaria con los HMIs en tus proyectos?
¡Déjanos tu experiencia en los comentarios y no olvides suscribirte al blog OneDoor para no perderte las próximas guías técnicas!
