¡Esta es una revisión vieja del documento!


[Robótica] Comunicaciones: Conceptos generales

Contenidos

  1. Documentos PDF
  2. Manuales ABB
      • De forma predeterminada, el puerto X5 (LAN 3) se configura como una red aislada, lo cual permite la conexión del controlador de robot a una red externa. Típicamente, los PLC que controlan varios controladores de robot se conectan a LAN 3.
      • Apartado 8.5 Socket Messaging [616-1]
      • Apartado 1.19 Funciones para cadenas de caracteres
      • En la sección de Tipos de datos buscar la palabra socket para comprobar las múltiples instrucciones con esa palabra.


Vídeos

1

Instrumentación - Protocolos de Comunicación Industrial


2

ABB RobotStudio con Siemens por Socket / Robot ABB como servidor ✔


3

Comunicación RobotStudio Protocolo TCP/IP (sockets) / Robot ABB como servidor ✔


4

Open User Communication (TCON, TSEND, TRCV) con PLC S7-1200, TIA PORTAL y Python con protocolo TCP / PLCs Siemens ✔


Anotaciones sobre el vídeo 4 de PLCs

  • :!: En este vídeo se usa para el servidor un PC con un programa Python pero, excluyendo esa parte, explica muy bien los pasos a realizar en el TIA Portal para configurar el PLC Siemens como cliente. Es por ello que con este vídeo pretendemos resolver la mitad del problema: La configuración del lado cliente de un PLC Siemens S7-1200 para luego poder comunicarse con un servidor, que en nuestro caso será el robot de ABB. 8-) Las configuraciones están indicadas para el TIA Portal v15.
  • Material adjunto al vídeo
    1. Programa Python TCPOpenComm.py para usar el PC como cliente:
      TCPOpenComm.py
      import socket
      import sys
      socketc=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Crear Socket
      server_address = ('192.168.0.241', 2020) #Asignar IP y puerto para servidor
      socketc.bind(server_address) #TCP 2020
      print('starting up on {} port {}'.format(*server_address))
      socketc.listen(1)
      comando='1'
      while True:
          # Wait for a connection
          print("Esperando conexion")
          connection, client_address = socketc.accept()
          try:
              print("Conexion desde IP...", client_address)
       
              # Recibir datos en chuncks (segmentos)
              while True:
                  data = connection.recv(4)
                  print("recibido {!r}".format(data))
                  if data:
                      print("Retornando datos al cliente")
                      connection.sendall(comando)
                  else:
                      print("No hay datos desde cliente...", client_address)
                      break
       
          finally:
              # Cerrar la conexion
              connection.close()


  • doc/tec/robot/com_general/inicio.1765200595.txt.gz
  • Última modificación: 2025/12/08 14:29
  • por fepg