| |
| doc:tec:robot:com_general:inicio [2026/01/16 12:31] – creado fepg | doc:tec:robot:com_general:inicio [Fecha desconocida] (actual) – editor externo (Fecha desconocida) 127.0.0.1 |
|---|
| | ====== [Robótica] Comunicaciones: Conceptos generales ====== |
| |
| | <lead>{{ico:consulta_32.png?nolink|}} Contenidos</lead> |
| | ---- |
| | - Documentos PDF |
| | - {{ doc:tec:robot:com_general:conexion_remota_0_teo.pdf |Conexión remota}} |
| | - {{ doc:tec:robot:com_general:2023_-_protocolos_comunicacion_para_integracion_de_robots_y_plc.pdf |Protocolos de comunicación para integración de robots y PLCs (2023)}} |
| | - {{ doc:tec:robot:com_general:tfg_-_desarrollo_de_un_entorno_con_hmi_y_plc_siemens_para_tareas_de_paletizado_de_un_robot_industrial.pdf |TFG - Desarrollo de un entorno con HMI y PLC Siemens para tareas de paletizado de un robot industrial}} |
| | - Manuales ABB |
| | - [[this>../dok/manual/robot/abb/robotware_parametros_sistema.pdf|Parámetros del sistema: Manual de referencia técnica]] Página 38 y siguientes. |
| | * //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.// |
| | - [[this>../dok/manual/robot/abb/robotware_opciones_y_funciones.pdf|Robotware: Opciones y funciones (2023)]] |
| | * Apartado **8.5 Socket Messaging [616-1]** |
| | - [[this>../dok/manual/robot/abb/rapid_manual_descripcion.pdf|Descripción general de RAPID: Manual de referencia técnica (2021)]] |
| | * Apartado **1.19 Funciones para cadenas de caracteres** |
| | - [[this>../dok/manual/robot/abb/rapid_manual_referencia.pdf|Instrucciones, funciones y tipos de datos de RAPID: Manual de referencia técnica]] |
| | * En la sección de **Tipos de datos** buscar la palabra ''socket'' para comprobar las múltiples instrucciones con esa palabra. |
| | \\ |
| | <lead>{{:ico:video.png?nolink|}} Vídeos</lead> |
| | ---- |
| | <TEXT align="center"> |
| | |
| | <grid><col xs="12" md="4"><badge>1</badge> |
| | |
| | [[https://youtu.be/7onNYSn89tk|Instrumentación - Protocolos de Comunicación Industrial]] |
| | {{ youtube>7onNYSn89tk?small }} |
| | \\ |
| | </col><col xs="12" md="4"><badge>2</badge> |
| | |
| | [[https://youtu.be/KnhSdn13XL8|ABB RobotStudio con Siemens por Socket]] / Robot ABB como servidor ✔ |
| | {{ youtube>KnhSdn13XL8?small }} |
| | \\ |
| | </col><col xs="12" md="4"><badge>3</badge> |
| | |
| | [[https://youtu.be/6Qks8TGY-_Y|Comunicación RobotStudio Protocolo TCP/IP (sockets)]] / Robot ABB como servidor ✔ |
| | {{ youtube>6Qks8TGY-_Y?small }} |
| | \\ |
| | </col></grid> |
| | </TEXT> |
| | |
| | <TEXT align="center"> |
| | |
| | <grid><col xs="12" md="4"><badge>4</badge> |
| | |
| | [[https://youtu.be/ANteov3OtOI|Open User Communication (TCON, TSEND, TRCV) con PLC S7-1200, TIA PORTAL y Python con protocolo TCP]] / PLCs Siemens ✔ |
| | {{ youtube>ANteov3OtOI?small }} |
| | \\ |
| | </col><col xs="12" md="4"> |
| | |
| | </col><col xs="12" md="4"> |
| | |
| | </col></grid> |
| | |
| | </TEXT> |
| | |
| | **Anotaciones sobre el vídeo <badge>4</badge> 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** |
| | - {{ doc:tec:robot:com_general:comunicaciontcpv1.zip |Proyecto para TIA Portal v15}} |
| | - {{ doc:tec:robot:com_general:tcpopencomm.py.7z |Programa Python TCPOpenComm.py}} para usar el PC como cliente: <code python 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() |
| | |
| | </code> |
| | \\ |