Saltar al contenido principal

DOCUMENTACIÓN CON IA

¿Qué desea saber?

Integración de Robot Universal (UR) vía TCP/IP

Para integrar el Robot Universal (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 funciona como una solicitud y una respuesta entre el robot y la cámara. La cámara actúa como servidor, y el robot funciona como cliente.

Flujo de Comunicación Típico

  1. Abrir un socket desde el robot.

  2. Enviar información desde el robot a la cámara.

  3. La cámara lee la información y la transforma al formato requerido (p. ej., cadena, ASCII, byte).

  4. La cámara realiza una función utilizando esa información y devuelve una respuesta a través de TCP.

  5. El robot espera la respuesta TCP. Si no se recibe una respuesta en un par de segundos, el robot continuará su flujo sin la respuesta.

nota

Se recomienda añadir una condición para confirmar que se devuelve datos.

  1. 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 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 usar varios formatos de datos, como cadenas, ASCII o bytes.
  • Asegúrese de que ambos dispositivos acuerden el formato de datos para evitar malentendidos.

Funciones URScript para Comunicación de Sockets

  • 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"): Envia un mensaje de cadena a través del socket.
  • socket_send_byte(value, "socket_name"): Envia un valor de byte a través del socket.
  • socket_read_string("socket_name"): Lee un mensaje de cadena desde el socket.
  • socket_read_ascii_float(number, "socket_name"): Lee un mensaje ASCII de punto flotante 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 (p. ej., el 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 la lógica en la cámara para leer los datos entrantes desde el robot.
  • Traduzca y procese los datos según sea necesario para las funciones de la cámara.
  • Prepare y envíe la respuesta adecuada de vuelta al robot.

Lógica de Node-RED para la Integración del Robot UR

Para integrar el Universal Robot (UR) con su sistema utilizando Node-RED, puede crear un flujo sencillo que procese mensajes TCP entrantes, realice acciones basadas en los datos recibidos y responda al robot si es necesario.

Flujos de Ejemplo

A continuación, un flujo de ejemplo para clasificación, en el que la cámara verificará una condición completa de Pass/Fail de la pieza tras un trigger, y enviará la respuesta de vuelta al robot.

UR Robot Classification Flow Example

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 en una cadena. Para que este flujo funcione, el UR debe enviar la cadena "Trigger".
  • Switch: Si la cadena es "Trigger", el flujo continúa; si es otra cosa, el flujo se detiene y el robot UR experimentará un tiempo de espera.
  • HTTP Request: Envía una solicitud a un endpoint (API Trigger) para activar el disparador de la cámara.
  • Función 2 (Lectura de 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 Trigger: Este flujo empieza con el comando de disparo.
  • Todas las Salidas de Bloque: Genera información de la última imagen tomada (activada en el Flujo 1).
  • Lógica de Bloque de Clasificación: Configura las condiciones para cada ROI (Región de Interés) para determinar el estado Pass o Fail. (Haga clic en el bloque para configurarlo.)
  • Función 3 (Configuración de Información): Convierte la condición Pass/Fail a 1 o 0 y la almacena en la memoria global para facilitar la 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, la Respuesta TCP puede no funcionar correctamente.
  • Escenario sin respuesta: Si no se necesita respuesta, puede omitir el nodo de Respuesta TCP. El robot debe estar configurado para manejar casos en los que no se reciba respuesta dentro de un tiempo de espera.

Manejo de Errores y Robustez

Time-outs y Reintentos

  • Implemente timeouts para las operaciones de socket para evitar que el robot espere indefinidamente.
  • Incluir mecanismos de reintento en caso de problemas temporales de red.

🔗 Véase También