Início / Descargas / Siemens / Automatas / S7-1200 / RD_LOC_T para reloj ‘fecha y hora’ del autómata S7-1200

RD_LOC_T para reloj ‘fecha y hora’ del autómata S7-1200

  • Publicado: 17 Septiembre 2013
  • Automatas
  • Leído Visto: 15789 veces

Seguramente en muchas aplicaciones deseamos saber la hora o fecha en la que vivimos, o incluso las dos las dos. Como por ejemplo, para un control de hora, que en función de esta se active o desactive un proceso.

Una de las instrucciones o funciones de la que dispone la CPU 1200 para saber dichos parámetros es la siguiente: RD_LOC_T

La descripción que viene en el manual es la siguiente:

“RD_LOC_T (leer hora local) proporciona la hora local actual de la CPU como tipo de datos DTL. Este valor de tiempo refleja la zona horaria local ajustada correctamente según el cambio de horario de verano/invierno (si está configurado)”

Efectivamente, la hay que configurar pero no sólo llega con configurarlo por programa con el TIA PORTAL de manera inicial (te puedes encontrar con alguna sorpresa si no te aseguras comprobándolo mediante la opción “online”), sino que tal vez tengas que aplicar el ajuste después de introducir dichas instrucciones en el programa. Para dicho artículo no he considerado exponerlo, proponiendo al lector a averiguarlo.

 

Por otra parte, esta instrucción permite acceder de manera separada a los datos que maneja, lo observamos cuando definimos la variable como “DTL”:

 

Figura 2. Información detallada del bloque de datos DTL

 

Pasos a previos para la programación de la instrucción

Para poder trabajar con esta instrucción deberemos crear previamente un bloque de datos, a continuación explico los pasos para crearlo:

1. En “Árbol del proyecto” realizamos ‘doble click’ en “Agregar nuevo bloque de programa”.

 Figura 3. Agregar el bloque de datos

2. Se nos abre una ventana llamada “Agregar nuevo bloque”. En ella, elegiremos “Bloque de datos”, denominando de nombre ‘Bloque de datos_hora’. A continuación daremos a aceptar:

 

Figura 4. Ventana 'Agregar nuevo bloque'

Una vez creado el bloque de datos, deberemos definir en él el tipo de datos que se van a introducir, en este caso de tipo DTL, eligiendo además el nombre de la variable.

3. Situándonos en la “Barra de editores”, seleccionaremos “Bloque de datos_hora”. Se observa que cuando seleccionamos dicho bloque, éste se vuelve de un color más blanquecino. En este ejemplo, se sitúa al lado del ‘OB1’.

  

Figura 5. Barra de editores

4. Una vez seleccionado el bloque, en el área de trabajo definiremos el tipo de variable y daremos el nombre a la variable. En mi caso ‘fecha_hora’:

 

Figura 6. Definición del nombre y tipo de datos

En esta figura anterior observamos cómo tengo seleccionado ‘Remanencia’. En el caso de que algún proceso se vea afectado por un apagado de luz, dichos valores quedarán memorizados.

 

Trabajar con el bloque de datos DTL

Una vez creado el tipo de datos y bloque de datos,  podremos trabajar de manera independiente con cada elemento de dicho bloque. Si quisiéramos trabajar con el elemento hora o ‘HOUR’, por ejemplo, para una comparación de igualdad, deberemos realizar lo siguiente:

1. En la ‘Task Card’ seleccionamos ‘Instrucciones básicas’>’Comparadores’. 

2. Realizamos doble clic en la instrucción de ‘igual’.

3. Hacemos la comparación con un 5, como si fuese la hora 5. Y en el otro operando deberemos seleccionar el bloque de datos, hasta llegar al parámetro ‘HOUR’.

 

Figura 7. Instrucción de comparación y selección de datos

Quedando finalmente: 

 

Figura 8. Visualización final de la comparación del bloque de datos DTL independiente con HOUR

 

La instrucción ‘RD_LOC T’ y ‘T_CONV’

 

Creado el bloque de datos, podremos trabajar con los datos de manera independiente (como hemos visto en el punto anterior) o podremos separar la fecha y la hora mediante la instrucción ‘T_CONV’.

Para seleccionar la instrucción ‘RD_LOC_T’, deberemos ir a la ‘Task Card’ en ‘Instrucciones avanzadas’; seleccionando la carpeta “Fecha y hora” podremos seleccionar dicha instrucción además de ‘T_CONV’.

 

Figura 9. Task Card de Instrucciones avanzadas

Sólo nos queda operar con las instrucciones ‘RD_LOC_T’ y ‘T_CONV’. Para obtener la hora y la fecha de la CPU (en este caso trabajo para la 1211C) efectuaremos lo siguiente:

 

Figura 10. Selección del bloque

 

Una vez seleccionado el bloque de datos, los datos de la hora y fecha de la CPU serán guardados en dicho bloque pudiendo así poder trabajar con ellos.

Para poder seleccionar la fecha y la hora de manera independiente deberemos utilizar la función ‘T_CONV’. 

 

Figura 11. 'T_CONV' Selección del tipo de dato de entrada para la conversión

 

Figura 12. 'T_CONV' Selección del tipo de dato de la conversión de salida

Como variable de entrada será el bloque de datos, en donde se almacena la fecha y hora de la CPU, observando el tipo de datos que queremos en la salida, se definirán las variables donde serán guardadas.

 

 A continuación expongo la imagen de cómo queda:

 

Figura 13. Variables de salida de ‘fecha’ y ‘hora’

Como nota final, deberemos definir las variables “fecha” como Time_of_Day  y “hora” como Date para ello iremos a “Árbol del proyecto”, desplegando la pestaña ‘Variables PLC’ y clicando dos veces en “Mostrar todas las variables” visualizaremos en el ‘área de trabajo’ el conjunto de las variables que estamos utilizando en el proyecto.

 A continuación expongo la imagen para una mejor compresión:

 

Figura 14. Área de trabajo de las variables PLC