Estructuras de Programación para Robots Industriales ABB RAPID
Enviado por Chuletator online y clasificado en Tecnología Industrial
Escrito el en
español con un tamaño de 4,52 KB
1. Pick & Place con Inspección
Esta rutina gestiona la recogida de piezas y su clasificación mediante un sensor de calidad.
PROC main()
! 1. Inicio seguro
MoveJ [POS_REPOSO], [VEL_AIRE], [PREC_AIRE];
WHILE TRUE DO
! 2. Esperar a que llegue la pieza
WaitDI [ENTRADA_SENSOR_PIEZA], 1;
! 3. Bajar, coger pieza y subir
MoveJ [POS_APROX_CINTA], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_CINTA], [VEL_TRABAJO], fine;
Set [SALIDA_CERRAR_PINZA];
WaitTime [SEGUNDOS_ESPERA];
MoveL [POS_APROX_CINTA], [VEL_AIRE], [PREC_AIRE];
! 4. Decisión lógica del sensor de calidad
IF ([ENTRADA_SENSOR_CALIDAD] = TRUE) THEN
! 4A. Rutina pieza VÁLIDA
MoveJ [POS_APROX_CAJA_BUENA], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_CAJA_BUENA], [VEL_TRABAJO], fine;
Reset [SALIDA_CERRAR_PINZA];
WaitTime [SEGUNDOS_ESPERA];
MoveL [POS_APROX_CAJA_BUENA], [VEL_AIRE], [PREC_AIRE];
ELSE
! 4B. Rutina pieza DEFECTUOSA
MoveJ [POS_APROX_CAJA_MALA], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_CAJA_MALA], [VEL_TRABAJO], fine;
Reset [SALIDA_CERRAR_PINZA];
WaitTime [SEGUNDOS_ESPERA];
MoveL [POS_APROX_CAJA_MALA], [VEL_AIRE], [PREC_AIRE];
ENDIF
ENDWHILE
ENDPROC2. Alimentación de Máquina (Interacción Robot-Máquina)
Secuencia para cargar y descargar piezas en una máquina externa.
PROC main()
MoveJ [POS_REPOSO], [VEL_AIRE], [PREC_AIRE];
WHILE TRUE DO
! 1. Esperar a que la máquina avise de que está ABIERTA/LIBRE
WaitDI [ENTRADA_MAQUINA_ABIERTA], 1;
! 2. Meter la pieza en la máquina y salir de ahí rápido
MoveJ [POS_APROX_MAQUINA], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_DENTRO_MAQUINA], [VEL_TRABAJO], fine;
Reset [SALIDA_CERRAR_PINZA]; ! Soltamos pieza
MoveL [POS_APROX_MAQUINA], [VEL_AIRE], [PREC_AIRE];
! 3. Dar la orden a la máquina para que empiece a trabajar
Set [SALIDA_ARRANCAR_MAQUINA];
! 4. Esperar a que la máquina termine
WaitDI [ENTRADA_MAQUINA_FIN], 1;
! 5. Entrar a recoger la pieza terminada
MoveL [POS_DENTRO_MAQUINA], [VEL_TRABAJO], fine;
Set [SALIDA_CERRAR_PINZA];
MoveL [POS_APROX_MAQUINA], [VEL_AIRE], [PREC_AIRE];
ENDWHILE
ENDPROC3. Trayectoria Continua (Soldadura / Pintura / Pegamento)
Uso de puntos intermedios para trayectorias fluidas.
PROC main()
MoveJ [POS_REPOSO], [VEL_AIRE], [PREC_AIRE];
WHILE TRUE DO
WaitDI [ENTRADA_PIEZA_POSICIONADA], 1;
! 1. Aproximación e inicio de la trayectoria
MoveJ [POS_APROX_INICIO], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_INICIO_COORDENADA], [VEL_TRABAJO], fine;
! 2. Activar la herramienta
Set [SALIDA_ENCENDER_HERRAMIENTA];
! 3. Puntos intermedios (USAR 'z', NO 'fine')
MoveL [POS_INTERMEDIA_1], [VEL_TRABAJO], [PREC_AIRE];
MoveL [POS_INTERMEDIA_2], [VEL_TRABAJO], [PREC_AIRE];
! 4. Fin de la trayectoria
MoveL [POS_FIN_COORDENADA], [VEL_TRABAJO], fine;
! 5. Apagar herramienta y retirar
Reset [SALIDA_ENCENDER_HERRAMIENTA];
MoveL [POS_APROX_FIN], [VEL_AIRE], [PREC_AIRE];
ENDWHILE
ENDPROC4. Paletizado Básico (Matriz)
Automatización de procesos repetitivos mediante el uso de bucles FOR y la función Offs.
PROC main()
VAR num i; ! Declarar variable contador
MoveJ [POS_REPOSO], [VEL_AIRE], [PREC_AIRE];
! Bucle que se repetirá X veces
FOR i FROM 1 TO [NUMERO_TOTAL_PIEZAS] DO
! 1. Ir a coger la pieza a la cinta
WaitDI [ENTRADA_CINTA], 1;
MoveJ [POS_APROX_CINTA], [VEL_AIRE], [PREC_AIRE];
MoveL [POS_CINTA], [VEL_TRABAJO], fine;
Set [SALIDA_CERRAR_PINZA];
MoveL [POS_APROX_CINTA], [VEL_AIRE], [PREC_AIRE];
! 2. Dejar en la caja calculando la posición automáticamente
MoveJ [POS_APROX_CAJA], [VEL_AIRE], [PREC_AIRE];
! ATENCIÓN AL TRUCO: Offs(pos_base, X, Y, Z)
MoveL Offs([POS_CAJA_BASE], i * [DISTANCIA_ENTRE_PIEZAS], 0, 0), [VEL_TRABAJO], fine;
Reset [SALIDA_CERRAR_PINZA];
MoveL [POS_APROX_CAJA], [VEL_AIRE], [PREC_AIRE];
ENDFOR
ENDPROC