• 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

Comunicación TCP y UDP en TIA Portal

Comunicación TCP y UDP en TIA Portal

por Iñigo Gútiez · 20 Comments

Usando Ethernet, dos de los protocolos más usados a lo largo y ancho de internet  son TCP y UDP.

Se usan para multitud de otros protocolos:

  • TCP se usan en HTTP o Telnet entre otros.
  • UDP se usan en DHCP o VoIP, entre otros también.

Y cómo no, ambos los podemos usar con nuestros PLC Siemens.

Pero empecemos por el principio con algunas definiciones y aclaraciones.

Contenido

¿Qué es TCP?

TCP es el acrónimo de Transmission Control Protocol.  

Se usa para enviar y recibir mensajes entre dos equipos en una red.

Como bien dice en la wikipedia: [..] El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron[..]

Esto es una grandísima diferencia entre TCP y UDP como luego veremos.

A grandes rasgos, la conexión TCP necesita el establecimiento de una conexión entre ambas máquinas.

El solicitante de la comunicación será el cliente y el receptor de dicha comunicación el servidor. Por eso se le suele llamar entorno Cliente-Servidor.

La comunicación se realiza en ambas direcciones enviando datos desde el cliente al servidor y del servidor al cliente.

Cuando visitas este blog, tu PC sería el cliente, y la máquina donde está alojado el blog, el servidor (por eso se le llama servidor).

Es decir, tú, a través del navegador del PC, solicitas una conexión con el servidor donde está alojada la web, y esta responde enviándote la página que estás leyendo en estos momentos.

Esto es una tremenda simplificación que se aleja bastante de la realidad.

Hay muchísimos más equipos que juegan en esta comunicación, conectados entre sí haciendo de intermediarios.

Vamos, que no te conectas directamente, pero para el ejemplo, nos vale.

Espero que se entienda el concepto.

Nos es válido porque cuando realices una comunicación TCP y UDP en TIA Portal, normalmente será entre dos equipos directamente.

A lo sumo, colocarás un switch donde concentrar todas las conexiones. Así, todos los equipos podrán comunicar entre sí, si fuera necesario.

Si quieres tener información más técnica sobre TCP, puedes visitar esta web sobre el protocolo TCP

¿Qué es UDP?

Tomando la wikipedia como referencia:

User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas (Encapsulado de capa 4 o de Transporte del Modelo OSI). Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o recepción.

 

Es decir, un poco más en cristiano:

  • Es un lujo de datos unidireccional.
  • El envío de los datos de una máquina a la otra, se hace sin que haya habido una conexión previa entre ambas máquinas.
  • La máquina receptora de la información, no dará cuenta sobre esta recepción al emisor.
  • El emisor no tiene ni idea si los datos están llegando,  o si llegan correctamente.

Podrías pensar que menuda joyita de comunicación.

El emisor lanza los datos, y literalmente se desentiende de si llegan o no al receptor.

Luego veremos que puede tener múltiples aplicaciones para nuestros autómatas Siemens.

Si quieres más información, puedes encontrar más aquí sobre el protocolo UDP

Comunicación TCP y UDP en TIA Portal

Vale.

Todo esto está muy bien, pero ¿qué hay de mis PLC? ¿Para qué me va a servir la comuniación TCP y UDP en TIA Portal?

Imagino que el TCP lo tienes claro: comunicación entre dos PLC que se envían datos entre ellos.

Guay. Puedes comunicar dos autómatas S7-1200 (por ejemplo) sin más que tirar un cable de ethernet entre ellos.

Ojo porque no es una comunicación maestro-esclavo, sino una simple comunicación entre dos iguales.

¿Es genial o no?

Las aplicaciones son las típicas de comunicar dos máquinas que estén en la misma línea y se tengan que mandar datos de producción, por ejemplo.

Pero ojo, porque puedes realizar una comunicación TCP con un PC perfectamente creando una aplicación en .Net.

Para mi gusto es mucho más engorroso que hacerlo a través de un OPC, pero puedes hacerlo con tiempo y una caña.

Y te ahorras una licencia de OPC.

Eso sí, con el coste de oportunidad que supone, creo que usar el OPC es la mejor opción.

Por algo lo inventaron.

Volviendo a la comunicación entre dos PLC, esta será usando una serie de bloques para crear esta comunicación.

Podrás usar las librerías Open User Comunication de TIA Portal para intercambiar datos.

Hay muchas funciones, cada una con sus peculiaridades (TSEND_C, TSEND, TUSEND…) unas que necesitan del bloque TCONT para establecer la comunicación, y otras no.

Además, podrás realizar en función del bloque usado, multicast o broadcast si tu PLC o tarjeta lo soportan.

¿Qué es broadcast?

El broadcast no es más que un método de transmisión de datos de uno a muchos.

En este caso de uno a todos los participantes de la red.

¿Y el multicast?

El multicast, es un método de comunicación de uno a varios.

Tienes más información sobre ambos métodos en esta página de métodos de transmisión

¿Para qué usamos UDP en TIA Portal?

Hemos visto más arriba que UDP es una comunicación peculiar. Pero muy útil en algunos casos para nuestras automatizaciones.

Por ejemplo, podemos usarla en registros (temperaturas, presiones etc) entre el PC y un Scada.

No hace falta que nuestro PC esté encendido o no para que el PLC envíe los datos de una temperatura.

Si la aplicación del PC está activa, pues registraremos la temperatura, y si no, pues el PLC seguirá enviando este dato de forma continua, le estén oyendo o no.

Otra posible aplicación es si no tienes un servidor de hora.

Puedes usar una comunicación UDP para que uno de los PLC haga este servicio, mandando en broadcast la hora cada minuto por ejemplo.

De esta forma, los PLC que estén escuchando, podrán actualizar su hora.

De tal forma que cambiando la hora de un PLC, actualizas la de todos.

Como ves, no vas a usar UDP para información super sensible.

Si ambas máquinas tienen que saber lo que la otra está haciendo, usarás TCP u otros métodos de comunicación.

Pero para cosas más sencillas y menos trascendentes, UDP puede ser una buena y simple solución.

¿Qué te ha parecido?

Espero que si no estás muy puesto en comunicaciones esta breve introducción te haya servido de aperitivo.

Recuerda que todos estos conceptos son tratados en el bloque 7 del curso de TIA Portal.

Si necesitas que alguien te eche una mano, puede que este bloque sea lo que estás buscando.

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, TIA Portal

Reader Interactions

    Deja un comentario Cancelar

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

    20 Comentarios

  1. Rubén says

    24 julio, 2017 at 19:31

    Grata información Iñigo. Aún no he tenido momento pero seguro que los bloques de.comunicaciones del curso serán muy útiles.

    Un saludo

    Responder
    • Iñigo Gútiez says

      24 julio, 2017 at 22:51

      Así lo espero Rubén!

      Responder
  2. Abisai says

    24 julio, 2017 at 19:39

    Muchas gracias por el Aporte, me ha servido mucho mas para entender la comunicacion y sus aplicaciones, en mi caso yo uso OPC, pero creo que puede ser una buena opcion para aplicaciones con datos no sensibles

    Saludos
    Abisai

    Responder
    • Iñigo Gútiez says

      24 julio, 2017 at 22:50

      Si, el UDP se puede usar en cosas no complejas y no críticas. Saludos!

      Responder
  3. Enrique says

    24 julio, 2017 at 19:56

    El mundo de las comunicaciones me apasiona espero mas contenido iñigo.

    Responder
    • Iñigo Gútiez says

      24 julio, 2017 at 22:49

      Seguiremos haciendo cositas Enrique. Saludos!

      Responder
  4. Miguel Angel de la Oliva says

    24 julio, 2017 at 20:17

    Muy bien, esas pequeñas «grandes» notas. Sin duda son el «perejil» de tus buenos «platos de vídeo». Gracias, y que sigan surtiendo las recetas de tus cursos.

    Responder
    • Iñigo Gútiez says

      24 julio, 2017 at 22:48

      Habrá muchos platos en el menú del bloque 7 del curso. Espero que sea de vuestro agrado jaja.

      Responder
  5. Ing. Cesar Castillo says

    24 julio, 2017 at 21:38

    Interesante informacion

    Responder
    • Iñigo Gútiez says

      24 julio, 2017 at 22:45

      Gracias César!

      Responder
  6. Jose Antonio says

    17 agosto, 2017 at 15:02

    Lo tenía un poco olvidado esto del UDP, la verdad no me acordaba que significaba cada uno. El caso del broadcast estuve delante de un problema dónde un dispositivo entraba en una red para ver si respondía en modo broadcast pero al final , parecía ser fallo de hardware, del propio dispositivo.

    Responder
  7. Davis says

    18 septiembre, 2018 at 21:25

    Buenas tengo una duda. Estoy intentando hacer un wake on lan desde el plc a un pc y debo enviar un paquete que contenga una cadena de 6 bytes de valor 255 en hexadecimal (“FF FF FF FF FF FF”), seguida de 16 repeticiones de la dirección MAC del ordenador. Sabes como realizarlo??

    Responder
    • Iñigo Gútiez says

      18 septiembre, 2018 at 22:02

      Yo lo que haría es realizar un envio UDP y ver si funciona. Si puedo algún día, intentaré hacer el ejemplo ya que nunca lo he necesitado.
      Saludos

      Responder
  8. Rafa says

    25 junio, 2019 at 16:30

    Hola Íñigo, ¿hay alguna posibilidad de usar TCP con nombre de dominio en lugar de IP? Usando las instrucciones Open User Comms no encuentro la manera de editar un TCON_PARAM con la remote_address distinta a una IP fija… Por lo menos para la S71200 1215C.
    Básicamente, la aplicación es la de una baliza de sensores que cada cierto tiempo envía los datos recopilados (una variable string que contiene un json válido) a un servidor, abriendo una comunicación TCP y escribiendo en dicho socket. El problema está en que ese servidor podría cambiar de IP, y tendría que cambiar la IP del TCON_PARAM, y el equipo está en una ubicación remota. Todo esto, hacerlo sin TeleService.
    Muchas gracias de antemano

    Responder
    • Iñigo Gútiez says

      25 junio, 2019 at 19:53

      Que yo sepa, no se puede mas que con IP, al menos en los S7-1200.

      Responder
    • Iñigo Gútiez says

      25 junio, 2019 at 20:10

      Que yo sepa, solo se puede con IP, al menos con los S7-1200.

      Responder
  9. Anonimo says

    3 noviembre, 2019 at 11:01

    Hola, en el articulo dices «creo que usar el OPC es la mejor opción.Por algo lo inventaron»

    Pero estas generalizando demasiado. Se te olvida mencionar que opc es super lento en comparacion a la velocidad que podrias obtener si no usas opc. Asi que mejor o peor solo depende del caso de uso concreto…

    Responder
    • Iñigo Gútiez says

      3 noviembre, 2019 at 11:16

      Gracias por el comentario. Me refería a la comunicación entre un PLC y un PC especialmente para crear un HMI, cosa que no queda claro en el artículo. Lo corrijo. En cualquier caso, efectivamente es una generalización, porque generalmente, es la opción más acertada y más usada.
      Cuando digo que por algo lo inventaron, es precisamente, porque hasta la aparición del OPC, la comunicación entre un PLC y un PC, debido a que los protocolos eran propietarios, se hacía muy complicado mezclar hardware con software. Esa es la gracia del OPC, bajo mi punto de vista.
      Ahora, siempre habrá casos en los que haya que hacer otro tipo de soluciones para comunicar un PC con el PLC. Pero por cada solución propietaria y add-hoc, seguramente cuentes muchos muchos más proyectos desarrollados con una base OPC.
      En cualquier caso, es mi punto de vista y por eso digo «creo» que es la mejor opción.

      Responder
  10. Fernando Vivanco Uribe says

    27 febrero, 2020 at 0:31

    ¿Tienes algún ejemplo para comunicar un S7-1200 con un servidor WEB vía Internet? Requiero que desde una aplicación que corre en un servidor remoto poder cambiar dinámicamente los valores de 4 variables del PLC S7-1200 vía Internet

    Responder
    • Iñigo Gútiez says

      27 febrero, 2020 at 8:16

      No, lo siento, no tengo ningún ejemplo porque la gracia no está en la configuración del plc sino como securizar la comunicación y que sea segura. Eso es terreno de IT y ahí prefiero no meterme.

      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

7 pasos para programar mas ordenado y profesional op

7 pasos para programar más ordenado y profesional

Recibirás de forma TOTALMENTE GRATUITA:

  • Un PDF con los pasos para programar de forma más eficiente, limpia y profesional

Muchas gracias!

Has sido suscrito a la web.

PROGRAMACIÓN SIEMENS te informa que los datos de carácter personal que nos proporciones rellenando el presente formulario serán tratados por Iñigo Gútiez Chagartegui como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicitamos es para enviarte nuestras publicaciones, promociones de productos y/o servicios y recursos exclusivos. La legitimación se realiza a través del consentimiento del interesado. Te informamos que los datos que nos facilitas estarán ubicados en los servidores de MailerLite Limited (proveedor de email marketing), ubicada en Irlanda. Puedes ver la política de privacidad de MailerLite Limited en https://www.mailerlite.com/legal/privacy-policy. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@programacionsiemens.com así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar la información adicional y detallada sobre Protección de Datos en nuestra política de privacidad.

x