Saltar al contenido principal

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ámara, ambos dispositivos deben estar conectados a la misma red local. La comunicación se establece utilizando 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

  1. Abra un socket desde el robot.

  2. Envíe información desde el robot a la cámara.

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

  4. La cámara realiza una función usando esa información y devuelve una respuesta vía 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 agregar una condición para confirmar que se devuelvan datos.

  1. El robot cierra la conexión del socket.

Configuración de Red y Firewall

Configuración de Red

  • Asegúrese de que tanto el UR robot 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 de 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 utilizar varios formatos de datos, como cadenas (strings), ASCII o bytes.
  • Asegúrese de que ambos dispositivos acuerden el formato de datos para evitar malentendidos.

Funciones URScript para la Comunicación por Socket

  • socket_open(address, port, "socket_name"): Abre una conexión de socket hacia la dirección y puerto especificados.
  • socket_send_string("message", "socket_name"): Envía un mensaje de cadena 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 cadena desde el socket.
  • socket_read_ascii_float(number, "socket_name"): Lee un valor flotante 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 (p. ej., 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 UR Robot

Para integrar el Universal Robot (UR) con su sistema usando Node-RED, puede crear un flujo simple que procese los mensajes TCP entrantes, realice acciones basadas en los datos recibidos y responda de vuelta 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 disparador, 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 desde el UR robot a 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 timeout.
  • 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:

  • Trigger Command: Este flujo comienza con el comando de disparo.
  • All Block Outputs: Genera información de la última imagen tomada (activada en Flujo 1).
  • Classification Block Logic: Configura condiciones para cada ROI (Region of Interest) 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 en 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 dentro del mismo flujo. Si el flujo se divide en rutas paralelas, la Respuesta TCP podría 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 ninguna respuesta dentro de un cierto tiempo de espera.

Manejo de Errores y Robustez

Tiempos de Espera 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.

🔗 Ver también