• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

Programación Siemens

Cursos online de TIA Portal y PLC Siemens.

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq
Home | blog | Cómo crear una variable DTL en la serie 300 en TIA Portal

Cómo crear una variable DTL en la serie 300 en TIA Portal

Cómo crear una variable DTL en la serie 300 en TIA Portal

por Iñigo Gútiez · 12 comentarios

Si has trabajado en TIA Portal con la serie S7-1200 o S7-1500 habrás podido comprobar que trae nuevas mejoras que son realmente útiles a la hora de programar.

Una de ellas, es la descomposición del reloj del sistema, de tal forma que podemos tener las variables tipo DTL que son una estructura en la que puedes descomponerla en TuVariable.year o TuVariable.Minute, para obtener por ejemplo, el año y el minuto del reloj respectivamente.

 

Pero he aquí la sorpresa cuando a pesar de trabajar con TIA Portal, intentas hacer lo mismo con la serie 300 en TIA Portal.

¡Esta opción no existe!

Aprovechando una duda de uno de los alumnos del curso de Step 7 sobre los UDT, he realizado este ejemplo, que espero que aune la explicación de qué es un UDT y para qué lo podemos usar, con la utilidad de crear una variable estilo DTL para la serie 300.

Y es que teniendo unos conocimientos medianamente sólidos, puedes realizar muchas cosas que TIA Portal o Step 7 tradicional no traen out of the box, que dicen los anglosajones (que viene a ser algo así, como nada más sacarse de la caja,).

Bueno, pues sabiendo que no lo trae, pero que lo queremos conseguir… al lío.

Cómo crear una variable DTL en la serie 300 en TIA Portal

Un UDT (User Defined Type) no es mas que una estructura de datos definidos por el usuario, que una vez creados, pueden ser utilizados como variables simples o compuestas a lo largo del proyecto, tanto dentro de los bloques, como variables de entrada, salida etc en los interfaces de estos bloques.

Para nuestro caso, la idea es la siguiente:

  • Creamos un UDT que contenga todos los datos para crear tu DTL en la serie 300, desglosada según estas variables:
    • Año
    • Mes
    • Dia
    • Hora
    • Minuto
    • Segundo
    • Milisegundos
    • Dia de la semana
  • Creamos un bloque FC, cuya salida, apunta a una variable del tipo UDT que hemos creado donde vuelca la información del reloj
  • Creamos un DB y lo llamamos «Reloj» o algo similar, y dentro declaramos una variable llamada «Now», por ejemplo.
  • Realizamos la llamada a este FC y cuya salida la vuelque en «Reloj».Now

Así, podremos tener esta pequeña función, que la cargaremos en todos nuestros proyectos donde vayamos a usar la hora para algo, de tal forma que tendremos una variable que tiene la hora del sistema, con la misma pinta que tiene los DTL

El vídeo

Como siempre, te dejo con un vídeo donde verlo más detalladamente.

Fé de erratas:

En el vídeo digo que los UDT son User Data Type (Tipos de Datos de Usuario), y es incorrecto. Son User Defined Type (Tipos Definidos por el Usuario). Espero que me perdones este error al desplegar el acrónimo. He parcheado el vídeo para que aparezca correctamente.

Fé de erratas 2:

El ejercicio no es correcto usando el AR1 ya que al escribir en la salida sobre una estructura de un DB, el PLC usa el AR1 para poder leer/escribir. Por lo que para corregirlo usa el AR2.

¿Qué te ha parecido?

¡Espero tus comentarios!

Seguro que ya usas algo parecido, y espero que te sea de interés si no lo habías pensado.

Dejo en este caso, los proyectos del vídeo en dos sitios diferentes, al estar realizado tanto en TIA Portal (V13) como en Step 7 tradicional.

Quedan inscritos en el bloque 1 del curso de TIA Portal, y en el curso de Step 7 tradicional.

Recuerda que puedes apuntarte en Guorker.com donde por una cuota mensual, tendrás tarifa plana en todos los cursos disponibles en la plataforma.

 

 

Iñigo Gútiez
Iñigo Gútiez

Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí

Puedes seguirme en cualquiera de las siguientes redes sociales.

Publicado en: blog

Interacciones con los lectores

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    12 Comentarios

  1. alejandro rico dice

    6 septiembre, 2018 a las 22:16

    Cuando seleccionas un bloque, debes saber seleccionar también los tipos de variables para guardarlas en
    registros y a continuación usarlas para desplegar en un HMI o para el mismo programa en PLC, ya que en marcas o en bits…..
    Saludos…

    Responder
    • Iñigo Gútiez dice

      6 septiembre, 2018 a las 22:30

      Hola Alejandro, no entiendo muy bien que has querido decir.

      Responder
    • Leonardo dice

      5 octubre, 2020 a las 22:59

      Quisiera saber como programar el fc, ya que veo que el bloque tiene una salida o un retorno, quisiera saber tambien en que formato programo el segmento 3 del bloque fc, y si se puede hacer el kop, yo necesito leer el mes y el día para crear una contraseña que cambie diariamente pero no se como leer específicamente esos valores, vi si tutoríal pero no se como programo el fc para qiebeñ plc sepa cual es el año, mes, día, etc.. Me seria de mucha ayuda su respuesta

      Responder
      • Iñigo Gútiez dice

        5 octubre, 2020 a las 23:28

        En el ejemplo queda reflejado el proceso. A partir de ahí, si necesitas más ayuda tal vez deberías considerar fórmate en la programación.

        Responder
  2. David Sanchez dice

    6 septiembre, 2018 a las 23:48

    Super facil, gracias por la explicacion.

    Responder
  3. gerardo dice

    7 septiembre, 2018 a las 14:01

    se agradece la explicaciòn

    Responder
  4. JUAN CARLOS MENDOZA FERNANDEZ dice

    8 agosto, 2020 a las 0:00

    SE PUEDE SABER EL NUMERO DE SEMANA DEL AÑO CON ALGUN BLOQUE STANDAR EN TIA PORTAL V15

    Responder
    • Iñigo Gútiez dice

      8 agosto, 2020 a las 22:33

      Sí, con la LGF_GetCalendarWeek_ISO de la LGF que te puedes descargar de aquí, o bien, calcularla. https://support.industry.siemens.com/cs/document/109479728/library-of-general-functions-(lgf)-for-simatic-step-7-(tia-portal)-and-simatic-s7-1200-s7-1500?dti=0&lc=en-DK

      Responder
  5. Aleix Munuera dice

    23 febrero, 2023 a las 15:39

    Buenos tardes,

    El AR1 que mencionas en el minuto 22 aprox. lo tienes al revés. Si quieres guardar el valor primero debes cargarlo con la instrucción LAR1 para transferirlo a la variable temporal que llamas DireccionAR1 y luego al final del código lo cargas primero cargando el valor de DireccionAR1 y lo cargas con TAR1.
    Quedaría así:

    LAR1
    T DireccionAR1
    .
    .
    .
    L DireccionAR1
    TAR1

    Saludos!

    Responder
    • Iñigo Gútiez dice

      23 febrero, 2023 a las 15:48

      ehhmmm no. Está bien como está.
      LAR1 es para cargar EN el AR1
      y TAR1 es para recuperar DEL AR1.

      Responder
      • Aleix Munuera dice

        23 febrero, 2023 a las 15:59

        Pues tienes toda la razón, hace tantos años que no uso esas instrucciones.
        TAR1 -> ACU1
        De allí, lo cargas a tu variable.
        Disculpa!

        Responder
        • Iñigo Gútiez dice

          23 febrero, 2023 a las 16:30

          Es normal la confusión porque es anti intuitivo respecto a las instrucciones L/T

          Responder

Footer

· Acerca de
· Misión, Visión y valores
· Aviso Legal y Política de Privacidad
· Condiciones de Venta
· Política de cookies
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Política de cookies
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR