G1 Programación Del Robot Parte I 2021
G1 Programación Del Robot Parte I 2021
G1 Programación Del Robot Parte I 2021
Guía 1 1
Objetivo General
Objetivos específicos
Definir las posiciones en el software CIROS Robotics para los movimientos que realizará el robot
Mitsubishi.
Crear programas en el lenguaje Melfa Basic IV para realizar tareas de desplazamiento de piezas de
un robot Mitsubishi.
Simular la ejecución de programas en el ambiente 3D del software CIROS Robotics.
Introducción Teórica
NOTA: Este mismo formato de archivos y procedimiento de relación de los diferentes archivos de
proyecto es el mismo en el software de modelado, carga/descarga y depuración en línea CIROS Studio.
TOMAR Comentarios
Definición de posiciones
Definición de I/O
Definición de variables
Programa principal
Etiqueta
Llamada a Subrutina
Salto a
línea
Inicio
Subrutina
Final
Líneas de instrucción
El programa se construye en base a líneas de instrucción que se ejecutarán de manera secuencial,
excepto que haya instrucciones de salto, bucles o llamadas a subrutina. Los elementos que las forman
se muestran a continuación.
Ejemplo de declaración de un comando:
10 MOV P1 WTHM_OUT (17) = 1
Número de línea Es el número usado para determinar el orden de ejecución del programa. El
programa se ejecutará en orden ascendente.
Nemotécnico de la instrucción Es un comando que designa la operación a realizar por el robot.
Dato El dato puede ser un valor o una variable del tipo requerido por la instrucción.
Declaración añadida Solo se usa si es necesario.
Tipos de variables
Figura 2. Jerarquía de las variables en los programas en el lenguaje Melfa Basic IV.
2. Instrucciones básicas
En la programación de brazos robot, siempre persiste un tipo de instrucciones básicas para todos los
tipos software que son aquellas que definen los movimientos más simples del brazo y que por sí solas
son las base de la mayoría de las secuencias de una aplicación.
Movimiento No Interpolado
El Robot genera una trayectoria cualquiera entre el punto origen y el punto de destino, obteniendo para
cada una de las articulaciones del robot, las coordenadas, velocidad y aceleración que a lo largo del
tiempo se han de imprimir para lograr el movimiento especificado.
Pese a su complejidad es la forma más rápida para el robot.
MOV
El robot se mueve a la posición indicada con una interpolación angular de cada eje.
El camino recorrido no se puede prever. Se pueden introducir las declaraciones añadidas WTH o
WTHIF.
Ejemplos de llamadas de instrucción:
Programa ejemplo:
10 MOV P1
20 MOV P2, -50
30 MOV P2
40 END
Figura 4. Ejemplo del tipo de movimiento no interpolado (MOV) en el lenguaje Melfa Basic IV.
Figura 5. Tipo de movimiento lineal interpolado (MVS) en el lenguaje Melfa Basic IV.
MVS
El robot se mueve en línea recta hacia la posición indicada. Se pueden introducir las declaraciones
añadidas WTH o WTHIF.
Ejemplos de llamadas de instrucción:
MVS P1............. Se mueve hasta P1.
MVS P1+P2....... Se mueve a la posición resultante de sumar P1 y P2.
MVS P1*P2........Se mueve a la posición relativa convertida de P1 a P2.
MVS P1, -50......Se mueve desde P1 hasta una posición a 50mm en la dirección de la pinza.
HOPEN / HCLOSE
Abre/cierra la pinza designada.
OVDR
Designa la velocidad de movimiento según un porcentaje relativo a la velocidad máxima. Afecta a
todos los movimientos posteriores, si es que no se vuelve a modificar el valor.
SPD
Define la velocidad de interpolación linear y circular(para instrucciones MVS, MVR y MVC) de la
pinza en mm/s.
DLY
Espera los segundos indicados (el mínimo es 0.05), y luego sigue con el programa.
3. Instrucciones de movimiento
MVR
El robot se mueve por una circunferencia definida por tres puntos. Si al empezar el movimiento no se
encuentra en el punto de inicio, se moverá linealmente hasta él antes de empezar. Se pueden introducir
las declaraciones añadidas WTH o WTHIF.
MVR: Se define el punto de inicio, uno de tránsito, y el punto final.
MVR2: Se define la posición inicial, la final, y un punto de referencia por el que no pasará.
MVR3: Se define el punto inicial, el final y el centro del círculo. El movimiento va del inicial al final
por el camino más corto del círculo.
MVC: Se define la posición de inicio (y final), punto de tránsito 1, y punto de tránsito 2. El movimiento
sigue el recorrido:
inicio tránsito1 tránsito2 final.
Programa ejemplo:
10 MVR P1, P2, P3
20 MVR2 P3, P4, P5
30 MVR3 P4, P6, P7
40 MVC P6, P8, P9
50 END
Figura 6. Ejemplo del tipo de movimiento circular en el lenguaje Melfa Basic IV.
CNT
Define el principio y el final de un movimiento continuo.
Programa ejemplo:
10 MOV P1
20 CNT 1
30 MVS P2
40 CNT 1, 50, 100
50 MVS P3
60 MVS P4
70 CNT 0
80 END
Figura 7. Ejemplo de aplicación del movimiento continuo (CNT) en el lenguaje Melfa Basic IV.
ACCEL
Define la aceleración y desaceleración durante el movimiento como un porcentaje del máximo.
JOVDR
Define la velocidad de movimiento angular axial (para instrucciones MOV), como un porcentaje de la
máxima.
HLT
Para la ejecución del programa y entra en el estado de paro.
FINE
Define las condiciones de posicionamiento final con un número de pulsos.
Materiales y equipos
Procedimiento
Figura 8. Búsqueda del programa CIROS Robotics dentro de Todos los Programas de Windows 7.
2. Una vez abierta la aplicación, el primer paso es crear un proyecto en File→New→Project Wizard
Figura 11. Ventana del Parámetros del Robot del Asistente del proyecto de CIROS Robotics.
5. La tercera ventana preguntará por los cambios realizados a manera de comentario. No es un campo
requerido, pero puede escribir lo que usted considere le servirá después.
6. Presione finish para iniciar con el proyecto de simulación.
7. Le aparecerán en la pantalla de la aplicación cuatro ventanas con información acerca de su
proyecto. La ventana superior izquierda muestra al robot que usted escogió, otra ventana muestra el
listado de posiciones, otra muestra las líneas de comando del programa principal del robot y una
tercera ventana muestra los mensajes de alarma del sistema.
8. A continuación, se muestra la pantalla principal de un proyecto recién abierto. Tanto el nombre del
archivo del programa como el nombre del archivo de las posiciones llevan el nombre que se digitó
Prohibida su reproducción total o parcial para otros fines 2021
Programación de Robots y SO. Guía1 12
Figura 12. Ventanas del modelo 3D, mensajes, programa y posiciones de CIROS Robotics.
9. Haga clic en la ventana del robot para que la atención de la aplicación se centre en ella. Vaya a
View → Standard Views y pruebe cada una de las opciones para que pueda visualizar el robot que
ha escogido.
10. Puede hacer la ventana del robot más grande o más pequeña según su percepción personal lo
requiera.
11. También puede escoger en el menú View las opciones Zoom In y Zoom Out para aumentar o
disminuir el tamaño de la visualización del objeto.
12. Puede moverse dentro de la ventana escogiendo Move en el menú View o presionando el botón
e inmediatamente yendo a la ventana, haciendo clic y moviéndose al punto de vista deseado.
13. Puede rotar la vista escogiendo Rotate en el menú View o presionando el botón e
inmediatamente yendo a la ventana, haciendo clic y rotando al punto de vista deseado.
14. Explore el menú View para que se sienta cómodo al trabajar en la programación del robot que ha
escogido.
15. Para tomar control del robot vaya a Programming → Teach-In para que se le abra la ventana de
modo Jog Operation:
Figura 14. Ajuste de la velocidad de movimiento de las articulaciones del robot simulado.
A mayor porcentaje, más velocidad. 100% es la velocidad máxima.
17. Puede abrir y cerrar las mordazas del robot presionando el botón Close Hand (al cerrar la pinza el
botón cambiará a Open Hand)
18. Hasta este momento usted ha controlado el robot moviendo cada una de sus articulaciones. En
procesos cotidianos usted requerirá que la pinza del robot se mueva desde una posición hasta otra
llevando algo en ella. Hacer este desplazamiento moviendo una articulación a la vez le resultará
muy difícil y tedioso. Afortunadamente hay otra manera de mover al robot todo a la vez cuidando la
inclinación de la pinza constante durante todo el trayecto. Este es el modo XYZ
19. Para ingresar a este modo de control del robot escoja XYZ Jog en la ventana Jog Operation. La
apariencia de la ventana cambiará, y podrá ver controles para mover el robot en línea recta en X, en
Y y en Z.
20. Mueva el robot trazando un cuadrado alrededor de él, esto lo logrará fácilmente utilizando los
controles X e Y. Note que existen límites para el movimiento rectilíneo, ya que el robot no puede
alcanzar todos los puntos de la línea recta, algunos le resultarán muy lejanos (las esquinas del
cuadrado) y algunos le resultarán tan cercanos que sus articulaciones no podrán proporcionar el
punto sin antes cambiar la posición de las articulaciones.
21. Al usar el modo Joint se abre la posibilidad de mover individualmente cada articulación del robot.
Al momento de elegir el modo JOINT podrá observar que los controles de movimiento cambian y
se despliega un control para mover cada articulación en cada sentido.
22. Utilice este tipo de control cuando necesite desarrollar movimientos de alta complejidad que
incluyen inclinación o direccionamiento específico del elemento terminal del robot.
Figura 15. Ventana de operación manual del robot, por medio de cada articulación.
23. Se aprendió en el modo XYZ que en ese tipo de control de movimiento el elemento terminador del
robot (pinza) conservaría su inclinación y sentido y que se movería siguiendo en forma paralela los
ejes cartesianos absolutos. El modo Tool también permite el control de movimiento en forma
paralela a los ejes, pero con la particularidad que los ejes que sigue el movimiento del modo Tool
no son paralelos a los ejes absolutos.
Al trabajar en el modo Tool el control de movimiento seguirá paralelamente los ejes que definen la
inclinación y sentido del elemento terminador. De esta manera si la extremidad final del robot está
inclinada en un sentido, los ejes en los cuales se moverá seguirán paralelamente los ejes inclinados
que definen la extremidad final del robot.
En la siguiente figura se muestran los ejes a lo largo de los cuales se movería el elemento
terminador del robot al escoger este tipo de control de movimiento.
Figura 16. Operación manual del robot, por medio del marco de referencia trasladado al elemento
terminal.
Observe que los ejes no son paralelos a X, Y, Z sino que tienen su propia dirección y sentido
particular y están alineados con el elemento terminal.
24. El robot se moverá desde una posición inicial a una posición final en cada uno de sus movimientos.
Prohibida su reproducción total o parcial para otros fines 2021
Programación de Robots y SO. Guía1 15
Algunas posiciones están definidas para realizar una labor específica en esa posición, tal como asir
un objeto, si se trata de un robot con pinza o mordaza u otra labor de ensamble, como apretar un
tornillo o aplicar una sustancia adhesiva. Otras posiciones son simplemente el punto de origen para
iniciar el movimiento hacia otra posición, y otras son simplemente el punto neutral entre muchas
posiciones.
Se ubicará la pinza del robot en la posición inicial en el plano de referencia horizontal (lo que la
visualización representa como el piso) cualquier ubicación que sea en z=0. Se guardará esta
posición como POSICION1.
25. Ubique la pinza del robot en el lugar indicado, y presione en la ventana de control de movimiento
del robot (JOG Operation) el botón .
26. Si usted recién acaba de iniciar un proyecto usted tendrá en la pantalla principal la ventana del
listado de posiciones, y en ella aparecerá la información de la posición que acaba de dar. Las
posiciones en la tabla de posiciones quedan definidas como una serie de 6 coordenadas:
(X,Y,Z,Roll,Pitch,Yaw) las coordenadas X, Y, Z definen las posiciones cartesianas del elemento
terminal respecto al origen del robot. Las coordenadas ya se han explicado en el apartado de
manipulación del robot de la práctica anterior.
Si ha seleccionado el robot RV-2A sobre el eje lineal, le aparecerá una ventana con la información
de la posición. Dé doble clic en la línea que tiene la posición que acaba de guardar. Aparecerá una
ventana como la que se muestra:
Figura 18. Apertura de una nueva ventana del tipo programa Melfa Basic IV.
Con lo anterior se abrirá la ventana para la edición de programas.
33. El primer programa consistirá en realizar un programa para que el brazo industrial recoja una pieza
en un punto de recogida y la deposite en otro punto. Las aproximaciones a estos dos puntos deben
hacerse suavemente (más despacio).
34. Primero hay que definir las posiciones clave del movimiento, que en este caso serán cinco:
-P1 : posición inicial o de reposo
-P2 : posición de aproximación a la zona de carga
-P3 : posición para agarrar la pieza
-P4 : posición de aproximación a la zona de descarga
-P5 : posición donde dejamos la pieza
35. Para definir las posiciones se utilizará la opción 'Jog Operation' que se mencionó en el paso 15.
36. Para insertar las posiciones se sitúa el brazo en la posición deseada y se guarda con el botón
'Current Position > Pos. List'. El programa crea una nueva posición en el listado de posiciones y le
pone el nombre Px, donde x es el número de posición que aparece en la ventana anterior. Desde el
listado de posiciones podemos cambiar las propiedades de las posiciones. Si ha colocado el eje
líneal puede usar una posición de 300 mm constante para todas. En el caso del RV-3SB la
orientación C será de 0 en todas las posiciones.
10 '****************UNIVERSIDAD TECNOLÓGICA******************
20 '* PROGRAMACIÓN DE ROBOTS Y SISTEMAS OPERATIVOS *
30 '* *
40 '* PRÁCTICA - 1 *
50 '* INSTRUCCIONES BÁSICAS *
60 '* PARTE 1 *
70 '* Fecha: *
80 '* Comentarios: *
90 '* *
100 '*********************************************************
110 HOPEN 1 ' Abrir Pinza
120 MOV P1 ' Movimiento no interpolado a la posición 1
130 OVRD 90 ' Velocidad al 90%
140 MOV P2 ' Movimiento no interpolado a la posición 2
150 OVRD 30 ' Velocidad al 30%
160 MOV P3 ' Movimiento no interpolado a la posición 3
170 HCLOSE 1 ' Cierra pinza
180 DLY 0.5 ' Espera de 0.5 segundos
190 MOV P2 ' Movimiento no interpolado a la posición 2
200 OVRD 90 ' Velocidad 90%
210 MOV P4 ' Movimiento no interpolado a la posición 4
220 OVRD 30 ' Velocidad al 30%
230 MOV P5 ' Movimiento no interpolado a la posición 5
240 HOPEN 1 ' Abre pinza
250 MOV P4 ' Movimiento no interpolado a la posición 4
260 OVRD 90 ' Velocidad 90%
270 MOV P1 ' Movimiento no interpolado a la posición 1
280 DLY 3 ' Espera de 3 segundos
290 END ' Fin del programa
Figura 21. Código del programa en el lenguaje Melfa Basic IV.
38. Después de introducir el programa, se deben numerar las filas con la opción 'Renumber'.
39. Guardar el programa e incorporarlo al proyecto que se está desarrollando.
Ubique el cursor en la ventana de programa y de clic en save:
Figura 26. Activación del botón para colocar el proyecto activo en la ventana de gestión del
proyecto.
44. En este momento el programa puede ser ya corrido presionando el icono que se muestra en la figura
al lado, dicho icono se encuentra en las barras superiores en la pantalla.
Figura 27. Arranque de la ejecución del programa por medio del botón Start (F5).
MOV P9, -50...... Movimiento no interpolado hasta una posición 50mm encima de la posición P9.
B) Utilizar una posición de offset, definiéndola al inicio del programa y utilizándola sumada a P3 y
P5:
46. Realice los cambios en el programa por los dos métodos y ejecute la simulación.
10 '****************UNIVERSIDAD TECNOLÓGICA******************
20 '* PROGRAMACIÓN DE ROBOTS Y SISTEMAS OPERATIVOS *
30 '* *
40 '* PRÁCTICA - 1 *
50 '* MOVIMIENTOS CIRCULARES *
60 '* PARTE 3 *
70 '* Fecha: *
80 '* Comentarios: *
90 '* *
100 '*********************************************************
110 HOPEN 1 ' Abrir Pinza
120 OVRD 70 ' Velocidad al 70%
130 MOV P1 ' Movimiento no interpolado a la posición P1
140 DLY 3 ' Espera de 3 segundos
150 MOV P2, -80 ' Movimiento no interpolado a una posición alejada 80mm de la posición P2
160 OVRD 30 ' Velocidad al 30%
170 MVS P2 ' Movimiento recto interpolado a la posición P2
180 HCLOSE 1 ' Cierra pinza
190 DLY 0.5 ' Espera de 0,5 segundos
200 MVS P2, -50 ' Movimiento recto interpolado a una posición alejada 50mm de la posición P2
210 OVRD 70 ' Velocidad al 70%
220 SPD 100 ' Velocidad de movimientos interpolados 100 mm/s
230 MOV P3, -150 ' Movimiento no interpolado a una posición alejada 150mm de la posición P3
240 MOV P3 ' Movimiento no interpolado a la posición P3
250 MVC P3, P4, P5 ' Movimiento circular
260 MVC P3, P4, P5 ' Movimiento circular
270 MOV P3, -150 ' Movimiento no interpolado a una posición alejada 150mm de la posición P3
280 MVS P2, -80 ' Movimiento recto interpolado a una posición alejada 80mm de la posición P2
290 OVRD 30 ' Velocidad al 30%
300 MVS P2 ' Movimiento recto interpolado a la posición P2
310 HOPEN 1 ' Abrir Pinza
320 DLY 0.5 ' Espera de 0,5 segundos
330 MVS P2, -50 ' Movimiento recto interpolado a una posición alejada 50mm de la posición P2
340 OVRD 70 ' Velocidad al 70%
350 MOV P1 ' Movimiento no interpolado a la posición P1
360 END ' Fin del programa
Figura 30. Código del programa en el lenguaje Melfa Basic IV.
48. Modificar el programa para que realice 3 vueltas seguidas en vez de dos. Utilizar la instrucción
CNT para que haga un movimiento continuo y no se pare entre vuelta y vuelta (en realidad no para
del todo, pero el sonido en el robot real cambia).
49. Realizar un arco y/o circunferencia con centro definido, utilizando la instrucción MVR3.
La posición del centro será como la posición de recogida, pero 100mm más baja.
50. Realice el cambio en el programa para añadir el movimiento circular MVR3 y ejecute la
simulación.
51. Salga del programa y apague la computadora.
Análisis de resultado
1. Presente el programa modificado que realizó en la parte II del procedimiento.
2. Presente el programa modificado que realizó para el numeral 48 y el 49 en la parte III del
procedimiento.
3. Realice un programa que apile dos objetos, el programa tendrá una posición de Home, dos
posiciones en donde se encuentran originalmente cada objeto y una tercera posición para colocar
los objetos apilados, una vez apilados, cada objeto debe regresar a su posición original.
4. Realice un programa que intercambie de posición dos objetos, el programa tendrá una posición de
Home, una posición intermedia para colocar temporalmente al primer objeto que se mueve y dos
posiciones para cada uno de los objetos a mover.
Investigación Complementaria
1. Investigue las instrucciones del lenguaje Melfa Basic IV para el control de las entradas y salidas
digitales del robot Mitsubishi.
Bibliografía
Hoja de cotejo: 1
EVALUACION
TOTAL 100%