• Skip to primary navigation
  • Skip to main content

ProgramaciónSiemens

Cursos online de automatización industrial con PLC Siemens

  • Cursos
  • Mi cuenta
    • Mi cuenta
    • Blog
    • 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

Conversión implícita en TIA Portal

Conversión implícita en TIA Portal

por Iñigo Gútiez · 11 Comments

Una de las cosas más tediosas en Step 7 es la conversión entre tipos a la hora de realizar operaciones aritméticas con los PLC de Siemens. Afortunadamente, la cosa ha evolucionado bastante con la conversión implícita en TIA Portal.

Contenido

¿Qué es la conversión implícita en TIA Portal?

La conversión implícita en TIA Portal no es mas que un mecanismo interno y automático que tiene Step 7.

Se usa para sumar, restar, multiplicar etc, de dos o varias variables, entre tipos diferentes..

Así por ejemplo, hasta ahora en Step 7 V5.x no podías sumar un entero con un real para dar un nuevo real.

Primero transformabas el entero en doble entero, y luego este doble entero en real.

Solo entonces podías sumar ambos reales para que el resultado diera un nuevo real (bonito trabalenguas).

Bien, pues ahora gracias a la conversión implícita te vas a ahorrar un montón de conversiones intermedias estériles.

Ahora podrás operar directamente con valores de diferentes tipos obteniendo el resultado sin problemas.

Características de la conversión implícita en TIA Portal

La conversión implícita se da de forma automática cuando una función es ejecutada siempre y cuando los tipos de las variables sean compatibles.

La longitud del tipo de datos fuente no puede ser mayor que el tipo de datos destino. Por ejemplo, en una suma.

Cuando la conversión de datos es posible, los bits de datos se justifican a la derecha y los bits sobrantes son rellenados con ceros.

Es decir, toman las posiciones de los bits menos representativos para que el valor esté inalterado.

La conversión de tipos de datos de menor tamaño a uno más grande se indica con la etiqueta en gris (en escalera y diagrama de bloques)

¿Se puede realizar siempre la conversión implícita en TIA Portal?

No, no siempre se puede ya que no todos los tipos son compatibles entre sí.

En la siguiente tabla vas a ver las conversiones que TIA Portal realiza de forma implícita.

Conversión implícita en TIA Portal

Siendo:

I : Independiente del IEC Check

D: Con IEC Check Desactivado

ED: Solo con Escalera y Diagrama de funciones con IEC Check desactivado

SCL: Solo en SCL con IEC Check desactivado

¿Que es eso de IEC Check?

La norma IEC 61131 es mucho más estricta que lo que te permite realizar Siemens con TIA Portal.

Así, la norma IEC te permite convertir un entero a doble entero de forma automática.

Lo que no te permite es convertir un byte a un entero, porque técnicamente son cosas muy diferentes.

Un byte no es más que 8 bits. No significa en si mismo nada, y por ello la IEC no te permite convertirlo a un entero, que si está definido como tipo de datos.

En cambio, con el chequeo de IEC desactivado, la conversión implícita en TIA Portal es más abierta pudiendo realizar más conversiones de la mano de Siemens sin tu intervención.

¿Significa que si tengo el IEC activado no puedo convertir las variables?

No.

Lo que significa es que la conversión no se realizará de forma automática (implícita) y deberás realizar la conversión de forma explicita usando las herramientas de conversión.

Activación y desactivación de IEC Check

Para aumentar o disminuir las restricciones en la conversión implícita en TIA Portal puedes realizarlo de dos maneras:

  • Bloque a bloque: en las propiedades del FC o FB podrás activar o desactivar este chequeo.
  • Por defecto: Puedes habilitar o deshabilitar por defecto este chequeo para los futuros bloques desde:
    •  Opciones >> Configuración >> Programación PLC >> General >>Ajuste predeterminado para bloques nuevos >> IEC Check

¿Necesitas más información?

Esta entrada está sacada del Bloque 1 del curso de TIA Portal que estoy a punto de terminar ya que solo me queda un bloque de los 7.

Ya son más de 40 horas de vídeo a lo largo de 250 vídeos con decenas de ejercicios resueltos a lo largo del curso.

Eso sin contar este último bloque que está por realizar.

Si necesitas obtener conocimientos rápidamente sobre TIA Portal te animo a que le eches un vistazo a todo lo que te puede ofrecer.

Estoy convencido de que te puedo ayudar a que con tu esfuerzo, el curso, y el foro donde resolver las dudas.

En pocas semanas puedes comenzar a realizar tus propios proyectos de automatización como los alumnos que ya lo están haciendo.

Como digo, si quieres cambiar ahora mismo la dinámica y dejar de dar bandazos para ponerte en serio con ello, tienes toda la información en este enlace: Curso de TIA Portal para la serie 1200.

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.

Filed Under: blog

Reader Interactions

    Deja un comentario Cancelar

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

    11 Comentarios

  1. Rolando says

    3 junio, 2017 at 20:22

    Como siempre me parece muy bueno todo lo que haces Iñigo, esta publicación está interesante cantidad y creo que le vendrá muy bien a todos. Saludos

    Responder
  2. Jose Luis Mariño Ruibal says

    3 junio, 2017 at 20:39

    Ya somos varios colchoneros, pero el partido no lo perdono. mañana saldrá el sol muy brillante para algunos. yo soy de sombra.

    Responder
    • Iñigo Gútiez says

      3 junio, 2017 at 20:57

      Jeje, no quiero saber con quien vás X)

      Responder
  3. David says

    3 junio, 2017 at 20:59

    ¡¡Puff!! ya no me acordarba el concepto de las conversiones desde el Bloque 1 pero ahora desempolvando un poco es facil de recordar con tu ayuda Iñigo. Lo del partido hoy creo que el R. Madrid necesitará algo más que una conversión implicita para ganar la final!! Saludos!!

    Responder
  4. Art Zuñiga says

    5 junio, 2017 at 13:07

    gracias por compartir tus conocimientos Iñigo, solo un ex-usuario de AB y este tipo de cosas resultan ser muy complicadas de entender, cuando AB ya lo ha resuelto desde mucho tiempo atras. Siemens me recuerda a los viejos modelos de Modicon Modsoft.

    Responder
  5. Carlos Gimeno Illa says

    5 junio, 2017 at 17:10

    Muy interesante. Gran esfuerzo didáctico. Muchas gracias.

    Responder
    • Iñigo Gútiez says

      5 junio, 2017 at 18:26

      Muchas gracias Carlos!

      Responder
  6. Josep Manel Samper says

    7 junio, 2017 at 20:25

    Muy buen artículo. Esto de las conversiones históricamente suele traer de cabeza a los programadores de PLC.
    Si te interesa o le interesa a alguien, hace algún tiempo hice un bloque de función (FC) para STEP 7 que realiza la conversión para todos los tipos, incluyendo periferia.

    Responder
  7. Roberto Feliz says

    7 junio, 2017 at 22:49

    Gracias por su gran aporte.
    Gracias a usted yo aprendi a programar con step 7.
    Y creo que con su ayuda yo boy a aprender a programar en TIA portal.
    Gracias de antemano

    Responder
  8. David Collazos Martin says

    1 agosto, 2018 at 15:50

    Hola Iñigo, gracias por el aporte.

    Parece que hay alguna conversion mal de las que indicas en la tabla. En entorno TIA 15 estoy comprobando que se puede hacer una conversion inmplicita de String a DINT. Basta con crear un FC que mueva un Dint desde una entrada declarada como Dint a una Salida declarada como DINT y en la llamada del FC escribir simplemente ‘test’ para que el bloque haga la conversion implicita.

    Tienes más info sobre este tipo de conversiones?

    Gracias

    Responder
    • Iñigo Gútiez says

      1 agosto, 2018 at 16:32

      Tal y como lo cuentas, eso no es una conversión implícita.
      No se puede convertir test a un número porque test no representa ningún número.
      Otra cosa es que te de como resultado no se que número equivalente del código ascii.
      Una conversión Implícita de string a dint sería que yo metiera el string ‘1234’ y el dint valiera 1234 y si lo convierto a real 1234.0
      Lo otro, no se que resultado dará, pero la palabra ‘Paco’ no se puede convertir a un valor numérico porque ‘Paco’ no representa un valor numérico.

      Responder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto & Faq
  • Blog

Copyright © 2023 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores