Instrucciones de TIA Portal

Fecha y Hora
Lógica Temporal

Domine el reloj de su PLC. Desde el sellado de tiempo preciso de eventos hasta cálculos de tiempo complejos y conversiones de formato, controle cada milisegundo.

¿Por qué gestionar el tiempo en un PLC?

La gestión del tiempo es crucial para la automatización industrial. Permite el registro preciso de eventos de producción, la activación de tareas de mantenimiento programadas, el cálculo de los tiempos de ciclo de las máquinas y la sincronización de sistemas distribuidos a través de protocolos NTP.

Los PLC Siemens modernos ofrecen tipos de datos avanzados como DTL (Date and Time Long), que proporciona acceso directo a los componentes individuales (Año, Mes, Día, Hora) sin manipulación de bits compleja, simplificando enormemente la programación en comparación con los formatos DT heredados.

Lectura de Tiempo

Acceso a los relojes del sistema y local

T_CONV — Extracción de Tiempo del Sistema

T_CONV

Qué hace

Extrae componentes específicos de un valor de fecha/hora o convierte entre formatos. Es esencial para obtener horas/minutos legibles a partir de un sello de tiempo bruto.

Cuándo usarlo

Cuando necesite mostrar solo la hora en un HMI a partir de una etiqueta Date_And_Time completa.

Consejos Pro

Use T_CONV para convertir un TOD (Time_Of_Day) a un String para facilitar el registro.

Asegúrese de que los tipos de entrada y salida sean compatibles para evitar errores de desbordamiento.

En SCL, esta instrucción a menudo se maneja implícitamente mediante asignaciones simples.

RD_SYS_T — Leer Tiempo del Sistema

RD_SYS_T

Qué hace

Lee la hora actual del sistema de la CPU (UTC). A diferencia de RD_LOC_T, no incluye el horario de verano ni los desplazamientos de zona horaria.

Cuándo usarlo

Ideal para el registro interno donde se requiere una referencia de tiempo continua y sin saltos (evita problemas durante los cambios de horario de verano).

Consejos Pro

Use siempre UTC para el almacenamiento en bases de datos para garantizar la consistencia global.

La salida RET_VAL proporciona información de estado (por ejemplo, si el reloj está sincronizado).

Combine con RD_LOC_T si necesita mostrar tanto el tiempo 'Técnico' como el 'Humano'.

Aritmética

Cálculos sobre duraciones y sellos de tiempo

T_ADD — Sumar Tiempo

T_ADD

Qué hace

Suma una duración (Time o LTime) a un punto específico de fecha/hora. Maneja correctamente los desbordamientos de minutos, horas y días.

Cuándo usarlo

Cálculo de un tiempo de expiración o un punto de reinicio programado (por ejemplo, hora actual + 24 horas).

Consejos Pro

Muy útil para implementar watchdogs personalizados con duraciones dinámicas.

Use tipos LTime para precisión de nanosegundos en CPU S7-1500.

Si el resultado excede la fecha máxima (Año 2262), la CPU establece un estado de error.

T_DIFF — Diferencia de Tiempo

T_DIFF

Qué hace

Calcula la diferencia entre dos sellos de tiempo y devuelve el resultado como una duración (Time o LTime).

Cuándo usarlo

Medición de la duración exacta de un paso de proceso o cálculo del tiempo de actividad de una máquina.

Consejos Pro

Perfecto para cálculos de OEE (Efectividad Global del Equipo).

Restar una fecha mayor a una menor devuelve un valor de Time negativo.

En S7-1200/1500, use etiquetas DTL para acceder más fácilmente a los componentes de la diferencia.

Conversión

Cambios de formato y manejo de String

T_CONV — Conversión de DT a DTL

T_CONV

Qué hace

Convierte el formato heredado DATE_AND_TIME (8 bytes) al formato moderno DTL o viceversa.

Cuándo usarlo

Al conectar código heredado o bloques de comunicación con la nueva lógica optimizada de S7-1500.

Consejos Pro

Prefiera DTL para todos los proyectos nuevos para evitar la complejidad de BCD (Decimal Codificado en Binario).

La conversión a DTL le permite escribir 'MiTag.MONTH' directamente en su código.

Tenga cuidado con la precisión de milisegundos, que podría truncarse en algunos formatos.

DT_TO_STRING — Serialización de Tiempo

DT_TO_STR

Qué hace

Convierte un valor de fecha/hora en un formato String legible. STRING_TO_DT realiza la inversa.

Cuándo usarlo

Envío de sellos de tiempo a un archivo CSV en una tarjeta de memoria o comunicación con una web API.

Consejos Pro

La cadena de salida sigue el formato ISO 8601 (YYYY-MM-DD-HH:MM:SS.ms).

Use STRING_TO_DT para analizar fechas recibidas de una base de datos SQL externa.

Tenga en cuenta que las operaciones de String consumen más recursos de la CPU; úselas con moderación en bucles rápidos.

DATE_AND_TIME vs DTL

Elegir la estructura temporal adecuada

CaracterísticaDATE_AND_TIME (Heredado)DTL (Moderno)
Tamaño8 Bytes12 Bytes
CodificaciónBCD (Complejo de leer)Enteros (Directamente legibles)
Acceso a ComponentesRequiere enmascaramiento de bitsEstructural (Tag.Month)
Rango1990 a 20891970 a 2262
Soporte S7-1200/1500Solo compatibilidadNativo y Recomendado
Precisión10 ms1 Nanosegundo

Preguntas Frecuentes

¿Cuál es la diferencia entre el Tiempo del Sistema y el Tiempo Local?

El Tiempo del Sistema (RD_SYS_T) es siempre UTC, lo que proporciona una referencia estable. El Tiempo Local (RD_LOC_T) se ajusta según su zona horaria específica y las reglas del horario de verano (DST) configuradas en las propiedades de la CPU.

¿Cómo sincronizar el reloj del PLC con un servidor?

Habilite NTP (Network Time Protocol) en la Configuración de Hardware de la CPU. Proporcione la IP de su servidor de tiempo y el PLC ajustará automáticamente su reloj interno.

¿Por qué mi DATE_AND_TIME muestra valores extraños en Hex?

El DT heredado utiliza codificación BCD. Un valor de 25 en Decimal se almacena como 16#25 en BCD. Utilice siempre instrucciones de conversión o DTL para leer los valores correctamente.

¿Puedo calcular la diferencia entre dos etiquetas DTL directamente?

En SCL, simplemente puede usar el operador '-' entre dos etiquetas DTL. TIA Portal llamará automáticamente a la instrucción T_DIFF por usted.

Automatice su Gestión del Tiempo

¿Necesita generar informes de producción con sellos de tiempo precisos o sincronizar 50 PLC? T-IA Connect automatiza la generación de lógica temporal.