DOCUMENTACIÓN CON IA
¿Qué desea saber?
Integración de Universal Robot (UR) vía TCP/IP
Para integrar el Universal Robot (UR) con el sistema de cámaras, ambos dispositivos deben estar conectados a la misma red local. La comunicación se establece mediante sockets TCP/IP — no se requiere activación adicional más allá de asegurar que ambos dispositivos compartan la misma red.
En esta configuración, la comunicación opera como una solicitud y respuesta entre el robot y la cámara. La cámara actúa como el servidor, y el robot funciona como el cliente.
Flujo de Comunicación Típico
-
Abrir un socket desde el robot.
-
Enviar información del robot a la cámara.
-
La cámara lee la información y la traduce al formato requerido (por ejemplo, string, ASCII, byte).
-
La cámara ejecuta una función utilizando esa información y devuelve una respuesta vía TCP.
-
El robot espera la respuesta TCP. Si no se recibe respuesta dentro de un par de segundos, el robot continuará su flujo sin la respuesta.
Se recomienda agregar una condición para confirmar que los datos sean devueltos.
- El robot cierra la comunicación del socket.
Configuración de Red y Firewall
Configuración de Red
- Asegúrese de que tanto el robot UR como la cámara estén conectados a la misma red local.
- Asigne direcciones IP dentro de la misma subred para facilitar la comunicación.
Configuración del Firewall
- Configure las reglas de firewall en ambos dispositivos para permitir la comunicación TCP/IP a través de los puertos designados.
- Verifique que ninguna política de red bloquee la comunicación requerida.
URScript y Programación de Sockets - UR
Formatos de Datos
- La comunicación puede utilizar varios formatos de datos como strings, ASCII o bytes.
- Asegúrese de que ambos dispositivos coincidan en el formato de datos para evitar errores de comunicación.
Funciones de URScript para Comunicación por Socket
socket_open(address, port, "socket_name"): Abre una conexión de socket a la dirección y puerto especificados.socket_send_string("message", "socket_name"): Envía un mensaje de tipo string a través del socket.socket_send_byte(value, "socket_name"): Envía un valor de byte a través del socket.socket_read_string("socket_name"): Lee un mensaje de tipo string desde el socket.socket_read_ascii_float(number, "socket_name"): Lee un mensaje float ASCII desde el socket.socket_read_byte("socket_name"): Lee un valor de byte desde el socket.socket_close("socket_name"): Cierra la conexión del socket.
# Open socket connection to the camera server
socket_open("192.168.0.2", 3000, "camera_socket")
# Send a string message
socket_send_string("Request Data", "camera_socket")
# Alternatively, send a byte value
socket_send_byte(42, "camera_socket") # Sends the byte value 42
# Read the response as a string
response = socket_read_string("camera_socket")
# Read the response as a byte
response_byte = socket_read_byte("camera_socket")
# Close the socket connection
socket_close("camera_socket")
Configuración como Servidor TCP/IP - OV10i
Configuración del Servidor
- Configure la cámara para escuchar conexiones TCP entrantes en un puerto específico (por ejemplo, puerto 3000).
- Asegúrese de que la dirección IP de la cámara sea estática o conocida por el robot para una comunicación consistente.
Análisis de Datos
- Implemente lógica en la cámara para leer los datos entrantes del robot.
- Traduzca y procese los datos según se requiera para las funciones de la cámara.
- Prepare y envíe la respuesta apropiada de vuelta al robot.
Lógica de Node-RED para Integración con Robot UR
Para integrar el Universal Robot (UR) con su sistema usando Node-RED, puede crear un flujo simple que procese mensajes TCP entrantes, ejecute acciones basadas en los datos recibidos y responda al robot si es necesario.
Ejemplos de Flujos
Aquí hay un ejemplo de flujo para Clasificación, en el que la cámara verificará una condición completa de aprobado/rechazado de la pieza después de un disparo, y enviará la respuesta de vuelta al robot.

Flujo 1:
- TCP IN: Abre un servidor TCP en Node-RED en el puerto 30000.
- Función 1 (Lee UR): Convierte los datos entrantes del robot UR a string. Para que este flujo funcione, el UR debe enviar el string "Trigger".
- Switch: Si el string es "Trigger", el flujo continúa; si es otra cosa, el flujo se detiene y el robot UR experimentará un timeout.
- HTTP Request: Envía una solicitud a un endpoint (API Trigger) para activar el disparo de la cámara.
- Función 2 (Lee Datos): Recupera datos de la memoria global (1 o 0) y los formatea correctamente para la lectura ASCII en el robot UR.
- TCP Response: Envía la información de vuelta al robot.
Flujo 2:
- Comando de Disparo: Este flujo comienza con el comando de disparo.
- Salidas de Todos los Bloques: Genera información de la última imagen tomada (disparada en el Flujo 1).
- Lógica del Bloque de Clasificación: Establece condiciones para cada ROI (Región de Interés) para determinar el estado de aprobado o rechazado. (Haga clic en el bloque para configurar.)
- Función 3 (Configuración de Información): Convierte la condición de aprobado/rechazado en 1 o 0 y la almacena en la memoria global para una fácil traducción al robot UR.
Consideraciones
- Continuidad del Flujo: Asegúrese de que todos los nodos que procesan los datos entrantes estén conectados secuencialmente en el mismo flujo. Si el flujo se divide en rutas paralelas, el nodo TCP Response puede no funcionar correctamente.
- Escenario Sin Respuesta: Si no se necesita respuesta, puede omitir el nodo TCP Response. El robot debe estar configurado para manejar los casos en que no se recibe respuesta dentro de un cierto timeout.
Manejo de Errores y Robustez
Timeouts y Reintentos
- Implemente timeouts para las operaciones de socket para evitar que el robot espere indefinidamente.
- Incluya mecanismos de reintento en caso de problemas temporales de red.