Fecha y hora en Step 7

Controlar la fecha y hora es un tema casi recurrente en la programación en general: bases de datos, hojas de cálculo, páginas web… y cómo no, PLC de Siemens.

Fecha y hora en Step 7

En esta entrada, he querido poner fecha y hora en Step 7 y no en TIA portal, porque quiero que veas, cómo ha mejorado este tema con la nueva versión de Siemens. Quiero enseñarte ambas formas de acceder a la lectura del reloj del PLC.

Y es que ha cambiado tanto la forma en la que se accede al reloj, que merece la pena echarle un vistazo en cómo deberías hacerlo. La verdad

Acceso al reloj del PLC en Step 7

 En step 7 tradicional, para acceder al reloj, y poder manejar su información tenemos que realizar dos pasos:

  • Leer el reloj del PLC y volcarlo a una variable tipo DATE_AND_TIME
  • Desgranar esta iformación para acceder al año, mes, día, hora etc…

Es decir, vamos a usar en primer lugar el SFC1 “Read Clock” para recuperar la fecha y hora en una variable local DATE_AND_TIME llamada en este caso #FechaYHora:

Fecha y hora en Step 7

Por tanto, la variable #FechaYHora contendrá toda la información respecto a la fecha de calendario y hora actual que tiene el reloj del PLC de Siemens.

Ahora bien ¿cómo podemos acceder a esa información para obtener cada dato (mes, día, minutos…) por separado?

La información está dentro de la propia variable con la siguiente estructura de datos:

Fecha y hora en Step 7 - 2

Los bytes 0 a 7 harán referencia a cada dato parcial de la fecha y hora, así, y teniendo en cuenta que hemos volcado la información en una variable local, deberemos leer cada byte por separado para obtener el año, mes, día etc.

Tenemos en cuenta la forma en la que hemos declarado las variables:

Fecha y hora en Step 7 - 5

Además, ojo, porque la información viene representada en formato BCD, por lo que si queremos obtener esta información en decimal, deberemos realizar una conversión a este nuevo formato:

Fecha y hora en Step 7 - 3

Así iremos haciendo con todos los valores en función del dato que queramos obtener.

Solo hay un dato que es un poco más complejo de obtener, que es el día de la semana.

Como puedes ver, en el último byte tenemos 4bits dedicados a parte de los milisegundos, y 4 bits (los más bajos), para leer el día de la semana.

Para solucionar este punto, lo que haremos será una máscara para obtener esta información:

Fecha y hora en Step 7 - 4

La idea es quedarnos con el contenido de los 4 bits más bajos (menos significativos) del contenido del último byte, y transformarlo en un entero que nos dará de 1 a 7, el día de la semana siendo 1, el domingo.

Como ves, es bastante laboriosa la forma de obtener los diferentes valores del reloj en Step 7 si lo comparamos con TIA Portal, como vamos a ver a continuación.

Acceso al reloj del PLC en TIA Portal

Una de los avances en TIA Portal es el tratamiento del reloj del sistema. Al margen de poder acceder a la hora de sistema o a la hora local (por si tuviera que usar ambas), la gestión de la información es mucho más sencilla.

Así, ahora tenemos un tipo de datos el DTL, el cual tiene incluida toda la información ya desgranada:Fecha y hora en Step 7 -6

Como ves, puedes una vez leído el reloj del PLC, acceder de forma parcial a cualquiera de los datos de una forma inmediata.

Fecha y hora en Step 7 -7

A modo de simple ejemplo vemos como, una vez leída la hora, podemos acceder a la hora y cargarlo a una segunda variable de forma extremadamente sencilla.

Ni que decir tiene, que puedes usar cualquiera de los datos integrados como te interese en cada caso.

¿Qué te ha parecido la fecha y hora en Step 7?

Has podido comprobar la facilidad con la que se accede ahora a los datos en TIA Portal cuando hace referencia a la hora.

¿Sabías que era así?

Acerca de Iñigo Gútiez

Ingeniero industrial por la Escuela de Ingenieros Superiores de Bilbao. Trabajo como ingeniero de proyectos y automatización en Guardian Industries

Te puede interesar

Entrevista a Juan Carlos Martín (REEA)

En esta ocasión traigo al blog algo muy especial. Más bien a alguien especial. La …